Hyperlight WASM: schnell, sicher und OS-frei
(opensource.microsoft.com)- Hyperlight Wasm ist die neueste Erweiterung von Hyperlight, der von Microsoft an die CNCF gespendeten ultraleichten Virtual-Machine-(VM)-Technologie, und führt WebAssembly-Workloads (auf Basis des Component Model) schnell und sicher aus
- Anders als herkömmliche VMs werden ohne OS oder virtuelle Geräte nur Memory-Slices und CPU exponiert, was schnelle Startzeiten von 1–2 ms ermöglicht
- In verschiedenen Sprachen (C, Rust, Go, Python, JS usw.) geschriebene Wasm-Komponenten können unter Hypervisor-Schutz ausgeführt werden
Hauptmerkmale von Hyperlight Wasm
-
Schnellere Performance als herkömmliche VMs
- Herkömmliche VM: Geräteinitialisierung → Kernel laden → OS booten → Anwendung ausführen (ca. 125 ms)
- Hyperlight Wasm: Ausführung nur mit Erzeugen eines Memory-Slices + Laden von Wasm möglich (1–2 ms, künftig Ziel: <1 ms)
- Die schnelle Ausführung ist vorteilhaft für On-Demand-Serverless-Ausführung oder minimal konfigurierte Warm Pools
-
Verschiedene Sprachen auch ohne Betriebssystem ausführen
- Auf Basis des Standards WASI und des WebAssembly Component Model können in den meisten Sprachen geschriebene Komponenten ausgeführt werden
- Mit integrierter wasmtime-Runtime können auch Interpretersprachen wie Python, JavaScript und C# samt Runtime ausgeführt werden
- Aus Entwicklersicht reicht es, einfach für das Target
wasm32-wasip2zu kompilieren, um in Hyperlight zu laufen
-
Verbesserte Sicherheit (doppelte Sandbox)
- Doppelte Schutzstruktur aus Wasm-Sandbox + Hypervisor-basierter VM-Sandbox
- Selbst wenn ein Angreifer aus Wasm ausbricht, muss zusätzlich noch die VM-Sandbox umgangen werden
Entwicklungsbeispiel: Ausführen eines UDP-Echo-Servers auf Rust-Basis
- Download und Kompilierung des Wasm-Binärprogramms mit der
wkg-CLI - Umwandlung der WASI-Interface-Definitionsdatei (
.wit) in Binärdateien zur Erzeugung von Bindings - Mit
hyperlight_component_macroundhost_bindgen!werden Bindings für die Import-/Export-Schnittstellen von Wasm automatisch erzeugt - Die Echo-Server-Logik wird durch Implementierung der
UdpSocket-Schnittstelle definiert - Erzeugen der
hyperlight-wasm-Sandbox zum Laden und Ausführen der Wasm-Komponente -
Ahead-of-Time-Kompilierung
- Mit dem Tool
hyperlight-wasm-aotwird Wasm AOT-kompiliert, um die Laufzeit zu verkürzen - Der Server kann mit
cargo rungestartet und pernc -uals UDP-Test geprüft werden
- Mit dem Tool
Skalierbarkeit und weitere Pläne
- Hyperlight Wasm soll nicht nur x86, sondern auch die Arm64-Architektur unterstützen
- Derzeit müssen WASI-Schnittstellen noch direkt implementiert werden, künftig sollen jedoch Standard-Bindings bereitgestellt werden
- Geplant ist, einfache Dienste wie HTTP-Server schnell sandboxen zu können
Hinweise zur Beteiligung an der Open-Source-Community
- Hyperlight ist ein von Microsoft als Open-Source-Projekt unter der Apache-2.0-Lizenz veröffentlichtes Projekt und im CNCF Sandbox registriert
- Hyperlight Wasm zielt darauf ab, eine schnelle und sichere Laufzeitumgebung zu bieten, die sich für Cloud-native Computing eignet
- Über das GitHub-Repository können Code eingesehen und Beiträge geleistet werden
👉 GitHub-Repository: hyperlight-wasm
2 Kommentare
Hyperlight – leichter Virtual Machine Manager (VMM) | GeekNews
Hacker-News-Kommentare
Ich habe vor ein paar Monaten angefangen, WebAssembly ernsthaft zu nutzen, um eine Backend-Authentifizierungsbibliothek zu bauen, die in mehreren Sprachen funktioniert
Vor ein paar Monaten haben wir Hyperlight angekündigt, ein leichtgewichtiges VMM
Ich bin sehr gespannt
Sieht interessant aus
Cool
Bei all diesen coolen und interessanten Projekten wirkt es so, als sei WASM überall außer im Browser erfolgreich
Hat jemand eine Idee, wie man das in ein Proxmox-Setup integrieren könnte?
Wie werden Instanzen gestartet und verwaltet?
Im Grunde gibt es eine VM (Wasm), um Programme in einer Hardware-VM zu sandboxen, die wiederum eine Abstraktion ist, um Programme in einem User-Space-Prozess (Linux-Prozess) zu isolieren
Ist das ein Unikernel/ein Library-OS?