eBPF FoundationとLinux Foundation ResearchはeBPFの調査レポートを公開した。クラウドネイティブ開発の文脈で、eBPFが人気を集めているという。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
eBPF FoundationとLinux Foundation Researchは、2024年1月30日(米国時間)、「The State of eBPF」を発表した。このレポートは、「eBPF」(extended BPF)の現状、eBPFのユースケースや今後などについて紹介している。内容は以下の通り。
Linuxカーネルは、ソフトウェアとハードウェアのインタフェースとして機能し、アプリケーションのさまざまなタスクを処理する。カーネルは約3000万行のコードを有し、重要な役割を果たすが、変更に時間がかかる。これを解決するのがeBPFだ。eBPFはLinuxカーネル内の仮想マシンで、開発者が小さな専門化されたプログラムを記述できるようにする。これらのプログラムは安全性を確保するために検証を経て、JIT(Just-In-Time)コンパイルされ、ファイルのオープニングなどのイベントにアタッチされる。eBPFは汎用(はんよう)性があり、ユーザーがカスタム機能を実装できるようになっている。
クラウドネイティブ開発の文脈で、eBPFが人気を集めている。MetaやGoogleはeBPFベースのスケジューラを組み込んでおり、eBPFの進化した影響力を示している。クラウドネイティブプラットフォームの台頭は、2025年までに新しいデジタルワークロードの95%以上をホストすると予測されており、eBPFの能力とよく合致している。プラットフォームの機能を拡張し、パフォーマンスを向上させ、複雑さを軽減することで、eBPFは次世代のクラウドネイティブなワークロードを促進することが予測されている。
LinuxとKubernetesを取り巻く環境では、Kubernetesの複雑さが変化を阻害する可能性があるが、eBPFは、観測可能性、ネットワーキング、セキュリティツールの開発において受け入れられており、クラウドネイティブの世界では貴重なインフラ技術となっている。
Linuxカーネル内にeBPFのような「仮想マシン」を導入しようとする試みは以前にも存在したが、うまくいかなかった。その後、エンジニアのアレクシ・スタロヴォイトフ氏は、新しいアプローチでダニエル・ボークマン氏と協力し、Linuxカーネル内に完全に新しい仮想マシンを挿入するのではなく、「BPF」(Berkeley Packet Filter)として知られるパケットフィルターを移動するための仮想マシンを活用することにした。彼らはBPFの機能をブロックごとに拡張し、それがネットワーキングだけでなく、カーネル内でのコンピューティングにまで広がるようにした。
eBPFは、5年以上にわたって何百万台ものデバイスやサーバ上で運用されている。Meta、Google、Netflixのような大手企業がeBPFを運用環境で活用している。さらに、eBPFの活用は、ソフトウェア、クラウドサービス、金融、テレコミュニケーション、メディア、eコマース、コンサルティング、セキュリティなど、多様な業界に広がっている。
eBPFの3つの主要なユースケースには、次の3分野がある。
数十台、数百台、数千台のサーバを含むような分散システムで、企業はシステムがどこに時間を費やしているのか、どこでボトルネックが発生しているのか、CPUがどれくらいの速度で動作しているのか、どこでサイクルを回しているのか、どのコードが誤動作している可能性があるのかを、eBPFを通じてより簡単かつ完全に把握できるようになる。
Linuxネットワーキングスタックの多くの部分は、IPやポート範囲がコンテナごとに変更されるのではなく、スプレッドシートで追跡できた数十年前に書かれたものだ。eBPFによって、プログラマーはネットワーキングスタックを書き直したり、必要な部分だけを活用したり、完全にスキップしたりして、時間と処理能力を節約できる。
eBPFによって強化された観測可能性は、カーネル内だけでなく、Kubernetesやクラウドネイティブ環境全体を含むサイバーセキュリティ攻撃を発見し、防止する能力を向上させる。
eBPFは2024年現在広く使われているが、専門家によれば、イノベーションの大きな波が起こるのはこれからだという。カーネル開発におけるCPUスケジューラでのMetaの成功によって、eBPFの能力が明らかになった。
eBPFは、将来的に新しいクラウドネイティブな環境において中心的な技術となり、あらゆるアプリケーションにわたって可観測性、パフォーマンス、信頼性、ネットワーキングおよびセキュリティに影響を与えることが期待されている。
プラットフォームエンジニアは、eBPFを搭載したビルディングブロックを統合し、時代遅れのLinuxカーネル内部を置き換えて、開発者向けのプラットフォームを構築するようになると予想されている。
Copyright © ITmedia, Inc. All Rights Reserved.