MicroVMs seguros e rápidos para computação serverless.
Nossa missão é possibilitar a execução segura, multi-inquilino e com sobrecarga mínima de cargas de trabalho de contêineres e funções.
Leia mais sobre a Carta do Firecracker aqui.
Firecracker é uma tecnologia de virtualização de código aberto criada especificamente para criar e gerenciar serviços seguros, multi-inquilino, baseados em contêineres e funções que oferecem 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 a flexibilidade dos contêineres.
O principal componente do Firecracker é um monitor de máquina virtual (VMM) que usa o Linux Kernel Virtual Machine (KVM) para criar e executar microVMs. O Firecracker também pode executar um convidado como um Nitro Sandbox, isolado pelo AWS Nitro System em vez do KVM. O Firecracker tem um design minimalista. Ele exclui dispositivos desnecessários e funcionalidades voltadas ao convidado para reduzir o consumo de memória e a superfície de ataque de cada microVM. Isso melhora a segurança, diminui o tempo de inicialização e aumenta a utilização de hardware. O Firecracker também foi integrado a runtimes de contêineres, 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 licença Apache versão 2.0.
Para ler mais sobre o Firecracker, confira firecracker-microvm.io.
Para começar a usar o Firecracker, baixe os binários da versão mais recente ou compile-o a partir do código-fonte.
Você pode compilar o Firecracker em qualquer sistema Unix/Linux que tenha o Docker em execução (nós
usamos um contêiner de desenvolvimento) e o 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
como 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 atender aos critérios para computação multi-inquilino segura, depende de um sistema operacional host Linux bem configurado. Uma configuração que acreditamos atender a esse requisito está incluída no documento de configuração do host de produção.
O Firecracker já está executando cargas de trabalho de produção na AWS, mas ainda está no Dia 1 da jornada guiada pela nossa missão. Há muito mais a construir e damos as boas-vindas a todas as contribuições.
Para contribuir com o Firecracker, consulte a seção de configuração de desenvolvimento no guia de início e, em seguida, as diretrizes de contribuição do Firecracker.
Novas versões do Firecracker são lançadas por meio da página de releases do repositório no GitHub, normalmente a cada dois ou três meses. Um histórico de alterações é registrado em nosso changelog.
A política de lançamento do Firecracker está detalhada aqui.
A arquitetura geral do Firecracker está descrita no documento de design.
O Firecracker consiste em um único processo de micro Virtual Machine Manager que expõe um endpoint de API ao host após ser iniciado. A API é especificada no formato OpenAPI. Leia mais sobre ela na documentação da API.
O endpoint da API pode ser usado para:
[BETA] Configurar a árvore de dados do serviço de metadados voltado ao
guest. O serviço só fica disponível ao guest se este recurso estiver
configurado.[Developer Preview] Hot-plug e hot-unplug de
dispositivos virtio PCI enquanto a VM está em execução.Capacidades integradas: