Firecracker ist ein quelloffener Virtual Machine Monitor (VMM) in Rust, den AWS 2018 entwickelt und unter der Apache-2.0-Lizenz veröffentlicht hat. Er erzeugt extrem schlanke MicroVMs auf Basis von KVM und treibt damit Serverless-Dienste wie AWS Lambda und AWS Fargate an.
Die Idee
Firecracker besetzt eine Nische zwischen Container und klassischer VM: Es kombiniert die Isolation einer VM (eigener Kernel, Hardware-Grenzen) mit der Startgeschwindigkeit und Dichte eines Containers. Konkret nennt AWS zwei Kennzahlen:
- Bootzeit unter 125 Millisekunden.
- Speicher-Overhead von weniger als 5 MiB pro MicroVM.
Dadurch lassen sich tausende MicroVMs auf einem einzigen Host betreiben — ideal für mehrinstanzfähige (Multi-Tenant) Serverless-Plattformen.
Technik und Sicherheit
- Minimalismus: Firecracker besteht aus einem einzigen VMM-Prozess, der über eine schlanke REST-API gesteuert wird. Es gibt keine unnötigen Geräte-Emulationen wie in QEMU.
- Sicherheit: Der Jailer kapselt den Prozess in cgroups und Namespaces und entzieht Privilegien; zusätzlich greifen seccomp-Filter, die Syscalls auf das Nötigste begrenzen.
- Rate Limiter: Netzwerk- und Block-I/O lassen sich pro MicroVM drosseln, damit ein Mandant die Nachbarn nicht beeinträchtigt.
- Snapshot/Restore: MicroVMs lassen sich einfrieren und schnell klonen — Grundlage für Warm-Pools und schnelle Skalierung.
Einordnung
Firecracker ist kein Ersatz für Docker oder Kubernetes, sondern eine unterliegende Technik: Container-Plattformen wie Kata Containers können Firecracker als Hypervisor nutzen, und AWS zieht Firecracker für Lambda- und Fargate-Ausführungsumgebungen heran. Wer einzelne VMs mit voller Geräte-Kompatibilität braucht, greift weiter zu QEMU/KVM; wer maximale Dichte und schnelle Starts will, zu Firecracker.
Mehr dazu: Sandbox, Virtualisierung, Hypervisor, gVisor.