Wasmの現状と将来の計画をBytecode Allianceが公開。CosmonicのBailey Hayes氏によるセッションを紹介
Bytecode AllianceがホストするWebAssembly(Wasm)について、CosmonicのBailey Hayes氏が執筆したロードマップに関するブログと動画を紹介する。CNCFが主催するカンファレンスKubeConでも何度も取り上げられており、すでに業界の話題となっているWebAssemblyだが、団体的にはBytecode Allianceがホストするプロジェクトだ。Bytecode AllianceはAmazon、Arm、Intel、Microsoftというメジャーなベンダーから、Fermyon、Cosmonicといったベンチャーも所属する非営利団体で、主なプロジェクトとして挙げられているのがWebAssemblyとWebAssembly System Interface(WASI)であることから、Bytecode AllianceにとってはWasmが目下の最重要プロジェクトであることがわかる。他のプロジェクトもランタイムのWasmtime、RustコンパイラーのバックエンドでもあるCranelift、軽量のランタイムWAMRというWasm関連のソフトウェアで占められている。
●CosmonicのBailey Hayes氏による解説動画:July 2023 Bytecode Alliance Roadmap
CosmonicのBailey Hayes氏が書いたブログ記事そして動画は、WASI Preview 2というWASIの最新のプレビュー版の概要についてその背景やサブプロジェクトの動向、そして将来構想について解説する内容となっている。
ここでHeyes氏はPreview 2を構成する3つのレイヤーについて説明を行っている。その3つとはWebAssemblyのコアの仕様、コンポーネントモデルとWebAssembly Interface Type、WebAssembly System Interface(WASI)であり、それぞれについて解説を行っている。
他にもプログラミング言語ごとのツールとWebAssemblyモジュールが利用するレジストリについて説明を行っている。
コアの仕様の部分ではメモリーアクセスやスレッドの生成、ガベージコレクションに関する新しい仕様が提案されている。レジストリについてはWargがターゲットとして設定されているようだ。Wargについては、2023年2月にシアトルで開催されたCloudNativeSecutiryConの記事で紹介しているので参照して欲しい。
●参考:CloudNativeSecurityConから、WebAssemblyのパッケージレジストリプロトコルWargのセッションを紹介
異なるプログラミング言語から呼ばれるライブラリーにおけるインターフェースを共通化する部分は、コンポーネントモデル、WebAssembly Interface Type(WIT)と呼ばれるレイヤーで開発が進んでいる。これは例えばRustで書かれたモジュールがGoやJavaScriptで書かれたライブラリーを呼ぶ場合も問題なく実行できることを目指している。その中で命名規則やバージョニング、リソースやハンドルの形式などについて開発が行われていることを説明した。
Modular WASI InterfacesはWASIの先に存在すべきサービスを定義し、予め用意された機能として提供することを目指しているようだ。それが結果としてWASI Cloudという形で実現を目指しているようだ。これはWasmのプラットフォームとしてFermyonが開発するSpinにおいてSQLiteが使えるように機能強化を行い、かつてのPaaS的な領域をカバーしようとしているのと同じ方向性だろう。Spinについては以下の記事を参照して欲しい。
●Spinの解説:All Things OpenからFermyonTechのMatt Butcher氏のセッションを紹介
FermyonはSpinをベースにクラウドサービスとして提供して、キーバリューストアやDNSなどの機能拡充を行っている。Kubernetes以外の選択肢としてのコンテンダーに名乗りを挙げたということだろう。そしてWasmにおいてもwasmCloudとして裾野を拡げようとしているのは興味深い動きだ。
プログラミング言語としては、Wasmと最も親和性が高いRustに加えてJavaScriptが挙げられている。Rustについては学習コストが高いことが問題視されているが、JavaScriptのサポートはそのような批判を避けながらサーバーサイドで多くのエンジニアがコミットしている状況への対応だろう。またComponetize-pyはPythonで書かれたモジュールをWebAssemblyの中で実行させるための仕組みだ。
WASI Preview 2の先には3が存在し、その先にWASI 1.0が存在するというのが段階的に進化していくWebAssemblyの未来だ。1.0の前にPreview 3では非同期処理が大きなターゲットとなっていることが説明されている。
このようにさまざまなマイルストーンを経て、コミュニティの同意とともにWASIが進化していく姿を間近に見られるのもオープンソースコミュニティの特性だろう。さまざまなベンダーの思惑が交差しながら着実に進化しているWebAssemblyの姿は、2023年9月にシアトルで開催される予定のWasmConで確認できるだろう。筆者も参加する予定なので期待して欲しい。
●Wasmのロードマップ:WebAssembly: An Updated Roadmap for Developers
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CloudNativeSecurityConから、WebAssemblyのパッケージレジストリプロトコルWargのセッションを紹介
- ヨーロッパ最大のテックカンファレンスKubeCon Europe 2023の共催イベントのWASM Dayを紹介
- KubeCon+CloudNativeCon NA 2023の併催イベントCloud Native Wasm Dayのキーノートを紹介
- 初めてのWasmCon開催。キーノートからコンポーネントモデルを解説するFastlyのセッションを紹介
- KubeCon Europe 2023共催のWasm Day、Cosmonicが作成したWASMを解説する絵本を紹介
- WasmCon 2023からCosmonicのCEOがコンポーネントモデルを用いたデモを紹介
- KubeCon Europe 2024、共催イベントのCloud Native WASM DayからCosmonicが行ったセッションを紹介
- KubeCon NA 2021開催。プレカンファレンスのWASM Dayの前半を紹介
- 「KubeCon NA 2022」のプレカンファレンスからCloudNative Wasm DAYを紹介
- WasmCon 2023でFermyonのCTO、Radu Matei氏に訊いた。WASI進化の注目ポイントとは