Voltar às atualizações
New releaseSep 12, 2026

firecracker v1.17.0

MicroVMs seguros e rápidos para computação serverless.

Compartilhar
Firecracker Logo Title

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 que é o Firecracker?

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.

Visão Geral

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.

Começando

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.

Contribuindo

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.

Releases

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.

Design

A arquitetura geral do Firecracker é descrita em o documento de design.

Recursos e Capacidades

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:

  • Configurar a microvm:
    • Definindo o número de vCPUs (o padrão é 1).
    • Definindo o tamanho da memória (o padrão é 128 MiB).
    • Configurando um template de CPU.
  • Adicionar uma ou mais interfaces de rede à microVM.
  • Adicionar um ou mais discos de leitura-escrita ou somente leitura à microVM, cada um representado por um dispositivo de bloco com suporte de arquivo.
  • Acionar uma nova varredura do dispositivo de bloco enquanto o guest está em execução. Isso permite que o sistema operacional guest detecte mudanças de tamanho no arquivo de suporte do dispositivo de bloco.
  • Alterar o arquivo de suporte de um dispositivo de bloco, antes ou depois da inicialização do guest.
  • Configurar limitadores de taxa para dispositivos virtio que podem limitar a largura de banda, operações por segundo, ou ambos.
  • Configurar o sistema de logging e métricas.
  • [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.
  • Adicionar um socket vsock à microVM.
  • Adicionar um dispositivo de entropia à microVM.
  • Adicionar um dispositivo pmem à microVM.
  • Configurar e gerenciar hotplugging de memória.
  • [Developer Preview] Hot-plug e hot-unplug de dispositivos virtio PCI enquanto a VM está em execução.
  • Iniciar a microVM usando uma imagem de kernel, sistema de arquivos raiz e argumentos de boot fornecidos.
  • [Somente x86_64] Parar a microVM.

Capacidades Integradas:

  • Paginação por demanda de falhas e oversubscription de CPU habilitados por padrão.
  • Filtros seccomp avançados e específicos por thread para segurança aprimorada.
  • Processo Jailer para iniciar o Firecracker em cenários de produção; aplica uma barreira de isolamento cgroup/namespace e depois remove privilégios.

Plataformas testadas

Testamos todas as combinações de:

InstânciaHost OS & KernelGuest RootfsGuest Kernel
m5n.metal (Intel Cascade Lake)al2 linux_5.10ubuntu 24.04linux_5.10
m6i.metal (Intel Ice Lake)al2023 linux_6.1linux_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)
m9g.metal-48xl (Graviton 5)

*: Nós somente suportamos instâncias AWS EC2 Intel de 8ª Geração (*8i) usando um kernel host 6.1 ou 6.18. Isso se deve ao suporte deficiente do kernel para CPUs Granite Rapids no 5.10.

Problemas conhecidos e Limitações

  • O dispositivo RTC pl031 em aarch64 não suporta interrupções, portanto programas guest que usam alarme RTC (por exemplo, hwclock) não funcionarão.

Desempenho

As características de desempenho do Firecracker estão listadas como parte da documentação de especificação. Todas as especificações fazem parte do nosso compromisso em suportar workloads de contêineres e funções em modelos operacionais serverless e, portanto, são aplicadas através de testes de integração contínua.

Política para Divulgações de Segurança

A segurança do Firecracker é nossa maior prioridade. Se você suspeitar que encontrou uma vulnerabilidade, entre em contato conosco de forma privada, como descrito no nosso documento de política de segurança; priorizaremos imediatamente a sua divulgação.

FAQ e Contato

Perguntas frequentes estão reunidas no nosso documento de FAQ.

Você pode entrar em contato com a comunidade do Firecracker das seguintes formas:

Ao se comunicar dentro da comunidade do Firecracker, lembre-se do nosso código de conduta.

Categorias