
MicroVM sicure e veloci per il computing serverless.
La nostra missione è abilitare l'esecuzione sicura, multi-tenant e con overhead minimo di carichi di lavoro container e funzioni.
Leggi di più sulla Carta di Firecracker qui.
Firecracker è una tecnologia di virtualizzazione open source progettata specificamente per creare e gestire servizi sicuri multi-tenant basati su container e funzioni che offrono modelli operativi serverless. Firecracker esegue carichi di lavoro in macchine virtuali leggere, chiamate microVM, che combinano le proprietà di sicurezza e isolamento fornite dalla tecnologia di virtualizzazione hardware con la velocità e la flessibilità dei container.
Il componente principale di Firecracker è un monitor di macchine virtuali (VMM) che utilizza la Linux Kernel Virtual Machine (KVM) per creare ed eseguire microVM. Firecracker ha un design minimalista. Esclude dispositivi non necessari e funzionalità rivolte al guest per ridurre l'impronta di memoria e la superficie di attacco di ogni microVM. Ciò migliora la sicurezza, riduce il tempo di avvio e aumenta l'utilizzo dell'hardware. Firecracker è stato inoltre integrato in runtime di container, ad esempio Kata Containers e Flintlock.
Firecracker è stato sviluppato presso Amazon Web Services per accelerare la velocità e l'efficienza di servizi come AWS Lambda e AWS Fargate. Firecracker è rilasciato come open source sotto Apache versione 2.0.
Per saperne di più su Firecracker, visita firecracker-microvm.io.
Per iniziare con Firecracker, scarica gli ultimi binari della release o compilalo dal sorgente.
Puoi compilare Firecracker su qualsiasi sistema Unix/Linux con Docker in esecuzione (usiamo un container di sviluppo) e bash installato, come segue:
git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"
Il binario di Firecracker sarà posizionato in build/cargo_target/${toolchain}/debug/firecracker. Per maggiori informazioni su compilazione, test ed esecuzione di Firecracker, consulta la guida rapida.
La sicurezza complessiva delle microVM di Firecracker, inclusa la capacità di soddisfare i criteri per il calcolo multi-tenant sicuro, dipende da un sistema operativo host Linux ben configurato. Una configurazione che riteniamo soddisfi questo requisito è inclusa nel documento di configurazione dell'host di produzione.
Firecracker sta già eseguendo carichi di lavoro in produzione all'interno di AWS, ma è ancora all'inizio del percorso guidato dalla nostra missione. C'è molto altro da costruire e accogliamo con piacere tutti i contributi.
Per contribuire a Firecracker, consulta la sezione sulla configurazione di sviluppo nella guida per iniziare e poi le linee guida per i contributi di Firecracker.
Le nuove versioni di Firecracker vengono rilasciate tramite la pagina releases del repository GitHub, tipicamente ogni due o tre mesi. Una cronologia delle modifiche è registrata nel nostro changelog.
La politica di rilascio di Firecracker è descritta in dettaglio qui.
L'architettura generale di Firecracker è descritta nel documento di design.
Firecracker consiste in un singolo processo micro Virtual Machine Manager che espone un endpoint API all'host una volta avviato. L'API è specificata in formato OpenAPI. Leggi di più nella documentazione API.
L'endpoint API può essere utilizzato per:
[BETA] Configurare l'albero dati del servizio di metadata rivolto al guest. Il servizio è disponibile per il guest solo se questa risorsa è configurata.[Developer Preview] Hot-plug e hot-unplug di dispositivi PCI virtio mentre la VM è in esecuzione.Capacità integrate:
Testiamo tutte le combinazioni di:
*: Supportiamo solo le istanze AWS EC2 Intel di 8ª generazione (*8i) con kernel host 6.1 o 6.18. Questo è dovuto allo scarso supporto del kernel per le CPU Granite Rapids su 5.10.
pl031 su aarch64 non supporta gli interrupt, quindi i programmi guest che utilizzano un allarme RTC (ad es. hwclock) non funzioneranno.Le caratteristiche prestazionali di Firecracker sono elencate nella documentazione delle specifiche. Tutte le specifiche fanno parte del nostro impegno a supportare carichi di lavoro container e funzioni in modelli operativi serverless e sono pertanto applicate tramite test di integrazione continua.
La sicurezza di Firecracker è la nostra priorità assoluta. Se sospetti di aver scoperto una vulnerabilità, contattaci in privato, come indicato nel nostro documento sulla policy di sicurezza; daremo immediatamente priorità alla tua segnalazione.
Le domande frequenti sono raccolte nel nostro documento FAQ.
Puoi metterti in contatto con la community di Firecracker nei seguenti modi:
Quando comunichi all'interno della community di Firecracker, ti preghiamo di rispettare il nostro codice di condotta.
| Istanza | SO host e kernel | Rootfs del guest | Kernel del guest |
|---|
| 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) |