MicroVMs sécurisées et rapides pour l'informatique serverless.
Notre mission est de permettre l'exécution sécurisée, multi-locataire et à faible surcoût de charges de travail conteneurisées et de fonctions.
En savoir plus sur la charte Firecracker ici.
Firecracker est une technologie de virtualisation open source conçue spécifiquement pour créer et gérer des services sécurisés, multi-locataires, basés sur des conteneurs et des fonctions, offrant des modèles opérationnels serverless. Firecracker exécute des charges de travail dans des machines virtuelles légères, appelées microVM, qui combinent les propriétés de sécurité et d'isolation fournies par la technologie de virtualisation matérielle avec la rapidité et la flexibilité des conteneurs.
Le composant principal de Firecracker est un moniteur de machine virtuelle (VMM) qui utilise le Kernel Virtual Machine (KVM) de Linux pour créer et exécuter des microVM. Firecracker a une conception minimaliste. Il exclut les périphériques inutiles et les fonctionnalités orientées invité afin de réduire l'empreinte mémoire et la surface d'attaque de chaque microVM. Cela améliore la sécurité, diminue le temps de démarrage et augmente l'utilisation du matériel. Firecracker a également été intégré dans des environnements d'exécution de conteneurs, par exemple Kata Containers et Flintlock.
Firecracker a été développé chez Amazon Web Services pour accélérer la vitesse et l'efficacité de services comme AWS Lambda et . Firecracker est publié en open source sous .
Pour en savoir plus sur Firecracker, consultez firecracker-microvm.io.
Pour démarrer avec Firecracker, téléchargez les binaires de la dernière version ou compilez-le à partir des sources.
Vous pouvez compiler Firecracker sur tout système Unix/Linux disposant de Docker
(nous utilisons un conteneur de développement) et de bash installé, comme suit :
git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"
Le binaire Firecracker sera placé dans
build/cargo_target/${toolchain}/debug/firecracker. Pour plus d'informations sur
la compilation, les tests et l'exécution de Firecracker, consultez le
guide de démarrage rapide.
La sécurité globale des microVM Firecracker, y compris la capacité à satisfaire aux critères d'un calcul multi-locataire sûr, dépend d'un système d'exploitation hôte Linux bien configuré. Une configuration que nous estimons conforme à cette exigence est incluse dans le document de configuration de l'hôte de production.
Firecracker exécute déjà des charges de travail de production au sein d'AWS, mais nous n'en sommes qu'au premier jour du parcours guidé par notre mission. Il reste encore beaucoup à construire et nous accueillons volontiers toutes les contributions.
Pour contribuer à Firecracker, consultez la section sur la configuration de développement dans le guide de démarrage, puis les directives de contribution de Firecracker.
Les nouvelles versions de Firecracker sont publiées via la page releases du dépôt GitHub, généralement toutes les deux ou trois mois. Un historique des modifications est consigné dans notre journal des modifications.
La politique de publication de Firecracker est détaillée ici.
L'architecture globale de Firecracker est décrite dans le document de conception.
Firecracker se compose d'un unique processus de gestionnaire de micro machine virtuelle qui expose un point de terminaison API à l'hôte une fois démarré. L'API est spécifiée au format OpenAPI. Pour en savoir plus, consultez la documentation de l'API.
Le point de terminaison API peut être utilisé pour :
[BETA] Configurer l'arborescence de données du service de métadonnées
orienté invité. Le service n'est disponible pour l'invité que si cette
ressource est configurée.[Aperçu développeur] Brancher et débrancher à chaud
des périphériques PCI virtio pendant que la VM est en cours d'exécution.Capacités intégrées :
Nous testons toutes les combinaisons de :
| Instance | OS hôte et noyau | Rootfs invité | Noyau invité |
|---|---|---|---|
| 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) |
* : Nous prenons en charge uniquement les instances AWS EC2 Intel de 8e génération (*8i) avec un noyau hôte 6.1 ou 6.18. Cela est dû à une prise en charge insuffisante du noyau pour les CPU Granite Rapids sur 5.10.
pl031 sur aarch64 ne prend pas en charge les
interruptions, de sorte que les programmes invités qui utilisent une alarme
RTC (par exemple hwclock) ne fonctionneront pas.Les caractéristiques de performance de Firecracker sont répertoriées dans la documentation de spécification. Toutes les spécifications font partie de notre engagement à prendre en charge les charges de travail de conteneurs et de fonctions dans des modèles opérationnels serverless, et sont donc appliquées via des tests d'intégration continue.
La sécurité de Firecracker est notre priorité absolue. Si vous pensez avoir découvert une vulnérabilité, contactez-nous en privé, comme indiqué dans notre document de politique de sécurité ; nous traiterons votre divulgation en priorité immédiate.
Les questions fréquemment posées sont rassemblées dans notre document FAQ.
Vous pouvez contacter la communauté Firecracker de la manière suivante :
Lorsque vous communiquez au sein de la communauté Firecracker, veuillez respecter notre code de conduite.