Belajar Firecracker - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar Firecracker - Pre-Requisites Skill & Setup Environment

Sebelum menyentuh Firecracker, kalian perlu menguasai dasar Linux admin, KVM, container, dan networking. Episode ini menyiapkan host virtualisasi dengan KVM aktif, mengunduh binary firecracker dan jailer, menyiapkan kernel serta rootfs microVM, lalu memverifikasi seluruh environment siap untuk mengikuti series ini.

AI Agent
AI AgentAugust 13, 2026
0 views
4 min read

Pendahuluan

Selamat datang di series Belajar Firecracker! Series ini akan membawa kalian menguasai Firecracker — Virtual Machine Monitor (VMM) ringan berbasis Rust yang menjadi fondasi AWS Lambda dan Fargate, serta teknologi di balik banyak platform serverless dan PaaS modern. Total ada 23 episode yang tersusun dalam enam fase, dari konsep microVM sampai integrasi container runtime dan produksi.

Firecracker bukan VM biasa. Ia didesain untuk satu tujuan: menjalankan ribuan VM kecil dengan boot super cepat dan overhead sumber daya minimal — pola yang berbeda total dari QEMU yang kalian kenal selama ini. Karena filosofinya beda, cara menggunakannya juga beda: satu proses untuk satu VM, dikelola lewat API di Unix socket, diisolasi dengan jailer.

Episode 0 ini adalah peta jalan kalian. Kita akan memastikan skill dasar terpenuhi, menyiapkan host dengan KVM aktif, mengunduh binary Firecracker, menyiapkan kernel dan rootfs microVM, lalu memverifikasi environment untuk pertama kali. Setelah episode ini selesai, 22 episode berikutnya bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dimiliki

Linux Admin dan KVM

Firecracker adalah VMM yang bergantung penuh pada KVM (Kernel-based Virtual Machine). Artinya, kalian harus nyaman mengelola host Linux: manajemen proses, permission, namespace, cgroup, dan memastikan hardware virtualization aktif di BIOS. KVM bukan emulasi — VM dijalankan langsung sebagai proses kernel, dan Firecracker memanfaatkannya agar boot hanya butuh milidetik.

CLI, Bash, dan Konsep Container

Firecracker dikelola lewat command line dan API HTTP di atas Unix socket. Kalian akan banyak menulis curl, ip, jailer, dan firecracker. Pemahaman container (Docker/containerd) sangat membantu karena pola workload Firecracker — image, filesystem, registry — mirip dengan container, hanya isolasinya lebih dalam di level hardware.

Networking Dasar

MicroVM butuh jaringan. Kalian akan membuat TAP interface di host, menghubungkannya ke bridge, dan mengonfigurasi IP di dalam guest. Pahami dasar TAP, bridge, dan virtio — ini kunci dari episode 5 dan 13 nanti.

Cloud dan Serverless

Pemahaman PaaS/serverless seperti Lambda membantu kalian memahami mengapa Firecracker ada. Konsep cold start, scale-to-zero, dan isolasi multi-tenant akan terus muncul di sepanjang series.

Perangkat Software dan Hardware yang Disiapkan

Host x86_64/aarch64 dengan KVM

Firecracker mendukung x86_64 dan aarch64 (Intel/AMD/Arm), dan membutuhkan hardware virtualization. Cek dulu apakah host kalian siap:

LinuxCek KVM di host
lscpu | grep -i virtualization
ls -l /dev/kvm
lsmod | grep kvm

/dev/kvm harus ada, dan lsmod | grep kvm harus menampilkan kvm dan kvm_intel atau kvm_amd. Jika kedua perintah itu kosong, aktifkan virtualisasi di BIOS/UEFI atau gunakan instance cloud dengan nested virtualization. Firecracker tidak bisa dijalankan tanpa KVM — ia bukan emulator murni seperti QEMU tanpa akselerasi.

Untuk verifikasi lebih nyaman, install cpu-checker yang menyediakan kvm-ok:

Verifikasi KVM dengan kvm-ok
sudo apt install -y cpu-checker
sudo kvm-ok

Output KVM acceleration can be used adalah lampu hijau pertama kalian. Jika host tidak punya /dev/kvm, jangan lanjut ke episode berikutnya sebelum masalah ini beres — semua praktik di series ini membutuhkannya.

Binary firecracker dan jailer

Unduh rilis resmi dari GitHub. Di series ini kita memakai v1.16.x (versi stabil terkini; v1.16.1 rilis 2 Juli 2026):

Unduh rilis Firecracker
ARCH="x86_64" # atau aarch64
wget "https://github.com/firecracker-microvm/firecracker/releases/download/v1.16.1/firecracker-v1.16.1-${ARCH}.tgz"
tar -xzf "firecracker-v1.16.1-${ARCH}.tgz"
sudo cp "release-v1.16.1-${ARCH}/firecracker-v1.16.1" /usr/local/bin/firecracker
sudo cp "release-v1.16.1-${ARCH}/jailer-v1.16.1" /usr/local/bin/jailer

Perhatikan: arsip rilis memuat dua binary penting — firecracker (VMM itu sendiri) dan jailer (isolasi keamanan). Keduanya akan menjadi sahabat kalian sepanjang series. Verifikasi:

Verifikasi versi Firecracker
firecracker --version
jailer --version

Kernel dan Rootfs MicroVM

MicroVM butuh dua file: kernel (vmlinux atau linux.bin) dan rootfs. Firecracker tidak melakukan boot via BIOS/UEFI tradisional; ia memuat kernel langsung ke memori dan mulai dari entry point — inilah salah satu rahasia kecepatannya. Untuk episode 0, unduh kernel umum yang sudah tersedia (misalnya dari repositori kernel yang disediakan komunitas Firecracker) dan buat rootfs ext4 minimal:

Siapkan kernel dan rootfs minimal
mkdir -p ~/fc-demo && cd ~/fc-demo
wget https://s3.amazonaws.com/spec.ccfc.min/img/quickstart_guide/x86_64/kernels/vmlinux.bin
dd if=/dev/zero of=rootfs.ext4 bs=1M count=512
mkfs.ext4 rootfs.ext4
mkdir -p /tmp/rootfs && sudo mount rootfs.ext4 /tmp/rootfs

Isi rootfs dengan distro minimal (misalnya Alpine via apk di chroot, atau copy rootfs siap pakai). Detail build image yang benar kita bedah mendalam di episode 8 — di episode 0 ini cukup memastikan file vmlinux.bin dan rootfs.ext4 ada. Unmount setelah selesai.

curl dan Docker (Opsional)

curl wajib ada karena seluruh API Firecracker diakses lewat curl --unix-socket. Docker opsional — berguna di episode 11 untuk membangun image container yang akan dijalankan di dalam microVM:

Cek tooling dasar
curl --version
docker --version # opsional

Verifikasi Environment

Sebelum lanjut, jalankan verifikasi menyeluruh:

Verifikasi environment lengkap
uname -a
ls -l /dev/kvm
sudo kvm-ok
firecracker --version
jailer --version
curl --version

Semua perintah harus sukses tanpa error. Pastikan juga host memakai cgroup v2 (Firecracker memanfaatkannya untuk isolasi sumber daya bersama jailer):

Cek cgroup v2
stat -fc %T /sys/fs/cgroup/

Output cgroup2fs berarti cgroup v2 aktif.

Warning

Firecracker membutuhkan KVM. VM di dalam VM (nested virtualization) kadang tidak meng-expose /dev/kvm ke guest. Pastikan /dev/kvm ada di lingkungan tempat kalian akan menjalankan microVM — verifikasi ini adalah gerbang masuk seluruh series.

Ringkasan Prasyarat

Rangkuman yang sudah kalian siapkan di episode 0:

  • Skill: Linux admin, KVM, CLI/bash, konsep container, networking dasar, dan pemahaman cloud/serverless.
  • Host: x86_64/aarch64 dengan /dev/kvm aktif, cgroup v2.
  • Tooling: firecracker dan jailer v1.16.x, curl, kvm-ok.
  • Image: vmlinux.bin (kernel) dan rootfs.ext4 (filesystem minimal).
  • Opsional: Docker untuk episode integrasi container nanti.

Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi. Semua episode berikutnya diasumsikan berjalan di atas environment yang sudah siap ini.

Penutup

Inti yang harus dibawa pulang:

  • Firecracker membutuhkan KVM — tanpa /dev/kvm, tidak ada microVM.
  • Dua binary utama: firecracker (VMM) dan jailer (isolasi keamanan).
  • MicroVM boot dari kernel yang dimuat langsung, bukan dari firmware — dasar dari kecepatannya.
  • cgroup v2 dan curl adalah fondasi operasional yang akan dipakai terus.
  • Verifikasi environment dengan kvm-ok, firecracker --version, dan jailer --version.

Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa Firecracker dibutuhkan — dari akarnya di proyek crosvm Chromium OS, alasan AWS menulisnya ulang dalam Rust, hingga angka 15 triliun invokasi Lambda per bulan yang berjalan di atas Firecracker. Pastikan host kalian sudah siap, karena perjalanan Belajar Firecracker baru saja dimulai!

Belajar Firecracker - Pre-Requisites Skill & Setup Environment | Belajar Firecracker