Episode ini membandingkan backend VMM Kata Containers: QEMU sebagai default dengan kompatibilitas luas, Cloud Hypervisor yang modern dan cepat, Firecracker yang minimalis, serta Dragonball yang built-in di runtime Rust. Kalian belajar trade-off fitur versus kecepatan dan kapan memilih masing-masing backend.

Di episode 5 kalian melihat bahwa configuration.toml memiliki bagian per hypervisor. Episode 6 menjawab pertanyaan yang mengikutinya: backend mana yang harus dipakai? Kata Containers tidak terikat satu VMM — ia dirancang sebagai runtime yang memakai VMM sebagai plugin. Pilihan VMM menentukan karakter microVM kalian: seberapa cepat boot, fitur apa yang tersedia, dan seberapa besar overhead yang harus dibayar.
Ini bukan keputusan "sekali pilih, selamanya". RuntimeClass (episode 4) memungkinkan kalian menjalankan backend berbeda untuk workload berbeda dalam satu cluster. Memahami trade-offnya akan membuat kalian memilih dengan alasan, bukan kebetulan.
QEMU adalah VMM paling tua dan paling lengkap yang didukung Kata. Ia adalah default untuk RuntimeClass kata — pilihan yang paling aman untuk memulai karena kompatibilitasnya paling luas. QEMU mendukung berbagai perangkat, arsitektur, dan fitur yang belum tentu ada di VMM lain.
Pilih QEMU ketika kalian butuh fleksibilitas penuh, memakai fitur yang hanya ada di QEMU (seperti confidential containers), atau ketika belum yakin backend mana yang cocok. Untuk uji coba pertama, QEMU adalah jawaban yang benar.
Cloud Hypervisor (dikembangkan komunitas Cloud Hypervisor Project) adalah VMM yang dirancang khusus untuk cloud-native workload. Ia hanya mendukung workload Linux 64-bit modern dengan device virtio — tanpa mengekspos perangkat legacy. RuntimeClass kata-clh menunjuk ke backend ini.
Pilih Cloud Hypervisor untuk workload umum di cluster besar yang mengutamakan kecepatan boot dan overhead rendah, dan ketika kalian tidak membutuhkan fitur eksotis QEMU. Banyak deployment modern memakai kata-clh sebagai default karena keseimbangan fitur-kecepatannya.
Firecracker adalah VMM yang dibuat AWS untuk menopang Lambda dan Fargate. Filosofinya: sesedikit mungkin perangkat, keamanan maksimal. RuntimeClass kata-fc memakai backend ini.
Pilih Firecracker untuk workload sandbox yang paling ringan dan untrusted — misalnya sandbox eksekusi kode tak dikenal (dibahas di episode 19). Jika workload butuh GPU atau device khusus, Firecracker bukan pilihan.
Dragonball adalah VMM yang dibangun langsung di dalam runtime Rust Kata (runtime-rs). Ia adalah in-process VMM — tidak ada binary VMM terpisah seperti QEMU. Ini adalah arah strategis Kata: Rust-first architecture yang dipuncaki Kata 4.0.0.
Pilih Dragonball ketika kalian memakai runtime Rust (runtime-rs) dan menginginkan pengalaman Kata yang paling terintegrasi dan ringan. Ini adalah backend yang paling menarik untuk dipantau — di episode 17 kita akan membahas bagaimana Dragonball menjadi pusat strategi performa Kata 4.0.
Ringkasan praktis untuk pengambilan keputusan:
| Aspek | QEMU | Cloud Hypervisor | Firecracker | Dragonball |
|---|---|---|---|---|
| RuntimeClass | kata | kata-clh | kata-fc | via runtime-rs |
| Boot speed | Sedang | Cepat | Sangat cepat | Cepat |
| Footprint | Besar | Kecil | Sangat kecil | Kecil |
| Fitur perangkat | Terluas | Sedang | Terbatas | Sedang |
| Confidential computing | Ya | Sebagian | Tidak | Tidak |
| Profil cocok | Umum/lengkap | Workload cloud-native | Sandbox ringan | Runtime Rust |
Ingat: tabel ini adalah titik awal. Angka pasti boot time dan overhead sangat bergantung pada kernel, perangkat keras, dan workload. Episode 20 akan menunjukkan cara mengukur sendiri.
Tip
Tidak harus memilih satu backend untuk seluruh cluster. RuntimeClass memungkinkan workload berbeda memakai backend berbeda: kata untuk workload umum, kata-fc untuk sandbox untrusted ringan, dan kata-clh sebagai default yang seimbang.
Untuk melihat backend yang sedang dipakai microVM yang berjalan:
kata-runtime kata-env | grep -i hypervisor
kubectl get pod kata-demo -o jsonpath='{.spec.runtimeClassName}{"\n"}'kata-runtime kata-env | grep -i hypervisor menampilkan hypervisor yang aktif pada node. kubectl get pod ... -o jsonpath='{.spec.runtimeClassName}' menunjukkan RuntimeClass pod — dari sana kalian tahu backend mana yang dipakai.
Inti yang harus dibawa pulang:
kata): default, kompatibilitas terluas, fitur paling lengkap.kata-clh): modern, cepat, seimbang untuk workload umum.kata-fc): minimalis, boot tercepat, untuk sandbox ringan.Di episode 7 selanjutnya kita akan membahas networking — bagaimana Kata terintegrasi dengan CNI, peran virtio-net di dalam guest, opsi plugin bridge/macvlan/host-device, multi-interface, dan opsi eksperimental seperti disableNewNetns. Jaringan adalah bagian yang paling sering membuat bingung saat pindah dari container biasa ke microVM.