KubeCon EU 2021からセキュアでコンパクトなバイナリーフォーマットWASMのセッションを紹介

KubeCon+CloudNativeCon EUからWebAssemblyがクラウドネイティブの未来であると解説するセッションを紹介する。

松下 康之 - Yasuyuki Matsushita

2021年9月10日 6:00

ThinkITの記事でも何回か取り上げているWASM(WebAssembly)だが、もはやWASMを「言語」や「バイナリーフォーマット」と紹介するのは無理があると感じている。これは筆者だけの感想ではないだろう。

過去の記事では「ブラウザーで実行されるバイナリーフォーマット」と紹介したが、WASMを取り囲むエコシステムはすでにより大きな広がりを見せている。コンテナを「OSの機能をベースにしてアプリケーションと必要なライブラリーをパッケージする技術」と解説しても、Kubernetesを中心とした大きなエコシステムの中では要素技術でしかないことと同様に、WASMもより大きな観点で見渡す必要があると言える。

WebAssemblyとRustが作るサーバーレスの未来

その意味ではWASMも、単なるブラウザーのバイナリーフォーマットから、サーバーサイドでセキュアにアプリケーションを高速実行するための要素技術、そしてクラウドネイティブなアプリケーションをデータセンターからエッジサーバー、さらにIoTデバイスにおいても実行可能にするプラットフォームの一部として捉えるべきだろう。

今回はKubeCon EU 2021から、クラウドネイティブなシステムとWASMの関係を解説したキーノートセッションを紹介する。

wasmCloud

キーノートに登場したWASMセッション

キーノートに登場したWASMセッション

WASMのキーノートセッション:Cloud Native & WebAssembly: Better Together - Liam Randall & Ralph Squillace

セッションのタイトルは「Cloud Native and WebAssembly:Better together」、プレゼンテーションを担当したのはwasmCloudの共同創業者であるLiam Randall氏とMicrosoft AzureのコアチームのプログラムマネージャーであるRalph Squillance氏だ。

まずはRandall氏と氏が創設したWasmをベースにしたオープンソースソフトウェアwasmCloudについて紹介しよう。

元Capital OneでStackletのVP、Liam Randall氏

元Capital OneでStackletのVP、Liam Randall氏

Microsoft AzureのアップストリームチームのPM、Ralph Squillance氏

Microsoft AzureのアップストリームチームのPM、Ralph Squillance氏

LinkedInでLiam Randall氏の経歴を見ると、StackletのVP Business Developmentという肩書きを持っているが、他にもCloud Custodianのコントリビュータであり、wasmCloudの共同創業者でもあるという。以前はアメリカの先進的な金融機関として有名なCapital OneのVP, Software Innovationとして、Capital Oneがクラウドネイティブなシステムの開発に進む際のリーダーの一人として活躍した。Capital Oneが公開したAWSのアカウントを管理するツールであるCloud Custodianを開発していたことを考えると、クラウドネイティブなシステム開発についてはユーザーのとして視点と、オープンソースソフトウェアのコントリビュータとしての視点の双方を持ち合わせている稀な人材ということになるだろう。

また共同創業者でもあるオープンソースソフトウェアのwasmCloudは、アクターモデルを実装したWasmのランタイムプラットフォームという説明がこの段階では妥当だろう。wasmCloudについては最後にもう一度解説を行いたい。

コンテナ/Kubernetesまでとその先

PCからコンテナに繋がる分離の進化を解説

PCからコンテナに繋がる分離の進化を解説

このスライドでは、これまでのコンピュータシステムはハードウェア、OS、ライブラリーそしてデベロッパーがコードを書いたアプリケーションが階層かつ密接に積み重なっていることを解説している。かつてはOSからライブラリーまでデベロッパーが担当していたものが、徐々に抽象化されていくことで仮想マシンとハイパーバイザー、そしてコンテナをオーケストレーションするKubernetesに進化していったことを解説した。

ここでのポイントは徐々にハードウェアから上のスタックが疎結合になっていくという方向性だ。このスライドで青く塗られているスタックは外部から提供される(自前のこともあるが)ものであり、緑はユーザーが用意するものである。一番右側のコンテナとKubernetesの世界では、カーネル以下が置き換え可能なレイヤーとして位置付けられている。ではその先に何が来るのか? これを語る前にインフラストラクチャーは多様化していることを解説し、いわゆるデータセンターから極小サイズのデバイスまでをオーケストレーションする必要が生じているという背景を説明した。

インフラストラクチャーは多様化している

インフラストラクチャーは多様化している

その上でCNCFのランドスケープを引用して、多種多様なソフトウェア、ツール、サービスが疎結合の形で相互接続して実装されることが必要だと解説した。

エッジデバイスからクラスターまで適応できるクラウドネイティブなシステムが必要

エッジデバイスからクラスターまで適応できるクラウドネイティブなシステムが必要

WebAssembly

その上でWebAssemblyはエッジからデータセンターまで実装されていることを紹介。特にメジャーなブラウザーだけではなく、さまざまなプログラミング言語をサポートしていることを強調した。

ブラウザーからエッジ、クラスターまでカバーするWebAssembly

ブラウザーからエッジ、クラスターまでカバーするWebAssembly

またWebAssemblyの特徴である「高速実行可能であること」「サンドボックスによるセキュアな実行」「複数のプログラミング言語のサポート」「サーバーからブラウザーまでカバーするポータビリティ」などを挙げて解説した。

WebAssemblyの特徴

WebAssemblyの特徴

またクラウドネイティブという観点では、wasmCloud、Kubewardenの中で使われていることを紹介。KubewardenはKubernetesのカスタムリソースをベースにして開発されたポリシーエンジンで、ポリシーの記述にWebAssemblyを利用しているという。Kubernetes上のポリシーエンジンとしては、CNCFのプロジェクトでもあるOpen Policy Agent(OPA)や、同じくカスタムリソースをベースにしてポリシーを実装するKyvernoなどがある。OPAはLua、KyrvernoはYAMLでポリシーを記述するが、KubewardenはWebAssemblyにコンパイルできる言語ならどの言語でもポリシーを記述できる。これは、他にないKubewardenの特徴と言えるだろう。

参考:Kubewarden Kubernetes Dynamic Admission at your fingertips

クラウドネイティブなシステムにおけるWasm

クラウドネイティブなシステムにおけるWasm

またwasmCloudについては公式GitHubサイトにおいて「wasmCloud is a universal host runtime for actors built with WebAssembly and capability providers」と呼んでいるように、アクターモデルをWebAssemblyで実装したランタイム環境となる。

Kubernetesの後に出てくるパラダイムがWebAssembly

Kubernetesの後に出てくるパラダイムがWebAssembly

ここで前に出てきた抽象化と疎結合によるシステムの向かう方向性の先に、WebAssemblyとその他のシステムがあることを説明した。ここではひとつ前の段階におけるアプリケーションが依存するライブラリーの部分がWebAssemblyに置き換わっていることがわかる。アプリケーションが依存するライブラリーはオープンソースソフトウェアにおいては常に頭痛の種として挙げられる点と言える。脆弱性の発生源がライブラリーであることからも、「ライブラリー依存をどうやって解決するのか?」は重要な問題だ。WebAssemblyにおいては、サンドボックスを用いてメモリーアクセス関連のバグを減らすことが期待できる。またよりセキュアなシステム開発言語としてRustが注目されているのも、異常なメモリーアクセスをコンパイル時にチェックできるという点が大きい。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30