Pertanyaan bagus! Saya bekerja di tim ZeroVM dan berharap saya dapat membantu membereskan semuanya!
Apakah ZeroVM menyediakan wadah yang mirip dengan Docker?
Tidak terlalu. Docker menggunakan LXC dan fitur kernel lainnya untuk menyediakan lingkungan berpasir. ZeroVM berjalan sepenuhnya di ruang pengguna dan kotak pasir satu aplikasi.
Secara singkat, ZeroVM bekerja dengan terlebih dahulu memvalidasi aplikasi yang akan dijalankan dan kemudian hanya menjalankannya. Ketika dijalankan, aplikasi pada dasarnya berjalan dengan tidak ada overhead tambahan - tidak ada mesin virtual di belakangnya.
Untuk memvalidasi aplikasi, itu harus dikompilasi silang ke dalam bentuk khusus kode mesin x86. Bentuk khusus ini memiliki properti bagus yang dapat diverifikasi secara statis sebagai "aman". Antara lain, "aman" berarti bahwa kode tidak akan melompat ke alamat di luar segmen memori tertentu yang disediakan oleh ZeroVM. Program ini juga tidak dapat memanggil panggilan sistem normal, hanya dapat memanggil antarmuka syscall yang sangat sempit yang disediakan oleh ZeroVM. Validasi ini diambil dari proyek Native Client Google .
Bagaimana saya menggunakan ZeroVM untuk menjalankan Wordpress? Apa manfaatnya dengan memberikan?
Pada prinsipnya Anda bisa mengkompilasi silang program C yang merupakan penerjemah PHP. ZeroVM kemudian dapat memulai juru bahasa PHP di kotak pasir dan memberinya file PHP yang membentuk WordPress. ZeroVM menyediakan sistem file yang hanya dapat dibaca dalam memori dan ini dapat digunakan untuk membaca basis data SQLite. Itu akan memberi Anda situs WordPress hanya-baca - tidak terlalu menarik :-)
Namun, seperti yang saya lihat, ini bukan kasus penggunaan utama untuk ZerovM. Aplikasi database-berat yang ada perlu ditulis ulang untuk digunakan dengan ZeroVM. ZeroVM lebih dimaksudkan untuk sistem berskala besar di mana Anda ingin memproses banyak item data secara paralel.
Bayangkan Anda memiliki 1.000.000 email yang harus Anda cari. Email disimpan dalam penyimpanan blok seperti OpenStack Swift atau Amazon S3 . Ini berarti bahwa file fisik disimpan di sejumlah server penyimpanan. Secara tradisional, Anda perlu menarik semua email ke sejumlah node komputasi untuk mencari mereka. Dengan ZeroVM dan integrasinya dengan Swift , Anda dapat mengirim kode ke data . Ini dimungkinkan karena kodenya kecil (beberapa megabyte) dibandingkan dengan gambar mesin virtual yang besar, dan karena aman untuk mengeksekusi kode yang tidak terpercaya di kotak pasir ZeroVM.
Jadi ZeroVM dimaksudkan untuk arsitektur yang sangat skalabel di mana setiap permintaan beroperasi pada bagian data yang berbeda.
Untuk situs WordPress, ini bisa berarti bahwa seseorang harus menyimpan setiap posting blog di bagian data yang terpisah dan memiliki instance ZeroVM khusus yang bertanggung jawab untuk setiap posting. Saat ini, sistem file bersifat read-only, tetapi ada rencana untuk membuatnya read-write dan instance ZeroVM yang bertanggung jawab untuk posting blog yang diberikan kemudian dapat menangani hal-hal seperti komentar. Anda akan memerlukan penyeimbang beban di depan yang mampu merutekan lalu lintas dengan tepat. Hasilnya adalah arsitektur yang sangat berbeda dari WordPress saat ini, tetapi lebih scalable. Sebenarnya menerapkan ini saat ini dibiarkan sebagai latihan untuk pembaca.