MicroVMs seguros e rápidos para computação serverless.
Nossa missão é permitir a execução segura, multi-tenant e com sobrecarga mínima de workloads de contêineres e funções.
Leia mais sobre a Carta do Firecracker aqui.
O Firecracker é uma tecnologia de virtualização de código aberto projetada especificamente para criar e gerenciar serviços seguros, multi-tenant e baseados em contêineres e funções que oferecem modelos operacionais serverless. O Firecracker executa workloads 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 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 tem um design minimalista. Ele exclui dispositivos desnecessários e funcionalidades voltadas ao guest para reduzir o footprint 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 em 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 Apache versão 2.0.
Para ler mais sobre o Firecracker, confira firecracker-microvm.io.
Para começar com o Firecracker, baixe os binários da versão mais recente release ou compile-o a partir do código-fonte.
Você pode compilar o Firecracker em qualquer sistema Unix/Linux que tenha Docker
em execução (usamos um contêiner 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
compilação, testes e execução do Firecracker, acesse 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-tenant segura, depende de um sistema operacional host Linux bem configurado. Uma configuração que acreditamos atender a esse padrão está incluída no documento de configuração do host de produção.
O Firecracker já está executando workloads de produção dentro da AWS, mas ainda estamos no Dia 1 da jornada guiada pela nossa missão. Há muito mais a construir e recebemos todas as contribuições.
Para contribuir com o Firecracker, confira a seçã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 releases do repositório GitHub, normalmente a cada dois ou três meses. Um histórico de mudanças é registrado no nosso changelog.
A política de releases do Firecracker é detalhada aqui.
A arquitetura geral do Firecracker é descrita em o documento de design.
O Firecracker consiste em um único processo de gerenciador de micro Máquina Virtual que expõe um endpoint de API ao host uma vez iniciado. A API é especificada em formato OpenAPI. Leia mais sobre isso 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ó está disponível para o 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:
Testamos todas as combinações de: