Nossa missão é ativar a execução segura, multi-inquilino e de cabeça mínima de cargas de trabalho de contêiner e função.
Leia mais sobre a Carta de Firecracker aqui.
O Firecracker é uma tecnologia de virtualização de código aberto que é criado para criar e gerenciar contêineres seguros e com vários inquilinos e serviços baseados em funções que fornecem modelos operacionais sem servidor. 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 componente principal do Firecracker é um monitor de máquina virtual (VMM) que usa a máquina virtual do kernel Linux (KVM) para criar e executar microvms. O Firecracker tem um design minimalista. Ele exclui dispositivos desnecessários e funcionalidade voltada para o hóspede para reduzir a pegada de memória e atacar a área de superfície 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 nos tempos de execução de contêineres, por exemplo, contêineres Kata 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 origem aberta no Apache versão 2.0.
Para ler mais sobre o Firecracker, consulte o Firecracker-Microvm.io.
Para começar com o Firecracker, faça o download dos mais recentes binários de lançamento ou crie -o a partir da fonte.
Você pode construir o Firecracker em qualquer sistema UNIX/Linux que tenha o Docker em execução (usamos um contêiner de desenvolvimento) e bash
instalado, como segue:
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 no build/cargo_target/${toolchain}/debug/firecracker
. Para obter mais informações sobre a construção, teste e execução do Firecracker, acesse o Guia de Investir Quick.
A segurança geral das microvms do Firecracker, incluindo a capacidade de atender aos critérios de computação com vários inquilinos, depende de um sistema operacional host Linux bem configurado. Uma configuração que acreditamos que atende a esta barra 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 é o primeiro dia na jornada guiada por nossa missão. Há muito mais para construir e agradecemos todas as contribuições.
Para contribuir com o Firecracker, consulte a seção de configuração de desenvolvimento no Guia de Iniciação e, em seguida, as diretrizes de contribuição do foguete.
As novas versões do Firecracker são lançadas na página do Repositório do GitHub, normalmente a cada dois ou três meses. Uma história de mudanças é registrada em nosso Changelog.
A política de liberação do foguete é detalhada aqui.
A arquitetura geral do Firecracker é descrita no documento de design.
O Firecracker consiste em um único processo de gerenciador de máquina virtual que expõe um endpoint da API ao host uma vez iniciado. A API é especificada no formato OpenAPI. Leia mais sobre isso nos documentos da API.
O endpoint da API pode ser usado para:
[BETA]
Configure a árvore de dados do serviço de metadados voltados para o hóspede. O serviço está disponível apenas para o convidado se este recurso estiver configurado.Recursos internos :
Testamos todas as combinações de:
Exemplo | Host OS & Kernel | Convidado rootfs | Kernel convidado |
---|---|---|---|
C5N.Metal | AL2 Linux_5.10 | Ubuntu 24.04 | Linux_5.10 |
M5N.Metal | AL2023 Linux_6.1 | Linux_6.1 | |
M6i.Metal | |||
M6a.Metal | |||
M6G.Metal | |||
M7G.Metal |
pl031
RTC no AARCH64 não suporta interrupções; portanto, os programas de convidados que usam 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 da especificação. Todas as especificações fazem parte de nosso compromisso de suportar cargas de trabalho de contêineres e funções em modelos operacionais sem servidor e, portanto, são aplicados por meio de testes de integração contínua.
A segurança do Firecracker é a nossa principal prioridade. Se você suspeitar que descobriu uma vulnerabilidade, entre em contato conosco em particular, conforme descrito em nosso documento de política de segurança; Priorizaremos imediatamente sua divulgação.
Perguntas frequentes são coletadas em nosso documento de FAQ.
Você pode entrar em contato com a comunidade Firecracker das seguintes maneiras:
Ao se comunicar dentro da comunidade de fogos de artifício, cuide do nosso código de conduta.