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

2024年1月19日(金)
松下 康之 - Yasuyuki Matsushita
KubeCon+CloudNativeCon North America 2023の併催イベントCloud Native Wasm Dayのキーノートを紹介する。

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

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

連載バックナンバー

クラウドイベント
第5回

KubeCon+CloudNativeCon North America 2023のキーノートとショーケースを紹介

2024/2/16
パンデミック後、最大のOSS系カンファレンスとなったKubeCon+CloudNativeCon North America 2023のキーノートと会場のようすを駆け足で紹介する。
クラウドイベント
第4回

Cloud Native Wasm Dayから大規模言語モデルをWasmで実行するデモを解説するセッションを紹介

2024/2/8
Second StateのMichael Yuan氏が解説する大規模言語モデルをWasmで実行するデモのセッションを紹介する。
クラウドイベント
第3回

Cloud Native Wasm DayからWebAssemblyのスケジューラーWADMを解説するセッションを紹介

2024/1/31
Cloud Native Wasm DayからCosmonicのエンジニアが解説する新しいスケジューラー、WADMのセッションを紹介する。

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

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

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

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