「Berkeley Packet Filter」(BPF)は、1992年にそれまでにあったものよりも新しく、より高速なネットワークパケットフィルターとしてUNIX界に登場した。BPFは優れたソフトウェアだったが、当時も革命的なものとは言い難かった。それからずっと時代が下り、2014年になると、BPFを修正した「拡張BPF」(eBPF)がLinuxカーネルに導入された。
eBPFの素晴らしいところは、カーネルのソースコードを変更したり、モジュールを追加したりすることなく、Linuxカーネルの内部でプログラムを実行できることだ。eBPFは事実上、Linuxカーネル空間内で動作する軽量なサンドボックス仮想マシン(VM)として機能する。このため、eBPFの内部で動作するプログラムは、上位のLinuxプログラムでは利用できないカーネルの機能を利用しながら、より高速に動作させることができる。
サンドボックス化されたプログラムをOSの内部で実行できるようになったことで、ランタイム時にOSに機能を追加するeBPFプログラムを作ることも可能になった。
これによって、OSとインフラサービスの連携が変わった。eBPFはカーネルとユーザー空間プログラムの間にあるギャップを埋めることができたためだ。またeBPFによって、従来は完全に独立していた複数のサブシステムを組み合わせて、サブシステムをまたいだロジックを適用することができるようになった。
eBPFが導入されたことによってできたプログラムには、「bpftrace」などのLinuxカーネルデバッガーや、クラウドネイティブなセキュリティソフトウェアである「Falco」、「Hubble」を使用したKubernetesのセキュリティアプリケーションなども含まれる。これらはどれも重要なものばかりで、今後もこうした例は増えると考えられている。こうしたことを考えれば、Linux Foundationをスポンサーとして、eBPFプロジェクトのための新たな団体である「eBPF Foundation」が設立されたのも当然のことだろう。
この団体がどれだけ重要視されているかは、設立に参加した団体を見れば分かる。設立時点での参加団体リストには、Facebook、Google、Isovalent、Microsoft、Netflixが名を連ねている。これらの大手IT企業がこぞって参加する理由は、これらの企業が既にeBPFを活発に利用しているからだ。例えば、FacebookはeBPFをデータセンターで主力のソフトウェア定義負荷分散システムに使用しているし、Googleは同社のKubernetesを使用したマネージドサービスである「GKE」や「Anthos」に、「Cilium」を使用してeBPFベースのネットワーキング技術やセキュリティ機能を組み込んでいる。
このように、eBPFをベースにしたプロジェクトは爆発的に増えており、インフラソフトウェアの世界でも屈指の影響力がある技術の1つになっている。Isovalentの最高技術責任者(CTO)兼共同創業者であり、eBPF Foundationの理事会チェアを務めるThomas Graf氏は、「各プロジェクト間のコラボレーションを最適化し、eBPFのコアのメンテナンスを維持し、eBPFの明るい将来のための明確なロードマップとビジョンを示すことが強く求められている。それがeBPF Foundationの役割であり、技術的な方向性とeBPFのビジョンについて取り扱うeBPF運営委員会が設立される。それに加えて、eBPFのWindowsカーネルへの移植や、他のプラットフォームへの移植も進んでいることから、今後はeBPFのプログラムの移植性や、eBPFのランタイム時の要件について重要性が増し、調整が必要になるだろう」と述べている。
さらに詳しく知りたい人は、2021年8月18、19日に開催される、無料で参加可能なオンラインカンファレンスである「eBPF Summit」に参加してみてほしい。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。