WebAssembly auf dem Server: Hype oder Zukunft?
Wasm ist aus dem Browser entkommen. Ist es der nächste Container?
Wasm ist aus dem Browser entkommen. Ist es der nächste Container?

Im Jahr 2019 veröffentlichte Docker-Mitbegründer Solomon Hykes etwas, das seitdem zitiert wird: Wenn WebAssembly und WASI 2008 existiert hätten, hätten sie Docker nicht erstellen müssen. Das ist ein großer Anspruch. Einige Jahre später, wo steht Server-seitige WebAssembly eigentlich?
WebAssembly (Wasm) Begonnen als eine Möglichkeit, schneller, kompilierten Code in Webbrowsern zu laufen: Spiele, Video-Editoren, Design-Tools. Es ist ein kompaktes Binärformat, in das viele Sprachen (Rust, C/C++, Go, C#, Zig und andere) kompilieren können, und das in einer Sandbox-Virtuellen Maschine ausgeführt wird.
Die Eigenschaften, die es in Browsern großartig machen, sind auch auf Servern interessant:
Um außerhalb des Browsers zu arbeiten, braucht Wasm eine Möglichkeit, mit dem System zu sprechen: Dateien, Uhren, Steckdosen. Das ist... WASI (WebAssembly System Interface) WASI 0, 2 Die Modell der Komponente, mit dem Wasm-Komponenten, die in verschiedenen Sprachen geschrieben sind, über gut definierte Schnittstellen zusammenarbeiten können. Weitere Versionen fügen Async-Unterstützung und mehr hinzu.
Container packen ein Betriebssystem um Ihre App. Wasm packt nur deine App ein und bittet um Erlaubnis für alles andere.
Wasm muss nicht deine Plattform ersetzen. Es kann neben Containern laufen:
RuntimeClass- Ich weiß . Eine Kapsel kann ein Wasm-Modul anstelle eines Container-Bildes ausführen.apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: wasmtime-spin
handler: spin
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-wasm
spec:
replicas: 3
selector:
matchLabels: { app: hello-wasm }
template:
metadata:
labels: { app: hello-wasm }
spec:
runtimeClassName: wasmtime-spin
containers:
- name: hello
image: ghcr.io/acme/hello-wasm:1.0.0
command: ["/"]
Wasm wird bereits an Orten produziert , die man vielleicht nicht bemerkt:
Beides, ehrlich gesagt. Wasm wird die Container für die meisten Arbeitslasten nicht bald ersetzen. Container haben ein riesiges Problem gelöst und sie sind überall. Wasm ist die Zukunft für bestimmte Bereiche: Edge, Plugins, serverlose Dichte und sichere Ausführung von nicht vertrauenswürdigem Code. Diese Bereiche wachsen.
Für DevOps-Ingenieure lohnt es sich jetzt zu verstehen: wie es auf Kubernetes läuft, wie es in OCI-Registern verpackt ist und wo es in Ihrem Stack erscheinen könnte.
Wasm ist nicht der nächste Container. Das ist das, was man greifen kann, wenn ein Container zu schwer, zu langsam oder zu vertrauensvoll ist.
Desly