WasmCon 2023からCosmonicのCEOがコンポーネントモデルを用いたデモを紹介
2023年9月に行われたWasmConから、CosmonicのCEOであるLiam Randall氏とTaylor Thomas氏によるコンポーネントモデルを解説したセッションを紹介する。
●動画:Component Model: The Final Abstraction
セッションのタイトルは「Component Model: The Final Abstraction」で、デモを交えながらWebAssemblyのコンポーネントモデルを解説する内容だ。今回のカンファレンスではコンポーネントモデルを各社がどう位置付けているのかが明確になってきていると言える。
初日のキーノートでFastlyのLuke Wagner氏がコンポーネントモデルを詳細に技術解説した。その一方、Second StateのMichael Yuan氏が機械学習のWASI-NNをWasmで実行するセッションでは、モデルの実装にコンポーネントモデルが使えるのが自明というような解説で対照的だった。それらに対して本記事で紹介するCosmonicのセッションでは、wasmCloud上でさまざまなWasmモジュールがオンプレミス、パブリッククラウド、エッジなどの環境に関わらず自由に配置できることを強調する内容となった。その際に機能を組み合わせるための方法論がコンポーネントモデルという位置付けだ。
まずRandall氏は、エンタープライズ向けに開発されるアプリケーションが、使用するライブラリーなどがリンクされることによって肥大化しており、それが結果的に実行環境へのコストとして現れていると強調。しかしコンピューティングモデルはハードウェア、OS、ライブラリーそしてビジネスロジックを実装したアプリケーションをすべてデベロッパー側が用意する時代から、仮想化、コンテナ、Kubernetesなどのプラットフォームに進化することによって外部化、抽象化が進んでいる。その結果、デベロッパーはビジネスロジックだけを用意すれば、残りはプラットフォーム側が揃えてくれるようになってきているというモデルを紹介。
以下のスライドに示したモデルはCosmonicのセッションではたびたび目にするものだが、かつてはKubernetes→Wasmだったものが、最終的にwasmCloudというCosmonicが提供するWebAssembly実行環境をターゲットにするように進化していることに注目したい。他にもFermyonがSpinというWebAssembly実行環境を用意してデベロッパーの負荷を下げる方向に行こうとしているが、Cosmonicもデベロッパーがプラットフォーム側を意識せずにビジネスロジックに注力できるPaaS的なものを志向するという意図が見える。
そしてここからはTaylor Thomas氏がバトンを受け取る形で、機能を組み合わせるためのコンポーネントモデルの解説を行った。
コンポーネントモデルはWASI Preview 2のリリースと同時期になる、その時期は2023年11月ごろだろうと語り、実際にはwasmCloudによってすでに実装されていることを説明し、WASI Preview 2を待たなくても使えるということを強調した。
そこでwasmCloudについて解説したのが次のスライドだ。
wasmCloudはWebAssemblyランタイムのwasmtime、ネットワーク機能はCloud Foundry由来のNATSなどで構成されるWasm実行環境であり、PaaS的な特徴も備えたプラットフォームだ。このスライドに書かれているOpen Application ModelはMicrosoftとAlibabaが開発を主導し、現在はOpen Web Foundation配下のオープンソースプロジェクトだ。
そしてここからはデモを交えてWebAssemblyのアプリケーションがさまざまな環境下で実行されることを見せる内容になっているが、少々わかりづらかったのが残念だ。その理由として、xkcdという4コママンガサイトからコミックをランダムに表示するWebアプリケーションとその他のデモアプリケーションがwasmCloud内で並列に実行されているためだろう。そのためにwasmCloudのダッシュボードでは多くのモジュールが可視化されてしまっている。
デモ自体はこのサイトから実行可能となっている。
●参考:デモ:XKCD Image Generator
またスライドやデモ自体も以前に紹介したブリーフィングとほぼ同様の内容になっているため、そちらも参考にして欲しい。
●参考:Liam Randall氏のブリーフィング:wasmCloudのCosmonicのCEOが新しいデモを紹介
このデモで利用されているwasmCloudの分散処理については、以下のスライドで解説されている。
ここまでで、wasmCloudが実行される場所を選ばずに自由にモジュールを実行したり、移動したりする部分を説明した。ここでのポイントは単にWebAssemblyで書かれたアプリケーションが実行されるのではなく、Open Application Modelで定義された属性に基づいて宣言的に分散処理が実行できるという部分だろう。
そしてBMWとIntelが開発し、現在はwasmCloudの中で提供されている機械学習のモジュールについて解説。ここからはWASI-NNが複数のモデルを切り替えて実行できることを説明。
この例ではTensorFlowとONNX(Open Neural Network eXchange)があげられているが、デモではモデルのサイズが違う2つのモデルに対して同じ画像を与えて画像認識の精度を比較するようすを見せた。
利用する際のニーズやポリシーによってどのプラットフォームで実行するべきか? を選択すべきだというスライドでは、パブリッククラウド、エッジ、IoTなどのデバイスについてそれぞれの特徴を挙げ、どの場所、プラットフォームでも実行できるwasmCloudの優位性を訴えた。
ここまでデモを交えてコンポーネントモデルがすでにwasmCloudで実装されていること、プラットフォームを超えた移植性を持っていること、そしてwasmCloudの柔軟性を解説した。だが実際にデモで見ることと実際に自身で試してみることには大きな理解の差が出るだろう。カンファレンスの翌日にMicrosoftのレドモンド本社キャンパスにあるExecutive Briefing Centerを借りて実施されたハッカソンへの参加を促したCosmonicにとってみれば、この2日間はアタマで理解する内容にとどまっており、最後のハッカソンで実際に手を動かしてWebAssemblyの特徴とwasmCloudの優位性を体験して欲しいというのが本音だろう。
そしてセッション終了後のQ&Aでは、スライドの元となったホワイトボードを見せながら、回答している姿が印象的だった。
また別の質問の回答として「どうしてWASIはコンポーネントモデルをベースにしているのか?」を解説するスライドが表示され、3つ目のVirtualizationというポイントには「書いたコードをローカルでテストし、どのプラットフォームでも修正せずに動くこと」が強調され、複数のプラットフォームを使い分けなければいけない現代のデベロッパーの悩みに対応していることがわかる。
今回のカンファレンスの大きなテーマだったコンポーネントモデルは、先行するCosmonic、Fermyon、Second State以外のベンダーやオープンソースコミュニティにとって、エコシステムの拡大の波に乗るための良いきっかけだろう。2023年11月初旬にシカゴで行われるKubeConまでに、さらにエコシステムが拡大するかどうか、注目していきたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- wasmCloudのCosmonicのCEOが新しいデモを紹介
- KubeCon EU 2022、WebAssemblyでダウンタイムのないアプリ実装を解説するセッションを紹介
- KubeCon Europe 2024、共催イベントのCloud Native WASM DayからCosmonicが行ったセッションを紹介
- KubeCon NA 2021開催。プレカンファレンスのWASM Dayの前半を紹介
- KubeCon Europe 2023共催のWasm Day、Cosmonicが作成したWASMを解説する絵本を紹介
- KubeCon Europe 2023共催のWasm Dayから、AdobeのWASMユースケースを紹介
- WASMを実行するためのランタイム、wasmCloudがCNCFのサンドボックスに
- KubeCon EU 2021からセキュアでコンパクトなバイナリーフォーマットWASMのセッションを紹介
- Cloud Native Wasm DayからWebAssemblyのスケジューラーWADMを解説するセッションを紹介
- CNCFのWebinarから、AdobeとAkamaiがwasmCloudを解説したセッションを紹介