Firecracker: Lightweight Virtualization for Serverless Applications
Metadane
- Autorzy: Alexandru Agache, Marc Brooker, Alexandra Iordache, Anthony Liguori, Rolf Neugebauer, Phil Piwonka, Diana-Maria Popa (Amazon Web Services)
- Rok: 2020
- Źródło: 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 2020), pp. 419–434
- DOI/Link: https://www.usenix.org/conference/nsdi20/presentation/agache
- Status: reference
- Cytowania: ~600+
- Tagi:
#reference#serverless#virtualization#microvm#isolation#cold-start
Streszczenie
Firecracker to lekka wirtualizacja KVM zaprojektowana specjalnie dla środowisk serverless (AWS Lambda, AWS Fargate). Autorzy opisują projekt, implementację i ewaluację systemu MicroVM, który łączy bezpieczeństwo pełnej wirtualizacji z wydajnością zbliżoną do kontenerów.
Kluczowe właściwości: stripped Linux kernel (ok. 5MB pamięci per MicroVM), cold start poniżej 125ms, możliwość uruchamiania 150 MicroVMs na sekundę na jednym hoście. Architektura wykorzystuje KVM jako hypervisor z minimalnym VMM (Virtual Machine Monitor) napisanym w Rust.
Kluczowe Wnioski
- Cold start: < 125ms (boot MicroVM + uruchomienie procesu)
- Overhead pamięci: ~5MB per MicroVM (vs ~20-50MB Docker)
- Throughput: 150 MicroVMs/s na jednym hoście
- Model bezpieczeństwa: pełna izolacja KVM — silniejsza niż kontenery (seccomp+namespaces)
- Architektura: minimal VMM w Rust + stripped Linux 4.14 kernel
- Produkcyjnie używany dla AWS Lambda (od 2018) i AWS Fargate
Metodologia
Ewaluacja na AWS infrastrukturze z i3.metal (bare metal KVM). Pomiary: cold start latency, pamięć per MicroVM, throughput tworzenia MicroVMs, overhead I/O przez virtio. Porównanie z gVisor (OCI-sandbox) i Docker/runc.
Główne Koncepcje
- MicroVM: lekka VM z minimalnym kernelem, uruchamiana przez KVM
- VMM (Virtual Machine Monitor): minimal Rust implementation zamiast QEMU
- jailer: proces izolujący VMM przez seccomp + namespaces (defense in depth)
- Rate limiting: wbudowany w Firecracker dla sieci i storage
Wyniki
Firecracker osiąga cold start < 125ms i overhead 5MB, co jest znaczną poprawą nad Dockerem (50-100ms, 20-50MB) przy zachowaniu pełnej izolacji VM. Umożliwia uruchamianie tysięcy funkcji serverless na jednym hoście.
Luka dla JE
Kluczowy gap badawczy: praca nie mierzy energetycznego kosztu izolacji. Nie wiadomo ile energii zużywa:
- inicjalizacja MicroVM (cold start) vs cold start kontenera vs cold start V8 Isolate
- overhead per-request utrzymania MicroVM vs V8 Isolate vs WASM sandbox
- różnica energetyczna między 150 MicroVMs/s a równoważną liczbą V8 Isolates
To jest podstawa hipotezy H14a w projekcie JE-14.
Powiązane Tematy
- V8 Isolates (Cloudflare Workers) — lżejsza izolacja
- Faasm (Shillaker 2020) — WASM jako alternatywa dla MicroVM
- Sledge (Boucher 2020) — WASM runtime dla edge
Notatki
Publikacja dodana jako referencja. Brak PDF — dostępna przez USENIX Open Access.