KubeCon Europe 2024からWASMとeBPFを使ってストリーム処理を解説するセッションを紹介
KubeCon+CloudNativeCon Europe 2024から、WebAssemblyとeBPFを使ってログのストリーミング処理を行うデモを解説したセッションを紹介する。プレゼンターのMichael Yuan氏は、WebAssemblyのランタイムWasmEdgeの開発元でもあるSecond Stateの創業者兼CEOとして知られている。タイトルは「Fast and Efficient Log Processing with Wasm and eBPF」で、このカンファレンスではトレンドとなっていたWebAssemblyとeBPFが入っていることで注目されていたと言えるだろう。
●動画:Fast and Efficient Log Processing with Wasm and eBPF
Yuan氏はクラウドコンピューティングについて「結局は誰かのコンピュータを借りているだけだ」と説明してその場合、実行されるワークロードには安全で効率的な隔離(Isolation)が必要になると語った。
そしてクラウドコンピューティングが仮想化からコンテナ化と進んできた中で、次の進化はWebAssemblyによるより小さな単位でのワークロードの隔離だと説明。
マイクロサービスにとってコンテナ化は効率的ではないと説明したのが次のスライドだ。
コンテナ化されたワークロードが連係するサービスメッシュにおいては起動などにおいてオーバーヘッドが大きく、効率的ではないというレポートを引用して、クラウドコンピューティングのワークロードが細分化されていく場合にはコンテナのオーケストレーションは最適解ではないと紹介した。
ここではコンテナのランタイムとしてWebAssemblyを使うことを提案。Second StateがWasmEdgeというランタイムを開発していることが背景だが、FermyonやCosmonicがWebAssemblyのワークロード実行のためのサーバー側の仕組みを開発していることと対比して考えると、この発想は当然だろう。またポータブルという部分については、CPUのアーキテクチャーの違い以外にGPUとそれに対応するライブラリーのバージョンなどによってさまざまなバリエーションの実行イメージが存在することを紹介して、WebAssemblyによる同じ実行イメージがどのマシンでも稼働するということが本来あるべき姿であると説明した。
ここではCNCFが行った2022年のリサーチを引用して、WebAssemblyがコンテナの次にくるテクノロジーであると多くの企業が考えていることを説明。
WebAssemblyのランタイムであるWasmEdgeについて解説し、データベースやキャッシュなどのサポート、生成型AIワークロードのサポートなどに加えて、すでにKubernetesで利用しているさまざまなツールがそのまま使えることを特徴として解説した。
Kubernetes環境でのランタイムの解説ではハイレベルとローレベルのランタイム、Kubernetes以外のミニマム環境に向けたコンテナオーケストレーションツールもスライドに書かれているように、ムダなリソースを消費せずに効率的にワークロードを実行することを目指していることが感じられる。ちなみにここに書かれているローレベルのコンテナランタイムYoukiはRustで書かれたランタイムで、Preferred Networksの小松亨氏が開発を行っているオープンソースソフトウェアだ。
●参考:https://github.com/containers/youki
そして後半は、今回のテーマであるeBPFを使ってログのストリーミング処理を行う部分にWebAssemblyを使ったというデモの解説となった。ちなみにRedpandaが公開しているブログ記事とGitHubのページに詳細が解説されているので参考にして欲しい。
●参考:https://redpanda.com/blog/data-transformation-engine-with-wasm-runtime
(2024/05/24現在、非公開となっている)
●GitHub:https://github.com/WasmEdge/wasm-log-flex
このスライドではログデータの発生からログの分解から、対象となるデータベースに送られるまでが解説されている。なおYuan氏はこのデモアプリケーションがインターンの学生によって開発されたことを付け加えた。参加者に対して「WebAssemblyの開発はそれほど難しくない」ということを伝えたかったのかもしれない。
そしてeBPFの実装にはサイドカーを使うのではなく、デーモンをベースにした実装方法を選択したことを説明。
WebAssemblyを活用した利点として、コンテナに比較して100分の1のサイズに納めることができたこと、セキュリティを確保できたことなどを解説した。ここはWebAssemblyの利点がそのまま効いているということだろう。
最後にこれまで何度かのプレゼンテーションで披露されてきた大規模言語モデル(LLM)の実行においても、WebAssembly、WasmEdgeが使えることを解説。これはYuan氏が特に力を入れて2023年後半からデモとプレゼンテーションを行ってきた内容で、過去に日本で行われたイベントでも解説とデモが行われているので参考にして欲しい。
●参考:Cloud Native Wasm Dayから大規模言語モデルをWasmで実行するデモを解説するセッションを紹介
eBPFとWebAssemblyというトレンドな単語がタイトルに入っていたためか、参加者も多く盛況でセッション後の質問も途切れないという状況だった。FermyonとCosmonicがフレームワークを中心としてエコシステムを形成しようとしているのに比べると、Kubernetesエコシステムの中でランタイムを中心として共存を目指しているSecond Stateの立ち位置が理解できるセッションとなった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- WasmCon 2023からLLMをWASMで実装するセッションを紹介
- 「KubeCon NA 2022」から、WasmEdgeを開発するSecond StateのMichael Yuanのインタビュー
- 「KubeCon NA 2022」のプレカンファレンスからCloudNative Wasm DAYを紹介
- KubeCon China 2024から、ローカルでLLMを実行するSecond Stateのセッションを紹介
- WASM Meetup@ByteDanceで垣間見たWebAssemblyの静かな広がり
- Cloud Native Wasm Dayから大規模言語モデルをWasmで実行するデモを解説するセッションを紹介
- CloudNative Days Tokyo 2023から、WasmのクラウドネイティブやAI推論での利用を解説
- KubeCon Europe 2024に日本から参加したメンバーで座談会@桜の木の下
- 写真で見るKubeCon Europe 2024 ベンダーやコミュニティプロジェクトの展示を紹介
- Cloud Native Wasm DayからKafkaの拡張にWasmを使うRedpandaのセッションを紹介