KubeCon+CloudNativeCon NA 2023の併催イベントCloud Native Wasm Dayのキーノートを紹介

KubeCon+CloudNativeCon North America 2023の併催イベントCloud Native Wasm Dayのキーノートを紹介する。

松下 康之 - Yasuyuki Matsushita

2024年1月19日 6:00

KubeCon+CloudNativeCon North America 2023から、2023年11月6日に開催されたWebAssemblyに特化したミニカンファレンスCloud Native Wasm Dayを紹介する。WebAssemblyが注目を集めていることは2023年の9月6日、7日にシアトルでWebAssemblyだけのカンファレンスWasmConが開催されたことでもわかる。KubeConはCNCF主催、WasmConはCNCFの親組織であるThe Linux Foundation主催ということで、オープンソースをリードする2つの組織が強力にプッシュしているテクノロジーがWebAssemblyである。

今回はキーノートとして行われたキーノートセッションを紹介する。タイトルは「WebAssembly Component Model: Enhancing Security, Productivity and Green Computing」で、WebAssemblyに対して新たに導入されたコンポーネントモデルを、デモを交えて解説するという内容だ。プレゼンテーションを行ったのはKate Goldenring氏(Senior Engineer, Fermyon)とBailey Hayes氏(CTO, Cosmonic)だ。

●動画:WebAssembly Component Model: Enhancing Security, Productivity, and Green Computing

新たに導入されたコンポーネントモデル

プレゼンテーションを行うGoldenring氏(左)とHayes氏(右)

プレゼンテーションを行うGoldenring氏(左)とHayes氏(右)

タイトルが示すようにコンポーネントモデルについての解説だが、「技術的にこうなっている」という解説ではなく、ソフトウェア開発に求められる「あるべき姿」を示しながら「どうしてそれがコンポーネントモデルで可能になるのか?」を解説しており、今までの概念的な説明からより現実的な問題解決のための手法に踏み込んでいるところに意味がある内容だ。

良いソフトウェアとは?

良いソフトウェアとは?

このスライドでは良いソフトウェアが持つべき特徴として「独立していること(Isolated)」「緩和可能であること(Mitigatable)」「効率的(Efficient)」という3点を挙げて説明した。

「独立」については近年のオープンソースソフトウェアを使った開発において、ライブラリーなどにおける依存関係が深いソフトウェアよりも単独で実行可能なソフトウェアであるべきと解説しており、Hayes氏がGitHubのDependabotにも言及しているところからもわかるように、強い依存関係にあるソフトウェアから脆弱性が発生することなどを念頭において説明している。

これは「緩和可能」という部分にも関連する内容であり、ソフトウェアの脆弱性を修正するためになるべくシンプルな依存関係を維持できるような構成を取るべきということになる。最後の「効率的」については、実行時のメモリーやファイルサイズなどについて最小限のリソースを消費するシステムを選択するべきという提言だ。これらの特徴はどれもWebAssemblyに当てはまる内容となっており、技術面の特徴をモダンなソフトウェアにおいて必要な特性に当てはめた説明となっている。

WASMの特徴を表したビンゴを紹介

WASMの特徴を表したビンゴを紹介

ここからはエンジニアらしいカジュアルな説明スタイルとなり、WASMの特徴を表したビンゴカードをスライドに使って解説。ここではWASMが多種多様なプログラミング言語から生成できるフォーマットであること、オープンな標準仕様に準拠していることなどを説明した。

ここからコンポーネントモデルの解説

ここからコンポーネントモデルの解説

コンポーネントモデルの解説に移ったが、これまでの単一のプログラムから違う言語で書かれた2つのモジュールが定義されたインターフェース(WebAssembly Interface Type)を通じて通信するようすを解説した。特に再利用可能なモジュールが実現可能であり、多言語間の通信、サンドボックスなどの特徴も合わせて解説している。

多くの脆弱性がビジネスロジック以外の部分で発生していると強調

多くの脆弱性がビジネスロジック以外の部分で発生していると強調

セキュリティについて強調したこのスライドでは、Sysdigが行ったリサーチの結果を引用して多くのコンテナイメージに脆弱性が内包されていること、そしてそのうちの重大な脆弱性について約15%しか修正が行われていないことなどを紹介した。

産業界や各国のセキュリティ標準が多数存在することを示すスライド

産業界や各国のセキュリティ標準が多数存在することを示すスライド

このスライドではEUやNIST、PCI DSSなどのセキュリティ仕様が多数存在し、それらをすべてクリアすることがいかに大変かを説明している。会場からは笑いも起きた瞬間だったが、改めて多くの仕様が存在し、それをリストアップしたHayes氏の労力に対する賛同という意味合いもあったように思える。== コンポーネントモデルを用いたデモ

コンポーネントモデルを使ったアプリケーションデモを解説

コンポーネントモデルを使ったアプリケーションデモを解説

ここからコンポーネントモデルを用いたアプリケーションのデモを使って、脆弱性がそれぞれの部分で発見されたというシナリオを元にコンポーネントモデルにおける特徴を解説するフェーズに入った。これは認証のミドルウェアを用いるビジネスアプリケーションがランタイム上にコンポーネントモデルで実装されているサンプルだ。

デモに使われたサンプルコードは以下を参照されたい。

●サンプルアプリのリポジトリ:https://github.com/fermyon/http-auth-middleware

最初のシナリオは認証のコンポーネントに脆弱性が発見されたというもので、アップデートを行う際にWargというWebAssemblyのリポジトリを利用可能であること、コンポーネントのアップデートが終わればビジネスロジック側をリビルドする必要がないことなどを強調した。

ミドルウェアに脆弱性が発見されてもアップデート後にビジネスロジックのリビルドは不要

ミドルウェアに脆弱性が発見されてもアップデート後にビジネスロジックのリビルドは不要

またビジネスロジック側に脆弱性が発見された場合も、すべてのコンポーネントをリビルドする必要がないことも解説。

ビジネスロジックに脆弱性が発見されてもその部分だけ修正すれば良い

ビジネスロジックに脆弱性が発見されてもその部分だけ修正すれば良い

インフラストラクチャー側で用意されるデータベースなどの部分においても同様で、それぞれが独立している利点が十分に発揮されている。

データベース側に脆弱性が発見されてもそのコンポーネントだけアップデート

データベース側に脆弱性が発見されてもそのコンポーネントだけアップデート

次に通常のCI/CDのプロセスにおける優位点についても解説を行った。現状ではさまざまなバージョン、OSを意識してCI/CDのプロセスを構築する必要があるが、コンポーネントモデルを使えば、それらのマトリクス状のビルドからテスト及びパッケージ化の複雑なプロセスが簡易化されることを強調した。

現状では言語、OS、バージョンのマトリクスが必須

現状では言語、OS、バージョンのマトリクスが必須

しかしプラットフォームに依存しないWebAssemblyとコンポーネントモデルを使うことで、複雑なビルドからテストのマトリクスが不要になる。

コンポーネントモデルを使えば、CI/CDでそのようなマトリクスが不要になる

コンポーネントモデルを使えば、CI/CDでそのようなマトリクスが不要になる

また最後にさまざまなプラットフォームとツールで同じコードが実装できるデモを実施。ここではBytecode Allianceの標準ツールを使ってビルド&実行したコードを、Goldenring氏が所属するFermyonが開発するSpinというプラットフォームでもHayes氏が所属するCosmonicが開発するwasmCloudでもツールを変えるだけで実行できることを解説した。

同じコードをツールとプラットフォームを変えても即座に実行できる

同じコードをツールとプラットフォームを変えても即座に実行できる

最後にまとめとしてWebAssemblyとコンポーネントモデルの特徴を再度、振り返ってセッションを終えた。

WebAssemblyとコンポーネントモデルの特徴を紹介

WebAssemblyとコンポーネントモデルの特徴を紹介

これまでの解説ではコンポーネントモデルの概要の紹介や通信のためのインターフェースタイプ(WIT)の解説などが中心であり、コンポーネントモデルの利点についてはあまり解説していなかったが、今回はその部分に集中的にポイントを置いた内容とデモとなった。単なる技術解説ではなく現実の問題解決のためにWebAssemblyとコンポーネントモデルがあるということを強調する姿勢は大いに評価したい。

セッション後に参加者からの質問に応えるBailey Hayes氏

セッション後に参加者からの質問に応えるBailey Hayes氏

WASM Dayのスケジュールは以下から参照可能だ。

●参考:CNCF-hosted Co-located Events North America 2023

人気記事トップ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