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.

Elementów w folderze: 0.