WASMを実行するためのランタイム、wasmCloudがCNCFのサンドボックスに

2021年9月2日(木)
松下 康之 - Yasuyuki Matsushita
CNCFがWebAssemblyのフレームワークwasmCloudをサンドボックスプロジェクトとしてホストすることが決まった。

WebAssembly

WebAssembly(WASM)はさまざまなプログラミング言語によって生成される実行コードを、ブラウザー上でセキュアかつ高速に実行することを可能にするバイナリーフォーマットだ。今、WebAssemblyが注目を集めているのは、サーバーサイドにおいてポリグロット(polyglot、多言語使用者)なコードを実行するための仕組みという部分だ。

かつてはコンピュータのハードウェア、OS、ミドルウェア、ライブラリー、アプリケーションは垂直に統合され、密に結合されていた。Windowsのために書かれたアプリケーションをMacintoshで実行することはできなかったし、IBMのメインフレームのために開発されたアプリケーションを、Linuxで実行することも不可能だった。

しかしWebブラウザーが登場し、JavaScriptがロジックを実行できるようになったことで、OSやハードウェアを超えてブラウザー内であれば同じコードが実行できるようになった。ブラウザーのためのプログラミング言語だったJavaScriptが、Node.jsの登場によりサーバーサイドで実行できるようになったことも転換期といえるだろう。しかしJavaScriptはセキュリティという面では不足していることも多く、脆弱性の面では必ずしも十分とは言えない。また実行時のオーバーヘッドなどもあり、メリットとリスクが同時に増殖してしまった感は否めない。その状況を変えたのが、Mozillaが開発したWebAssemblyだ。

wasmCloudがCNCFのサンドボックスプロジェクトへ

前置きが長くなったが、WebAssemblyを実行するためのプラットフォームwasmCloudが、CNCFのサンドボックスプロジェクトとして承認された。wasmCloudはCosmonicというベンチャーが開発したWebAssemblyのためのランタイムだが、単なるランタイムという領域を超えて、ネットワークのバックプレーンを備えていることやコマンドラインインターフェースなども含まれていることが特徴的だ。その意味でランタイムではなくプラットフォームという用語を使っていると思われる。

Cosmonicのブログ記事:wasmCloud Joins Cloud Native Computing Foundation as Sandbox Project

CNCFはコンテナランタイムにおいてDockerやRed Hat、AWSなどのベンダーが支持するランタイムが乱立したことを教訓に、WebAssemblyにおいてはいち早くエコシステムの中核となるプロジェクトをホストすることで、ソフトウェアの進化の方向性を統一したいという気持ちがあるように思える。それはMicrosoftのMatt Butcher氏も同じことを考えているようで、2021年5月4日に行われたKubeCon EUの併催イベントCloud Native WASM Dayのセッションでも「ランタイムが乱立している」という現状認識を述べている。

Cloud Native WASM Dayのスライドから

Cloud Native WASM Dayのスライドから

それを踏まえて今回のCNCFによるサンドボックスプロジェクト化を考えれば、WebAssemblyはコミュニティが望むような良い方向へと進んでいるということになるだろう。WebAssemblyと下位のシステムとのインターフェースを定義するWASI(WebAssembly System Interface)はBytecode Allianceがホストするプロジェクトだが、Bytecode AllianceではなくCNCFがwasmCloudをホストすることで、CNCFのエコシステムの中にWebAssemblyが組み込まれていくことは確実だろう。

wasmCloudについて

そして今回の本題となるwasmCloudについて解説しよう。

wasmCloudの公式ページ

wasmCloudについては、CosmonicのCEO兼創業者のLiam Randall氏がKubeCon EUで実施したセッションを紹介したい。これはKubeCon EUに併催されたCloud Native WASM Dayのセッションとなる。

KubeCon EUからの公式動画:Sponsored Keynote: WebAssembly: The future of distributed computing - Liam Randall, Wasmcloud

まずは今回の発表を行ったCosmonicのサイトから引用したい。

時代が進むにつれてアプリケーションが徐々にインフラと分離していくようすが表現されている

時代が進むにつれてアプリケーションが徐々にインフラと分離していくようすが表現されている

この図は、一番左から右の最新の姿に移行していくアプリケーションとインフラストラクチャーの結合具合を表現している。つまりかつてのサーバーやPCではハードウェア、OSからアプリケーションまでが密結合していたが、仮想マシン、コンテナと進んで行くに従って分離し、疎結合になっていくようすを表現している。ここでの注目は、WebAssemblyをさらに進化させた形態としてWebAssemblyのコードを実行するものとしてwasmCloudが位置付けられている点だろう。

ここからはKubeCon EUのCloud Native WASM Dayのキーノート、Liam Randall氏のセッションを紹介する。これは先ほどのMicrosoftのButcher氏のセッションと同じく2021年5月4日に行われたもので、上記スライドはその後にアップデートされていることに留意されたい。

「WebAssemblyは分散コンピューティングの未来である」というタイトル

「WebAssemblyは分散コンピューティングの未来である」というタイトル

「WebAssemblyは分散コンピューティングの未来である」というのは随分と振り被ったタイトルだが、Randall氏が挙げるWebAssemblyの特徴を見れば、自ずとその自信の源泉も見えてくるだろう。

Randall氏が挙げたWebAssemblyの特徴

Randall氏が挙げたWebAssemblyの特徴

高速でセキュア、そしてW3Cで標準化が進んでいることからオープンであることはすでに知られているが、Randall氏が強調したかったのは下の2つのポイントだろう。多種多様なプログラミング言語からWebAssemblyのバイトコードを生成できること(polyglot)、そしてブラウザーは元よりスーパーコンピュータからサーバー、エンベデッドデバイスまでをカバーできるポータビリティがあることによって、分散コンピューティングの構成要素の救世主に躍り出たと言っても良いだろう。

2021年5月の段階では一番右にwasmCloudが配置されていない

2021年5月の段階では一番右にwasmCloudが配置されていない

そしてこのスライドと冒頭に使ったスライドを見比べて欲しい。2021年5月の時点ではwasmCloudは存在しておらず、あくまでもWebAssemblyが最も進化した姿として置かれている。しかし今回のCNCFによるサンドボックスプロジェクト化によって、やや乱立気味だったWebAssemblyのランタイム&フレームワーク問題にも終止符が打たれたと認識すべきだろう。実際にコミュニティが同じような機能を果たす複数のプロジェクト間の競争に明け暮れることを避けられたというのは、ガバナンスとしては最良の結果だったと思える。

WebAssemblyが対応する多種多様なシステムアーキテクチャー

WebAssemblyが対応する多種多様なシステムアーキテクチャー

ここではコネクテッドデバイスが爆発的に増加することを受けて、その上で稼働するアプリケーションをどうやって開発するのか? という問題について、WebAssemblyがそのエコシステムの中でその違いを吸収していくだろうという予測を解説している。

また今回の発表を受けてクラウドネイティブなシステムに特化したインターネットメディア、The New StackがWebAssemblyに関連深いエンジニアを集めて配信を行った。

The New Stackの動画:WebAssembly comes to Cloud Native Computing

この動画は、wasmCloudを開発したCosmonicのCEOであるLiam Randall氏、MicrosoftのプリンシパルエンジニアであるMatt Butcher氏、AtmoというWebAssemblyをベースにしたサーバーレスフレームワークを開発するSuborbital Software Systemsのエンジニア、Rustをプロダクションで使っていることで有名なFastlyのCTO、さらにMozillaでWebAssemblyを開発した創始者など錚々たるメンバーによるセッションとなった。

このセッションでは、WASMに対する期待と今後の展開についてさまざまな角度から意見が出されており、非常に興味深いものとなった。特に印象的だったコメントをいくつか紹介したい。

MicrosoftのMatt Butcher氏のコメントは以下のとおりだ。「仮想マシン、コンテナにはそれぞれ問題に特化した解決策として利用されている。コンテナによって仮想マシンが消えることはなく、今でも使われている。ただ、IoTやエッジなどのより軽量なデバイス向けの実行環境というものがなかった。WASMはその穴を埋めるテクノロジーである。今回のCNCFにホスティングを最大限に評価している」。

またエコシステムを構成するサーバーレスフレームワークであるAtmoプロジェクトを推進するSuborbital software systemsのエンジニアも、これによってエコシステムが拡大することを評価している。

The New Stackのラウンドテーブルに集まったWebAssembly界隈のエンジニアたち

The New Stackのラウンドテーブルに集まったWebAssembly界隈のエンジニアたち

この写真では中央にLiam Randall氏、Randall氏の下にMicrosoftのMatt Butcher氏、Randall氏の右にWebAssemblyに特化した新しいプログラミング言語であるGrainを開発するOscar Spencer氏、Spencer氏の上はFastlyのCTO、Tyler McMullen氏だ。McMullen氏はかつてWebAssemblyのためのコンパイラーとランタイム、LucetをBytecode Alliance配下で開発していたことでも知られているが、このラウンドテーブルではwasmCloudを大いに評価していることがわかる。

今回のCNCFによるサンドボックスプロジェクトはあくまでも始まりに過ぎず、実際にはここからコミュニティとユーザー、そしてベンダーが協力しあっていくことが必要だ。wasmCloudのネットワークプレーンであるLatticeにはCNCFのNATSが使われているということも、クラウドネイティブなコミュニティにとっては近しい存在なのかもしれない。KubeCon NAでもWebAssemblyに特化した併催イベントが開かれる予定だ。引き続き注目していきたい。

wasmCloud公式サイト:https://wasmcloud.dev/

Grain公式サイト:https://grain-lang.org/

Atmo公式サイト:https://atmo.suborbital.dev/

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

連載バックナンバー

サーバー技術解説

Tigeraのアドボケイトが、x86とARMのマルチアーキテクチャークラスターを解説

2022/4/7
ARMの優位性を解説しながら、ARMをx86クラスターに追加するマルチアーキテクチャークラスターを、デモを用いて解説。
システム開発イベント

KubeCon NA 2021からサービスメッシュの2セッションを紹介

2022/3/18
KubeCon NA 2021からサービスメッシュのLinkerdの最新情報とIstioを使ったユースケースのセッションを紹介する。
セキュリティイベント

KubeCon NA 2021、ソフトウェア開発工程のタンパリングを防ぐSLSAを解説

2022/3/9
KubeCon NA 2021のプレカンファレンスから、ソフトウェアサプライチェーンを実装するフレームワークSLSAを取り上げたセッションを紹介する。

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

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

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

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