
MicroVMs seguros e rápidos para computação serverless.
A nossa missão é permitir a execução segura, multi-inquilino e com sobrecarga mínima de cargas de trabalho de contentores e funções.
Leia mais sobre a Carta do Firecracker aqui.
O Firecracker é uma tecnologia de virtualização de código aberto criada especificamente para criar e gerir serviços seguros, multi-inquilino e baseados em contentores e funções que fornecem modelos operacionais serverless. O Firecracker executa cargas de trabalho em máquinas virtuais leves, chamadas microVMs, que combinam as propriedades de segurança e isolamento fornecidas pela tecnologia de virtualização de hardware com a velocidade e flexibilidade dos contentores.
O principal componente do Firecracker é um monitor de máquina virtual (VMM) que utiliza a Linux Kernel Virtual Machine (KVM) para criar e executar microVMs. O Firecracker tem um design minimalista. Exclui dispositivos desnecessários e funcionalidades orientadas ao convidado para reduzir a pegada de memória e a superfície de ataque de cada microVM. Isto melhora a segurança, diminui o tempo de arranque e aumenta a utilização de hardware. O Firecracker também foi integrado em runtimes de contentores, por exemplo Kata Containers e Flintlock.
O Firecracker foi desenvolvido na Amazon Web Services para acelerar a velocidade e a eficiência de serviços como AWS Lambda e AWS Fargate. O Firecracker é de código aberto sob a Apache versão 2.0.
Para saber mais sobre o Firecracker, consulte firecracker-microvm.io.
Para começar a utilizar o Firecracker, transfira os binários do lançamento mais recente ou compile-o a partir do código-fonte.
Pode compilar o Firecracker em qualquer sistema Unix/Linux que tenha Docker em execução (utilizamos
um contentor de desenvolvimento) e bash instalado, da seguinte forma:
git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"
O binário do Firecracker será colocado em
build/cargo_target/${toolchain}/debug/firecracker. Para mais informações sobre
compilar, testar e executar o Firecracker, consulte o
guia de início rápido.
A segurança geral das microVMs do Firecracker, incluindo a capacidade de cumprir os critérios para computação multi-inquilino segura, depende de um sistema operativo anfitrião Linux bem configurado. Uma configuração que acreditamos atingir este nível está incluída no documento de configuração do anfitrião de produção.
O Firecracker já executa cargas de trabalho de produção na AWS, mas ainda está no Dia 1 da jornada guiada pela nossa missão. Há muito mais para construir e acolhemos todas as contribuições.
Para contribuir com o Firecracker, consulte a secção de configuração de desenvolvimento no guia de início rápido e depois as diretrizes de contribuição do Firecracker.
Novas versões do Firecracker são lançadas através da página de lançamentos do repositório GitHub, normalmente a cada dois ou três meses. Um histórico de alterações é registado no nosso changelog.
A política de lançamentos do Firecracker está detalhada aqui.
A arquitetura geral do Firecracker está descrita no documento de design.
O Firecracker consiste num único processo de micro Virtual Machine Manager que expõe um endpoint de API ao anfitrião após ser iniciado. A API é especificada em formato OpenAPI. Leia mais sobre ela na documentação da API.
O endpoint de API pode ser utilizado para:
[BETA] Configurar a árvore de dados do serviço de metadados orientado ao convidado. O
serviço só está disponível para o convidado se este recurso for configurado.[Developer Preview] Hot-plug e hot-unplug de dispositivos virtio
PCI enquanto a VM está em execução.Capacidades Integradas:
Testamos todas as combinações de:
*: Apenas suportamos instâncias AWS EC2 Intel de 8ª geração (*8i) que utilizam um kernel anfitrião 6.1 ou 6.18. Isto deve-se ao fraco suporte do kernel para CPUs Granite Rapids no 5.10.
pl031 no aarch64 não suporta interrupções, pelo que os programas
convidados que utilizam um alarme RTC (por exemplo, hwclock) não funcionarão.As características de desempenho do Firecracker estão listadas como parte da documentação de especificações. Todas as especificações fazem parte do nosso compromisso de suportar cargas de trabalho de contentores e funções em modelos operacionais serverless e são, por isso, aplicadas através de testes de integração contínua.
A segurança do Firecracker é a nossa principal prioridade. Se suspeitar que descobriu uma vulnerabilidade, contacte-nos em privado, conforme descrito no nosso documento de política de segurança; iremos priorizar imediatamente a sua divulgação.
As perguntas frequentes estão reunidas no nosso documento de FAQ.
Pode contactar a comunidade do Firecracker das seguintes formas:
Ao comunicar dentro da comunidade do Firecracker, respeite o nosso código de conduta.
| Instância | SO anfitrião e kernel | Rootfs do convidado | Kernel do convidado |
|---|
| 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) |