米Dockerは、コンテナ基盤「Docker」に、WebAssemblyコンテナを動作させる機能を持たせたプレビュー版を10月24日(現地時間)に公開した。
WebAssemblyは元々、Webブラウザ内でC/C++アプリケーションを動作させるために開発されたバイナリフォーマットであり、現在はRust、Go、JavaScriptなど40以上の言語からWebAssemblyバイナリを生成できる。
JavaScriptと同様、元々はWebブラウザの中で動作するものだったが、Node.jsの登場でJavaScriptがサーバーアプリケーションの記述に使えるようになったのと同じように、「WebAssembly System Interface(WASI)」の登場で、WebAssemblyをサーバーアプリケーションの実行フォーマットとして使えるようになった。
そうなるとDockerコンテナと同じ位置付けで、WebAssemblyコンテナを動かせるようにしたら良いのではというアイデアが出てきた。今回Dockerが公開したプレビュー版は、これを可能にするものだ。
今回公開したプレビュー版では、コンテナのランタイムとして既存のDockerと同様に「containerd」を採用しているが、コンテナを動作させるときは「runc」ではなく「WasmEdge」ランタイムを動作させている。WasmEdgeは、Linuxコンテナに比べて起動が100倍速く、アプリケーションの動作が20%速いと主張しており、同じアプリケーションならファイルサイズをLinuxコンテナの100分の1まで縮小できるとしている。
そしてDockerは、WebAssemblyやWebAssembly System Interfaceの規格を策定する業界団体である「Bytecode Alliance」に参加することも発表した。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です