Sichere und schnelle MicroVMs für serverless Computing.
Unsere Mission ist es, sichere, mandantenfähige Ausführung von Container- und Funktions-Workloads mit minimalem Overhead zu ermöglichen.
Lesen Sie mehr über die Firecracker-Charta hier.
Firecracker ist eine Open-Source-Virtualisierungstechnologie, die speziell für die Erstellung und Verwaltung sicherer, mandantenfähiger Container- und funktionsbasierter Dienste entwickelt wurde, die serverlose Betriebsmodelle bereitstellen. Firecracker führt Workloads in leichtgewichtigen virtuellen Maschinen aus, den sogenannten microVMs, die die Sicherheits- und Isolationseigenschaften der Hardware-Virtualisierungstechnologie mit der Geschwindigkeit und Flexibilität von Containern kombinieren.
Die Hauptkomponente von Firecracker ist ein Virtual Machine Monitor (VMM), der die Linux Kernel Virtual Machine (KVM) nutzt, um microVMs zu erstellen und auszuführen. Firecracker hat ein minimalistisches Design. Es schließt unnötige Geräte und gastorientierte Funktionalität aus, um den Speicherbedarf und die Angriffsfläche jeder microVM zu reduzieren. Dies verbessert die Sicherheit, verkürzt die Startzeit und erhöht die Hardware-Auslastung. Firecracker wurde auch in Container-Runtimes integriert, zum Beispiel Kata Containers und Flintlock.
Firecracker wurde bei Amazon Web Services entwickelt, um die Geschwindigkeit und Effizienz von Diensten wie AWS Lambda und AWS Fargate zu beschleunigen. Firecracker ist unter als Open Source lizenziert.
Um mehr über Firecracker zu erfahren, besuchen Sie firecracker-microvm.io.
Um mit Firecracker zu beginnen, laden Sie die neuesten Release-Binärdateien herunter oder bauen Sie es aus dem Quellcode.
Sie können Firecracker auf jedem Unix/Linux-System bauen, auf dem Docker läuft
(wir verwenden einen Entwicklungscontainer) und bash installiert ist, wie
folgt:
git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"
Die Firecracker-Binärdatei wird unter
build/cargo_target/${toolchain}/debug/firecracker abgelegt. Weitere
Informationen zum Bauen, Testen und Ausführen von Firecracker finden Sie im
Schnellstart-Leitfaden.
Die allgemeine Sicherheit von Firecracker-microVMs, einschließlich der Fähigkeit, die Kriterien für sicheres mandantenfähiges Computing zu erfüllen, hängt von einem gut konfigurierten Linux-Host-Betriebssystem ab. Eine Konfiguration, von der wir glauben, dass sie diese Anforderungen erfüllt, ist im Dokument zur Produktionshost-Einrichtung enthalten.
Firecracker läuft bereits mit Produktions-Workloads innerhalb von AWS, aber es ist immer noch Tag 1 auf dem Weg, der von unserer Mission geleitet wird. Es gibt noch viel zu bauen, und wir begrüßen alle Beiträge.
Um zu Firecracker beizutragen, lesen Sie den Abschnitt zur Entwicklungsumgebung im Schnellstart-Leitfaden und dann die Beitragsrichtlinien von Firecracker.
Neue Firecracker-Versionen werden über die Releases-Seite des GitHub-Repositorys veröffentlicht, in der Regel alle zwei oder drei Monate. Eine Historie der Änderungen ist in unserem Changelog dokumentiert.
Die Firecracker-Release-Richtlinie ist hier detailliert beschrieben.
Die Gesamtarchitektur von Firecracker ist im Designdokument beschrieben.
Firecracker besteht aus einem einzigen Micro-Virtual-Machine-Manager-Prozess, der nach dem Start einen API-Endpunkt für den Host bereitstellt. Die API ist im OpenAPI-Format spezifiziert. Lesen Sie mehr darüber in der API-Dokumentation.
Der API-Endpunkt kann verwendet werden, um:
[BETA] Den Datenbaum des gastorientierten Metadaten-Dienstes zu
konfigurieren. Der Dienst ist für den Gast nur verfügbar, wenn diese Ressource
konfiguriert ist.[Developer Preview] Hot-Plug und Hot-Unplug von
virtio-PCI-Geräten, während die VM läuft.Integrierte Fähigkeiten:
Wir testen alle Kombinationen von:
| Instanz | Host-OS & Kernel | Gast-Rootfs | Gast-Kernel |
|---|---|---|---|
| m5n.metal (Intel Cascade Lake) | al2 linux_5.10 | ubuntu 24.04 | linux_5.10 |
| m6i.metal (Intel Ice Lake) | al2023 linux_6.1 | linux_6.1 | |
| al2023 linux_6.18 | |||
| m7i.metal-24xl (Intel Sapphire Rapids) | |||
| m7i.metal-48xl (Intel Sapphire Rapids) | |||
| m8i.metal-48xl (Intel Granite Rapids)* | |||
| m8i.metal-96xl (Intel Granite Rapids)* | |||
| m6a.metal (AMD Milan) | |||
| m7a.metal-48xl (AMD Genoa) | |||
| m6g.metal (Graviton 2) | |||
| m7g.metal (Graviton 3) | |||
| m8g.metal-24xl (Graviton 4) | |||
| m8g.metal-48xl (Graviton 4) | |||
| m9g.metal-48xl (Graviton 5) |
*: Wir unterstützen nur AWS-EC2-Instanzen der 8. Intel-Generation (*8i) mit einem 6.1- oder 6.18-Host-Kernel. Dies liegt an der schlechten Kernel-Unterstützung für Granite-Rapids-CPUs auf 5.10.
pl031-RTC-Gerät auf aarch64 unterstützt keine Interrupts, daher
funktionieren Gastprogramme, die einen RTC-Alarm verwenden (z. B. hwclock),
nicht.Die Leistungsmerkmale von Firecracker sind Teil der Spezifikationsdokumentation aufgeführt. Alle Spezifikationen sind Teil unseres Engagements für die Unterstützung von Container- und Funktions-Workloads in serverlosen Betriebsmodellen und werden daher durch kontinuierliche Integrationstests durchgesetzt.
Die Sicherheit von Firecracker hat für uns höchste Priorität. Wenn Sie vermuten, eine Schwachstelle entdeckt zu haben, kontaktieren Sie uns privat, wie in unserem Sicherheitsrichtliniendokument beschrieben; wir werden Ihre Meldung sofort priorisieren.
Häufig gestellte Fragen sind in unserem FAQ-Dokument gesammelt.
Sie können mit der Firecracker-Community auf folgende Weise in Kontakt treten:
Wenn Sie innerhalb der Firecracker-Community kommunizieren, beachten Sie bitte unseren Verhaltenskodex.