21 ポイント 投稿者 GN⁺ 2025-02-13 | 8件のコメント | WhatsAppで共有

"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件のコメント

 
bus710 2025-02-14

K8sはコンテナをオーケストレーションするためのツールですが、wasmのせいで実効性は薄れるのでしょうか? Dockerならある程度は食われるでしょうが……

 
colus001 2025-02-14

WASM は新しい3Dプリンターみたいですね。「新しい世界が来る」と言われるけど、実際に使っている人はあまりいない…

 
halfenif 2025-02-14

https://madewithwebassembly.com/

ここに実装事例のまとめがあります。

(個人的には)主にCADや画像処理のような分野がいちばん有望に見えます。

以前、Webで高解像度の医療画像を実装することについて悩んでいたソリューション開発チームのことをふと思い出しました。

 
halfenif 2025-02-14

例で学ぶWASM
https://ja.news.hada.io/topic?id=11891

読んでそのまま試してみます。

 
jujumilk3 2025-02-14

2030年になっても、k8sは健在であり続けるようです

 
yangeok 2025-02-14

結局、Docker も WASM も理解しないといけなくなるのでしょうか(笑)。とはいえ、Docker も技術が成熟するにつれて触れやすくなりましたし、WASM も同じように扱いやすい方向に進んでいくのではないかと思います。

 
clickin 2025-02-13

結局、wasm ランタイムの性能に乗っかる形になるように見えるので、V8 が JVM と同じ階層になるのではないでしょうか。
V8 のバージョンによって WASM の動作が変わり、それをデバッグする未来が待っているのではないかと心配です。

 
GN⁺ 2025-02-13
Hacker Newsの意見
  • より広い採用を妨げている主な要因は、システムインターフェースの不足である。ファイルアクセスやネットワーキングなどは、時間とともに統合されていくだろう
    • しかし、ファイルアクセスやネットワーキングなどを追加すると、セキュリティ上の脆弱性が生まれる可能性がある。これは Java の「Write once, run anywhere」という約束を損なった要因でもある
    • WASM はコンテナとは異なる問題を解決する。WASM はサンドボックス化されたコード実行に効率的である
    • WASM は Functions-as-a-Service 実装などで標準になる可能性が高い
    • コンテナはその問題を解決できない。セキュリティ境界としては適しておらず、WASM バイナリより重く、起動コストも大きい
    • コンテナは、複数のプロセスやスレッドを実行し、OS の基本機能を使うのに適している
  • WebAssembly は真の「Write once, run anywhere」体験を提供する
    • しかし、外部と相互作用すると話は変わってくる。各 V8 ランタイムは微妙に異なるインターフェースを持っている
    • Docker の成功は、POSIX がすでに確立された標準だったためである
  • PlatformOps(以前の DevOps、SRE、Ops)は、複雑なツールとプログラム・コンテナ・Linux の密結合によって、その約束が損なわれている
    • 開発者はコードを書き、機能をデプロイしたい
    • PlatformOps はその問題を解決しようと苦闘している
  • WASM はコンテナを置き換えるソリューションではない。コンテナは、PHP の異なるバージョンを競合なく実行する問題を解決する
    • WASM ではその問題は解決できない
  • WASM の未来はいつ来るのか。8年が経っても、安定して使いやすいツールチェーンがない
    • Rust は 2012 年に公開され、8 年後には安定していた
  • WASM は実際のハードウェア上で実行されるわけではない。仮想マシンと見なすことができる
    • コンテナは、実際のハードウェア上で直接実行されるアプリケーションをパッケージ化する
    • WASM にはランタイムが必要である。アプリケーション内で実行される
    • WASM は、JVM や .NET が解決する「移植性」の問題を解決する
    • コンテナはアプリケーションと依存関係を束ねてパッケージ化する
    • これらの技術は相互補完的であり得る
  • Docker の使い方を学ぶことは妨げにはならない
    • Dockerfile さえあればよい
    • WASM アプリでも依然として Kubernetes が必要である
    • WebAssembly は今後 5 年で大きく成長することはないだろう
  • WASM はもう1つの抽象化レイヤーである。すべてを置き換えるかどうかは、他のソリューションとのトレードオフ次第である