WASMはコンテナを置き換えるようになる
(creston.blog)"WebAssemblyは真の Write-Once-Run-Anywhere である"
"2030年になれば、誰も Kubernetes を覚えていないだろう"
移植性(Portability)
- コンテナはソフトウェア開発における多くの問題を解決し、VMよりも使い勝手に優れていた
- しかし現在のコンテナは、複雑なツールやプログラム・コンテナ・Linux の強い結び付きにより、扱いが煩雑になっている
- 開発者はコード作成と機能デプロイに集中したいのであり、Docker の学習は妨げになっている
- WebAssembly(WASM)はすでに一部の領域でコンテナを置き換えつつあり、「一度書けばどこでも実行できる」体験を提供する
- 複数の言語を WASM にコンパイルでき、システムインターフェースの不足が広範な採用を妨げているが、これはまもなく解決されるだろう
- 現在の WASM の主な制約は、ファイルアクセスやネットワーキングなどのシステムインターフェースが不足していることだが、これは時間とともに解決される問題である
JVMとの比較
- WASM は JVM と似た「一度書けばどこでも実行」の概念を提供するが、JVM は Web ブラウザでは実行されない
- Web ブラウザは重要なアプリケーション配布先であり、そのため多くの開発者が JVM を避けるようになっている
- 最近では、GraalVM、Kotlin Native、Scala Native などの静的バイナリコンパイラが JVM の代替として台頭している
マイクロサービス(Microservices)
- マイクロサービスアーキテクチャでは、HTTP、RPC、またはメッセージブローカーを使ってサービスを接続する
- ネットワーク通信のコストと信頼性の問題は主な欠点だが、ほとんどの企業は利点のほうが大きいと判断している
- AWS Lambda のようなサーバーレスプラットフォームの登場により、マイクロサービスは個々の関数単位でデプロイできるようになった
- Cloudflare Workers は V8 サンドボックス内で動作し、ネットワークリクエストなしで同一ランタイム内の関数呼び出しが可能である
- これは、マイクロサービスの開発上の利点とモノリシックアーキテクチャのランタイム性能を同時に提供する
- Wasmer など他の企業も WASM ベースのソリューションを開発中である
WASMの導入(Adoption)
- WASM はまだ初期段階の技術だが急速に進化しており、サポートも増加傾向にある
- 現時点ではあらゆる環境で完全に動作するわけではないが、Cloudflare のようなプラットフォームを通じて未来を先取りして体験できる
- Python、Ruby、PHP のような動的言語の利用者であれば、WASM の進化を待ちながら Go や Rust のようなコンパイル言語も追加で学んでおくと有利である
8件のコメント
K8sはコンテナをオーケストレーションするためのツールですが、wasmのせいで実効性は薄れるのでしょうか? Dockerならある程度は食われるでしょうが……
WASM は新しい3Dプリンターみたいですね。「新しい世界が来る」と言われるけど、実際に使っている人はあまりいない…
ここに実装事例のまとめがあります。
(個人的には)主にCADや画像処理のような分野がいちばん有望に見えます。
以前、Webで高解像度の医療画像を実装することについて悩んでいたソリューション開発チームのことをふと思い出しました。
読んでそのまま試してみます。
2030年になっても、k8sは健在であり続けるようです
結局、Docker も WASM も理解しないといけなくなるのでしょうか(笑)。とはいえ、Docker も技術が成熟するにつれて触れやすくなりましたし、WASM も同じように扱いやすい方向に進んでいくのではないかと思います。
結局、wasm ランタイムの性能に乗っかる形になるように見えるので、V8 が JVM と同じ階層になるのではないでしょうか。
V8 のバージョンによって WASM の動作が変わり、それをデバッグする未来が待っているのではないかと心配です。
Hacker Newsの意見