
228
2-5~ 2-8 で解説したコンテナは、アプリケーションの担当者がカー
ネル以外の領域を自由に構成でき、Dockerfi le を書けば欲しい環境イメー
ジを手に入れ、検証/本番環境で実行できるメリットがあります。一方で
ベースとなる Docker イメージはアプリケーションの実行に直接関係のない
ライブラリやパッケージが含まれていたりします。コンテナを使う場合、
アプリケーションを含むコンテナイメージをベースとなるDockerfi leで構築
する関係上、これまではインフラ構築の範囲で実装していたユーザーラン
ド部分をアプリケーションの担当者が実装する必要があります(図12-15)。
ユーザーランド部分があると、その部分のセキュリティ管理も必要と
なります。ユーザーランド部分を極力小さくして余計なものをコンテナ
に含めないように、マルチステージビルドというしくみを採用したり、
DevSecOpsという枠組みでコンテナの脆弱性スキャンのしくみが発展
したりしていますが、アプリケーションの担当者の負荷は高まりつつあ
ります。
このような状況はアプリケーションの担当者にとっては望ましい状況で
はありません。このような点でもWasmが注目されています。Wasmでは
各言語で書かれたアプリケーションをコンパイルして作成されたWasm
バイナリが提供されます。Wasmバイナリには言語ランタイムを含みます
が、コンテナと比較すると削減することが可能です。
将来的にコンポーネントモデルが提供されれば、Wasmアプリはアプリ ...