ISBN 9784814400560
入門 eBPF : Linuxカーネルの可視化と機能拡張
- 出版社
- オライリー・ジャパン
- 刊行
- 2023-12
Amazonアソシエイトおよび楽天アフィリエイト等の広告リンクを含みます。Amazonのアソシエイトとして tech-book.net は適格販売により収入を得ています。
詳細
概要
eBPF の仕組みとサンプルコードを通じてLinuxカーネル拡張を学ぶ
想定読者
Linuxカーネルの内部に踏み込みたいインフラエンジニア・SREで、ネットワーク・セキュリティ・オブザーバビリティの各領域でeBPFを活用したい人
こんな人には向いていない
- Linuxの基本操作やカーネルの概念的な理解がまだ薄い入門者には前提ハードルが高い
- eBPFを本番環境で深く運用しており、BCC/libbpfの高度な内部実装まで知りたい上級者には概観レベルと感じる可能性がある
- ネットワーキングやカーネルに無関係なアプリケーション開発のみを行う開発者にとっては対象外の領域
読了後にできるようになること
- eBPFがユーザー空間からカーネル内仮想マシンでプログラムを安全に実行する仕組みを説明できる
- BCC(BPF Compiler Collection)を使ったC言語ベースのeBPFプログラムの基本的な書き方を習得できる
- bpf_trace_printk・BPF_PERF_OUTPUT・BPF Mapsといったデータ収集・受け渡し機構の使い分けを理解できる
- XDP(eXpress Data Path)を用いたネットワークパケット処理をドライバレベルで実装するアプローチを学べる
- ネットワーク・セキュリティ・オブザーバビリティの各分野でeBPFがどのように適用されているかを俯瞰できる
- CiliumやDatadog USMなどeBPFを活用した実プロダクトの設計コンセプトを理解する土台を作れる
ハイライト
- eBPFは、ネットワーク、セキュリティ、オブザーバビリティなど、さまざまなインフラ関連の分野のプラットフォームとして使用されるなど、近年最も注目されている技術の1つです(本書の対象領域の広さが端的に表現されており、読者が自分の業務との接点を判断しやすい)
外部からの言及
- 「eBPFの初めての日本語入門書ではないでしょうか」という評価が見られ、日本語での体系的な学習リソースが少ない中での貴重な一冊として位置づけられている(qiita)
- 本書を読んだ後にXDPとRust/Ayaで実装を発展させる記事が書かれており、書籍がハンズオンの起点として機能していることが確認できる。著者は書籍のPing応答例を発展させ、checksumの再計算など書籍では扱いきれなかった詳細に踏み込んでいる(qiita)
- eBPFを活用したDatadog USMなどSRE実務ツールの文脈で本書が参照されており、インフラ運用の現場でeBPFの基礎理解を補う目的で読まれている(qiita)
編集メモ
「入門 eBPF」を直接参照するQiita記事は確認範囲で3件(likes合計27)。eBPF全般の記事は100件超あり技術への関心は高いが、本書固有の引用件数はまだ少ない。日本語初の包括的eBPF入門書という位置づけで参照価値は高いが、現時点のシグナル量はsupplementary圏内
読む前に押さえておきたいこと
- Linuxカーネルとユーザー空間の分離・システムコールの基本概念を理解していること
- C言語の基本的な読み書きができること(BCC例示コードを追うため)
- TCP/IPスタックとネットワークパケットの構造に関する実務的な経験があること
学習のコツ
- サンプルコードはLinux 4.1以上・実務ではより新しいカーネルで動作確認しながら読むと定着が早い。仮想マシンやDockerホストを1台用意して手を動かしながら読むのが最善
- ネットワーク・セキュリティ・オブザーバビリティの章は独立性が高いため、自分の業務に最も近い領域の章から読み始め、その後で仕組みを扱う前半に戻ると動機づけが保ちやすい
- 本書を読んだ後は、Qiita等でXDP+Rustや実プロダクト(Cilium/Pixie/Falco)の実装例を追うと、書籍で概観した技術の奥行きを実感できる
出版社による内容紹介
カーネルの機能を拡張する注目の技術を概観できる! eBPFは、ネットワーク、セキュリティ、オブザーバビリティなど、さまざまなインフラ関連の分野のプラットフォームとして使用されるなど、近年最も注目されている技術の1つです。本書ではカーネルの機能を拡張する方法として注目度の高いeBPFについて、どんな技術であるか、何ができるかを概観することができます。仕組みを理解できるだけでなく、サンプルコードを示して、基本的なeBPFコードの書き方も紹介します。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。