Learn Firecracker (the microVM for Rust-based serverless, the foundation of AWS Lambda & Fargate) from the basics to production-grade: pre-requisites skill & environment setup, history & background & why you need it, core concepts & main architecture, setup & installation, API management boot & machine config, virtio-net & TAP networking, virtio-block & virtio-fs storage, jailer & security isolation, microVM image build & kernel optimization, snapshot & restore, balloon entropy & resource control, firecracker-containerd container integration, firectl Flintlock & MicroVMs orchestration, network isolation & filtering, security model & hardening, confidential computing & trusted guests, testing & performance benchmark, Firecracker 1.16 & the latest features, serverless & PaaS on top of microVMs, scaling many microVMs per host, observability & troubleshooting, the rust-vmm ecosystem & collaboration, up to the alternative ecosystems & final reflection, with a total of 23 episodes.
Before touching Firecracker, you need to master basic Linux administration, KVM, containers, and networking. This episode prepares a virtualization host with KVM enabled, downloads the firecracker and jailer binaries, prepares the microVM kernel and rootfs, and then verifies that the entire environment is ready for the rest of the series.

This episode traces the origins of Firecracker: its roots in crosvm, AWS's decision to rewrite it in Rust, the one-process-per-microVM philosophy, and the numbers that made it revolutionary — 125 ms boot, under 5 MiB of overhead, and 15 trillion Lambda invocations per month.

This episode dissects the Firecracker architecture: the one-process-per- microVM model, a comparison of Rust VMMs versus QEMU, the virtio device family (net, block, vsock, balloon, entropy), the token bucket rate limiter, the jailer component, API endpoints, and the MMDS metadata service.

This episode walks you through installing Firecracker from scratch: downloading the v1.16.x release binaries, preparing the kernel and rootfs, verifying KVM and cgroup v2, running firecracker --api-sock for the first time, and understanding the difference between --no-api mode and API mode.

This episode covers Firecracker API management over the Unix socket: PUT /boot-source for the kernel, PUT /machine-config for vCPUs and memory, PUT /drives for block devices, and then InstanceStart. You'll also learn how to inspect the microVM through the serial console and understand every important configuration field.

This episode dissects Firecracker networking: creating a TAP interface on the host with ip tuntap, connecting it to the microVM via PUT /network-interfaces, assigning an IP inside the guest, and configuring a token bucket rate limiter for bandwidth and ops per device.

This episode dissects microVM storage: attaching the rootfs and additional disks via PUT /drives, the difference between read-only and read-write drives, sharing host directories to the guest with virtio-fs, and MMDS for distributing metadata such as IPs and credentials to the guest.

This episode covers the jailer — Firecracker's last line of defense. You'll wrap the microVM in namespaces, cgroups, seccomp, a read-only rootfs, and a non-root user, understand the --id, --chroot-base-dir, and --exec-file flags, and apply defense-in-depth if the hypervisor is breached.

This episode dissects building microVM images: creating a minimal rootfs with Alpine/musl, configuring the kernel with the fewest possible drivers, choosing the right boot params, and getting to know tooling such as firectl, firecracker-containerd, NixOS microvm.nix, and mkosi for build automation.

This episode dissects Firecracker snapshot & restore: freezing a running microVM with PUT /snapshot/create, bringing it back to life with PUT /snapshot/load, understanding memory vs diff snapshots, and the instant cold start, scale-to-zero, and suspend/resume patterns used by AWS Lambda MicroVMs.
