9 poin oleh GN⁺ 2025-04-09 | 2 komentar | Bagikan ke WhatsApp
  • Hyperlight Wasm adalah versi perluasan terbaru dari teknologi mesin virtual (VM) ultra-ringan Hyperlight yang disumbangkan Microsoft ke CNCF, dan menjalankan workload WebAssembly (berbasis Component Model) dengan cepat dan aman
  • Berbeda dari VM tradisional, tanpa OS atau perangkat virtual, ia hanya mengekspos slice memori dan CPU, sehingga memberikan waktu boot cepat 1~2ms
  • Komponen wasm yang ditulis dalam berbagai bahasa (C, Rust, Go, Python, JS, dll.) dapat dijalankan di bawah perlindungan hypervisor

Fitur utama Hyperlight Wasm

  • Performa lebih cepat dibanding VM tradisional

    • VM tradisional: inisialisasi perangkat → memuat kernel → boot OS → menjalankan aplikasi (sekitar 125ms)
    • Hyperlight Wasm: dapat dijalankan hanya dengan membuat slice memori + memuat Wasm (1~2ms, target masa depan <1ms)
    • Kecepatan eksekusi tinggi ini menguntungkan untuk eksekusi serverless on-demand atau konfigurasi warm pool minimal
  • Menjalankan berbagai bahasa tanpa sistem operasi

    • Berdasarkan standar WASI dan WebAssembly Component Model, komponen yang ditulis di sebagian besar bahasa dapat dijalankan
    • Dengan runtime wasmtime bawaan, bahasa interpreter seperti Python, JavaScript, dan C# juga dapat dijalankan dalam bentuk yang menyertakan runtime
    • Dari sudut pandang pengembang, cukup kompilasi ke target wasm32-wasip2 agar bisa dijalankan di Hyperlight
  • Keamanan yang ditingkatkan (sandbox ganda)

    • Struktur perlindungan ganda dari sandbox Wasm + sandbox VM berbasis hypervisor
    • Bahkan jika penyerang keluar dari wasm, mereka masih harus melewati sandbox VM tambahan

Contoh pengembangan: Menjalankan server UDP Echo berbasis Rust

  • Mengunduh dan mengompilasi biner wasm dengan CLI wkg
  • Mengubah file definisi antarmuka WASI (.wit) menjadi biner untuk menghasilkan binding
  • Melalui hyperlight_component_macro dan host_bindgen!, binding antarmuka import/export Wasm dibuat secara otomatis
  • Mendefinisikan logika server echo melalui implementasi antarmuka UdpSocket
  • Membuat sandbox hyperlight-wasm untuk memuat dan menjalankan komponen wasm
  • Kompilasi Ahead-of-Time

    • Menggunakan alat hyperlight-wasm-aot untuk melakukan kompilasi AOT pada wasm guna mengurangi waktu eksekusi
    • Server dapat dijalankan dengan cargo run, dan UDP dapat diuji dengan perintah nc -u

Ekstensibilitas dan rencana ke depan

  • Hyperlight Wasm akan mendukung arsitektur Arm64 selain x86
  • Saat ini antarmuka WASI harus diimplementasikan secara langsung, tetapi ke depannya binding bawaan akan disediakan
  • Ada rencana untuk memungkinkan sandboxing cepat bagi layanan sederhana seperti server HTTP

Panduan berpartisipasi di komunitas open source

  • Hyperlight adalah proyek open source Microsoft yang dirilis dengan lisensi Apache 2.0 dan terdaftar di CNCF Sandbox
  • Hyperlight Wasm bertujuan menyediakan lingkungan eksekusi yang cepat dan aman untuk komputasi cloud-native
  • Kode dapat dilihat dan kontribusi dapat dilakukan melalui repositori GitHub

👉 Repositori GitHub: hyperlight-wasm

2 komentar

 
GN⁺ 2025-04-09
Komentar Hacker News
  • Beberapa bulan lalu saya mulai serius menggunakan WebAssembly untuk membuat library autentikasi backend yang berjalan di berbagai bahasa

    • Dibangun di atas Extism untuk mengurangi kompleksitas antarmuka
    • Pengalamannya terasa seperti sihir
    • WASM berada di posisi yang menarik
    • Nilainya sudah terbukti dengan spesifikasi inti yang minimal
    • Sekarang ada dorongan besar untuk mengimplementasikan permukaan API yang lebih luas untuk WASI dan Component Model
    • Banyak orang di komunitas khawatir dengan arah ini
    • Secara pribadi saya berharap WASM tidak menjadi terlalu kompleks hingga mengikuti jejak browser web, yang implementasi dan eksperimennya hanya bisa dilakukan oleh perusahaan teknologi besar
  • Beberapa bulan lalu Hyperlight diumumkan sebagai VMM ringan

    • Dapat membuat VM baru dalam sekitar 1 milidetik
    • Hari ini saya senang mengumumkan tamu Hyperlight Wasm berbasis runtime Wasmtime
    • Ini memungkinkan menjalankan biner Wasm Component di atas antarmuka WASI tanpa OS tamu di dalam VM
    • Postingan ini menjelaskan cara kerjanya dan menerangkannya lewat contoh
  • Sangat antusias

    • Saya berharap WASM/WASI berkembang menjadi impian JVM era 90-an
    • Ini bisa menjadi target pengembangan yang aman memori dan mudah di-port serta diuji di berbagai platform
    • Saya berharap WASM bisa digunakan untuk jauh lebih banyak hal daripada sekadar browser
  • Terlihat menarik

    • Apakah ini semacam kasus penggunaan ketika ingin mengimplementasikan sendiri sesuatu seperti Cloudflare Workers atau Lambda dengan WASM?
  • Keren

    • Saya sedang mencoba memahami nilai tambahnya di sini
    • Apa bedanya dengan menjalankannya lewat wasmtime?
  • Semua proyek keren dan menarik ini membuat saya merasa bahwa WASM berhasil di mana-mana kecuali di browser

    • Mungkin kata Web perlu dihapus dari Web Assembly dan diberi nama lain
  • Adakah ide bagaimana ini bisa dimasukkan ke pengaturan Promox?

    • Pemahaman saya, ini dirancang untuk berjalan di bare metal
    • Agak canggung karena saya tidak punya x86 bare metal cadangan
    • Sepertinya saya hanya perlu menaruhnya di VM dan menerima virtualisasi bertingkat
  • Bagaimana instance dijalankan dan dikelola?

    • Melalui API seperti apa?
    • Apakah bisa diberi kemampuan untuk menjalankan pohon Wasm Components yang terhubung ke biner Wasm Component, mendelegasikan kapabilitas, dan mengelola siklus hidupnya?
  • Pada dasarnya ada VM (wasm) untuk menyandbox program di dalam VM perangkat keras, yang merupakan abstraksi untuk mengisolasi program dari proses ruang pengguna (proses Linux)

    • Apakah pernah terpikir menggunakan proses Unix untuk mengisolasi program?
  • Apakah ini unikernel/library OS?