連載 [第3回] :
  WasmCon 2023レポート

WasmCon 2023からCosmonicのCEOがコンポーネントモデルを用いたデモを紹介

2023年12月5日(火)
松下 康之 - Yasuyuki Matsushita
WasmCon 2023から、CosmonicのCEOによるコンポーネントモデルを用いたデモのセッションを紹介する。

2023年9月に行われたWasmConから、CosmonicのCEOであるLiam Randall氏とTaylor Thomas氏によるコンポーネントモデルを解説したセッションを紹介する。

セッションを行うLiam Randall氏(左)とTaylor Thomas氏。

セッションを行う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モジュールがオンプレミス、パブリッククラウド、エッジなどの環境に関わらず自由に配置できることを強調する内容となった。その際に機能を組み合わせるための方法論がコンポーネントモデルという位置付けだ。

エンタープライズ向けのアプリの95%は非機能要件で占められている

エンタープライズ向けのアプリの95%は非機能要件で占められている

まずRandall氏は、エンタープライズ向けに開発されるアプリケーションが、使用するライブラリーなどがリンクされることによって肥大化しており、それが結果的に実行環境へのコストとして現れていると強調。しかしコンピューティングモデルはハードウェア、OS、ライブラリーそしてビジネスロジックを実装したアプリケーションをすべてデベロッパー側が用意する時代から、仮想化、コンテナ、Kubernetesなどのプラットフォームに進化することによって外部化、抽象化が進んでいる。その結果、デベロッパーはビジネスロジックだけを用意すれば、残りはプラットフォーム側が揃えてくれるようになってきているというモデルを紹介。

以下のスライドに示したモデルはCosmonicのセッションではたびたび目にするものだが、かつてはKubernetes→Wasmだったものが、最終的にwasmCloudというCosmonicが提供するWebAssembly実行環境をターゲットにするように進化していることに注目したい。他にもFermyonがSpinというWebAssembly実行環境を用意してデベロッパーの負荷を下げる方向に行こうとしているが、Cosmonicもデベロッパーがプラットフォーム側を意識せずにビジネスロジックに注力できるPaaS的なものを志向するという意図が見える。

新しいコンピューティングモデルの最終形はwasmCloud

新しいコンピューティングモデルの最終形はwasmCloud

そしてここからはTaylor Thomas氏がバトンを受け取る形で、機能を組み合わせるためのコンポーネントモデルの解説を行った。

Taylor Thomas氏によるコンポーネントモデルをレゴに見立てた解説

Taylor Thomas氏によるコンポーネントモデルをレゴに見立てた解説

コンポーネントモデルはWASI Preview 2のリリースと同時期になる、その時期は2023年11月ごろだろうと語り、実際にはwasmCloudによってすでに実装されていることを説明し、WASI Preview 2を待たなくても使えるということを強調した。

コンポーネントモデルの正式な提供はWASI Preview 2と同じ時期

コンポーネントモデルの正式な提供はWASI Preview 2と同じ時期

そこでwasmCloudについて解説したのが次のスライドだ。

wasmCloudはwasmtimeやNATS、OpenTelemetry、OCI、CloudEventsなどで構成されている

wasmCloudはwasmtimeやNATS、OpenTelemetry、OCI、CloudEventsなどで構成されている

wasmCloudはWebAssemblyランタイムのwasmtime、ネットワーク機能はCloud Foundry由来のNATSなどで構成されるWasm実行環境であり、PaaS的な特徴も備えたプラットフォームだ。このスライドに書かれているOpen Application ModelはMicrosoftとAlibabaが開発を主導し、現在はOpen Web Foundation配下のオープンソースプロジェクトだ。

そしてここからはデモを交えてWebAssemblyのアプリケーションがさまざまな環境下で実行されることを見せる内容になっているが、少々わかりづらかったのが残念だ。その理由として、xkcdという4コママンガサイトからコミックをランダムに表示するWebアプリケーションとその他のデモアプリケーションがwasmCloud内で並列に実行されているためだろう。そのためにwasmCloudのダッシュボードでは多くのモジュールが可視化されてしまっている。

xkcdのデモでどのプラットフォームでもモジュールが実行可能なことを見せる

xkcdのデモでどのプラットフォームでもモジュールが実行可能なことを見せる

デモ自体はこのサイトから実行可能となっている。

●参考:デモ:XKCD Image Generator

またスライドやデモ自体も以前に紹介したブリーフィングとほぼ同様の内容になっているため、そちらも参考にして欲しい。

●参考:Liam Randall氏のブリーフィング:wasmCloudのCosmonicのCEOが新しいデモを紹介

このデモで利用されているwasmCloudの分散処理については、以下のスライドで解説されている。

AWS、壇上のMacBook、Azureにモジュールを分散して実行

AWS、壇上のMacBook、Azureにモジュールを分散して実行

ここまでで、wasmCloudが実行される場所を選ばずに自由にモジュールを実行したり、移動したりする部分を説明した。ここでのポイントは単にWebAssemblyで書かれたアプリケーションが実行されるのではなく、Open Application Modelで定義された属性に基づいて宣言的に分散処理が実行できるという部分だろう。

IntelとBMWが開発した画像認識モジュールをユースケースとして紹介

IntelとBMWが開発した画像認識モジュールをユースケースとして紹介

そしてBMWとIntelが開発し、現在はwasmCloudの中で提供されている機械学習のモジュールについて解説。ここからはWASI-NNが複数のモデルを切り替えて実行できることを説明。

WASI-NNで複数のモデルを切り替えて実行するデモを見せた

WASI-NNで複数のモデルを切り替えて実行するデモを見せた

この例ではTensorFlowとONNX(Open Neural Network eXchange)があげられているが、デモではモデルのサイズが違う2つのモデルに対して同じ画像を与えて画像認識の精度を比較するようすを見せた。

利用する際のニーズやポリシーによってどのプラットフォームで実行するべきか? を選択すべきだというスライドでは、パブリッククラウド、エッジ、IoTなどのデバイスについてそれぞれの特徴を挙げ、どの場所、プラットフォームでも実行できるwasmCloudの優位性を訴えた。

利用者がニーズやポリシーによって実行するプラットフォームを選択可能

利用者がニーズやポリシーによって実行するプラットフォームを選択可能

ここまでデモを交えてコンポーネントモデルがすでにwasmCloudで実装されていること、プラットフォームを超えた移植性を持っていること、そしてwasmCloudの柔軟性を解説した。だが実際にデモで見ることと実際に自身で試してみることには大きな理解の差が出るだろう。カンファレンスの翌日にMicrosoftのレドモンド本社キャンパスにあるExecutive Briefing Centerを借りて実施されたハッカソンへの参加を促したCosmonicにとってみれば、この2日間はアタマで理解する内容にとどまっており、最後のハッカソンで実際に手を動かしてWebAssemblyの特徴とwasmCloudの優位性を体験して欲しいというのが本音だろう。

Bytecode Alliance主催のハッカソン「Componentize the World」を紹介

Bytecode Alliance主催のハッカソン「Componentize the World」を紹介

そしてセッション終了後のQ&Aでは、スライドの元となったホワイトボードを見せながら、回答している姿が印象的だった。

機能がコンポーネントとしてレゴブロックのように組み合わされる

機能がコンポーネントとしてレゴブロックのように組み合わされる

また別の質問の回答として「どうしてWASIはコンポーネントモデルをベースにしているのか?」を解説するスライドが表示され、3つ目のVirtualizationというポイントには「書いたコードをローカルでテストし、どのプラットフォームでも修正せずに動くこと」が強調され、複数のプラットフォームを使い分けなければいけない現代のデベロッパーの悩みに対応していることがわかる。

どうしてWASIはコンポーネントモデルをベースにしているのか? の回答

どうしてWASIはコンポーネントモデルをベースにしているのか? の回答

今回のカンファレンスの大きなテーマだったコンポーネントモデルは、先行するCosmonic、Fermyon、Second State以外のベンダーやオープンソースコミュニティにとって、エコシステムの拡大の波に乗るための良いきっかけだろう。2023年11月初旬にシカゴで行われるKubeConまでに、さらにエコシステムが拡大するかどうか、注目していきたい。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

クラウドイベント
第4回

WasmCon 2023でFermyonのCTO、Radu Matei氏に訊いた。WASI進化の注目ポイントとは

2023/12/7
WasmCon 2023の会場にてFermyonのCTOであるRadu Matei氏にインタビューを実施した。WASI進化の注目ポイントはストリーミング?
クラウドイベント
第3回

WasmCon 2023からCosmonicのCEOがコンポーネントモデルを用いたデモを紹介

2023/12/5
WasmCon 2023から、CosmonicのCEOによるコンポーネントモデルを用いたデモのセッションを紹介する。
AI・人工知能イベント
第2回

WasmCon 2023からLLMをWASMで実装するセッションを紹介

2023/12/1
WasmConからLLMをWASMで実装するセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています