eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場

2022年1月17日

Linuxカーネルのソースコードを変更することなく、カーネルの持つさまざまな機能をフックすることでカーネルに対してプラグインのように機能拡張を実現する技術「eBPF」が、昨年から急速に注目されはじめています。

参考:Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成

そのeBPFを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできるツール「Bumblebee」がオープンソースで公開されました。

fig

開発しているのは、APIゲートウェイのGloo EdgeやサービスメッシュのGloo Meshなどの製品を展開しているSolo.ioです。

Bumblebeeは、起動していくつかの質問に答えると、目的に合致したeBPFのソースコードのテンプレートを生成してくれます。そのテンプレートを基にすることで、比較的容易にeBPFのアプリケーションを開発し、Bumblebeeでビルドすることが可能です。

ビルドされたeBPFのアプリケーションは、BumblebeeによってDockerコンテナの標準的な形式、すなわちOCIイメージとしてパッケージングされます。これにより、eBPFのアプリケーションをDockerコンテナと同様にコンテナレジストリに登録することで、eBPFアプリケーションの公開やシェアが簡単に実現されます。

ただしビルドされたeBPFアプリケーションのバイナリは、ターゲットとなるLinuxカーネルのバージョンに依存します。Linuxカーネルのバージョンが変わると動作が保証されなくなるのです。

というのも、eBPFから参照するLinuxカーネル内の構造体などは、Linuxカーネルのバージョンごとにアドレスや内容が変化する可能性があるからです。

これを解決し、eBPFアプリケーションをLinuxカーネルに対してポータブルにするのが「BPF Type Format (BTF)」と呼ばれる技術です。

これはeBPFに関するメタデータを持ち、eBPFアプリケーションがロードされる際に、Linuxカーネルに対してつねに適切な参照を持てるようにバイナリ内のマッピングを直接書き換えてくれます。

BumblebeeはこのBTFを用いて、パッケージングされたeBPFアプリケーションを実行するときに、適切に実行できるようにしてくれます。

eBPFはクラウドネイティブ関連でも今年、最も注目される動向の1つとされています。また、マイクロソフトもWindowsでeBPF互換機能を実装し始めることを明らかにしています。

参考:WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ

そうしたなかで、いち早くeBPFのビルド、シェア、デプロイ、ランのツールチェーンを、Dockerコンテナの技術を用いて実現してくれるBumblebeeは、非常に注目のオープンソースだといえるでしょう。

あわせて読みたい

Linux OS eBPF




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本