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は、非常に注目のオープンソースだといえるでしょう。

Tags: Linux OS eBPF

このエントリーをはてなブックマークに追加
ツイート
follow us in feedly




タグクラウド

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

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

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

最新記事10本