Solo BumbleBeeはLinux eBPFプログラミングを簡単にします
Soloの新しいオープンソースプログラムBumbleBeeは、LinuxのeBPFプログラムを構築するのをはるかに簡単にするでしょう。
1992年、バークレーパケットフィルタ(BPF)がUnixの世界で新しい改良されたネットワークパケットフィルタとして紹介されました。まあ、いいけどそれほど大きな出来事ではありませんでした。しかし、2014年に変更され、Linuxカーネルに拡張BPF(eBPF)として追加されました。再び、それはまあまあでした。ただのまあまあです。その後すぐに、開発者たちはそれを使ってLinuxカーネル上の仮想マシン(VM)内でユーザー空間のコードを実行し始めました。そして、それは大きな出来事になりました。Netflixのコンピュータパフォーマンス専門家であるブレンダン・グレッグは、eBPFについて「超能力がついにLinuxにやってきた」と言いました。
どんなスーパーパワーですか?eBPFは、カーネルソースコードを変更することなく、追加モジュールを加えることなく、Linuxカーネル内でプログラムを実行する力を与えてくれます。実際、これはLinuxカーネル空間内の軽量なVMとして機能します。そこで、eBPFで実行できるプログラムは、他の高レベルのLinuxプログラムでは利用できないカーネル機能を活用しながら、はるかに高速に実行されます。
もちろん、eBPFを使ってカーネルに近いアプリケーションを実行するのは簡単ではありません。そこで、アプリケーションネットワーキング会社のSolo.ioが新しいオープンソースプロジェクト、BumbleBeeを提供しています。BumbleBeeは、eBPFツールの開発のためのボイラープレートのユーザースペースコードを自動的に生成することで、eBPFツールの構築、パッケージ化、配布を簡素化します。
もしそれが少しDockerのように聞こえるなら、あなたは正しい、それは意図的です。BumbleBeeのコードは、他のOpen Container Initiative(OCI)イメージワークフローにそのプログラムを接続して公開および配布できるようにもしています。これは、eBPFプログラムを継続的インテグレーション/継続的開発(CI/CD)ワークフローに組み込むことができるということを意味していますか?はい、それは可能です。
通常、eBPFは、可観測性、ネットワーク、セキュリティ技術でカーネルを強化する安全な方法として使用されます。これらのプログラムは、ネットワークパケットの到着などのイベントに応じて実行されます。通常、eBPFプログラムはCなどの高級言語で記述され、その後、最大のパフォーマンスと安全性のためにJITコンパイルされてx86アセンブリに変換されます。
eBPFアーキテクチャは、eBPFプログラムがバイトコードとして読み込まれることを期待しており、カーネルには各カーネルバージョン特有のデータ構造と形式があります。大文字で言うと、簡単ではありません。さらに、これらのバイナリプログラムのパッケージ化と配布は、 tedious で、時間がかかり、エラーが発生しやすいです。BumbleBeeの目標は、eBPFツールの開発、パッケージ化、共有を簡素化し、eBPFの普及を加速することです。
「Solo.ioでは、eBPFをアプリケーションネットワーキングを改善するための重要な技術と見ています。私たちは、企業向けのIstioベースのサービスメッシュ提供であるGloo Meshと共にeBPF技術を活用するために、昨年の間に取り組んできました」とSolo.ioの創設者兼CEOであるイディット・レビンは述べています。「eBPF拡張を開発する中で、多くの技術的課題に直面しました。そしてこれが、私たちのeBPFの取り組みを効率化するためにBumbleBeeを開発することにつながりました。私たちは、本当にeBPFの利点を信じているので、コミュニティとBumbleBeeを共有できることを嬉しく思います。eBPFの採用を加速させるためです。」
BumbleBeeには、eBPFプログラムのユーザースペースコードを自動的に生成するコマンドラインインターフェース(CLI)が含まれており、マップを自動的にログ、メトリクス、ヒストグラムとして公開します。開発者はeBPFコードを書くことだけを心配すれば良いのです。
Solo.ioは、BPGプログラムを構築するための新しいツールセットであるlibbpfを使用してBumbleBeeを構築しました。これを使用すると、たとえばユーザースペースのコードなしでeBPFプローブを書くことができます。BumbleBeeは、自動的にプログラム内のマップを検出して表示し、ユーザースペースプログラムとカーネルスペースプログラムがデータを共有できるようにします。これは、特別なBPFの慣習とキーワードを使用することによって達成されます。
eBPFを使用しているなら、BumbleBeeはあなたの注意を引くべきです。この初期段階でも、eBPFプログラムをより速く、安全に書く手助けをしてくれます。