MicroVMs seguros y rápidos para la computación sin servidor.
Nuestra misión es permitir la ejecución segura, multiinquilino y con mínima sobrecarga de cargas de trabajo de contenedores y funciones.
Lee más sobre la Carta de Firecracker aquí.
Firecracker es una tecnología de virtualización de código abierto diseñada específicamente para crear y gestionar servicios seguros, multiinquilino y basados en contenedores y funciones que proporcionan modelos operativos serverless. Firecracker ejecuta cargas de trabajo en máquinas virtuales ligeras, llamadas microVMs, que combinan las propiedades de seguridad y aislamiento proporcionadas por la tecnología de virtualización de hardware con la velocidad y flexibilidad de los contenedores.
El componente principal de Firecracker es un monitor de máquina virtual (VMM) que utiliza el Kernel Virtual Machine (KVM) de Linux para crear y ejecutar microVMs. Firecracker tiene un diseño minimalista. Excluye dispositivos innecesarios y funcionalidad orientada al huésped para reducir la huella de memoria y la superficie de ataque de cada microVM. Esto mejora la seguridad, disminuye el tiempo de arranque y aumenta la utilización del hardware. Firecracker también se ha integrado en runtimes de contenedores, por ejemplo Kata Containers y Flintlock.
Firecracker fue desarrollado en Amazon Web Services para acelerar la velocidad y eficiencia de servicios como AWS Lambda y . Firecracker es de código abierto bajo .
Para leer más sobre Firecracker, consulta firecracker-microvm.io.
Para comenzar con Firecracker, descarga los binarios de la última versión o compílalo desde el código fuente.
Puedes compilar Firecracker en cualquier sistema Unix/Linux que tenga Docker en ejecución (usamos un contenedor de desarrollo) y bash instalado, de la siguiente manera:
git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"
El binario de Firecracker se ubicará en build/cargo_target/${toolchain}/debug/firecracker. Para más información sobre cómo compilar, probar y ejecutar Firecracker, consulta la guía de inicio rápido.
La seguridad general de las microVMs de Firecracker, incluida la capacidad de cumplir los criterios para la computación multiinquilino segura, depende de un sistema operativo host Linux bien configurado. Una configuración que creemos que cumple este estándar se incluye en el documento de configuración del host de producción.
Firecracker ya ejecuta cargas de trabajo de producción dentro de AWS, pero aún es el Día 1 en el camino guiado por nuestra misión. Hay mucho más por construir y damos la bienvenida a todas las contribuciones.
Para contribuir a Firecracker, consulta la sección de configuración de desarrollo en la guía de inicio y luego las directrices de contribución de Firecracker.
Las nuevas versiones de Firecracker se publican a través de la página de versiones del repositorio de GitHub, normalmente cada dos o tres meses. Un historial de cambios se registra en nuestro registro de cambios.
La política de versiones de Firecracker se detalla aquí.
La arquitectura general de Firecracker se describe en el documento de diseño.
Firecracker consiste en un único proceso de gestor de micro máquinas virtuales que expone un endpoint de API al host una vez iniciado. La API está especificada en formato OpenAPI. Lee más al respecto en la documentación de la API.
El endpoint de API se puede utilizar para:
[BETA] Configurar el árbol de datos del servicio de metadatos orientado al huésped. El servicio solo está disponible para el huésped si este recurso está configurado.[Vista previa para desarrolladores] Hot-plug y hot-unplug de dispositivos virtio PCI mientras la VM está en ejecución.Capacidades integradas:
Probamos todas las combinaciones de:
| Instancia | SO y kernel del host | Rootfs del huésped | Kernel del huésped |
|---|---|---|---|
| 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) | |||
| m9g.metal-48xl (Graviton 5) |
*: Solo admitimos instancias AWS EC2 de 8.ª generación Intel (*8i) que utilicen un kernel de host 6.1 o 6.18. Esto se debe al escaso soporte del kernel para CPUs Granite Rapids en 5.10.
pl031 en aarch64 no admite interrupciones, por lo que los programas del huésped que utilizan una alarma RTC (por ejemplo, hwclock) no funcionarán.Las características de rendimiento de Firecracker se enumeran como parte de la documentación de especificaciones. Todas las especificaciones forman parte de nuestro compromiso de admitir cargas de trabajo de contenedores y funciones en modelos operativos serverless y, por lo tanto, se aplican mediante pruebas de integración continua.
La seguridad de Firecracker es nuestra máxima prioridad. Si sospechas que has descubierto una vulnerabilidad, contáctanos de forma privada, como se describe en nuestro documento de política de seguridad; priorizaremos inmediatamente tu divulgación.
Las preguntas frecuentes se recopilan en nuestro documento de preguntas frecuentes.
Puedes ponerte en contacto con la comunidad de Firecracker de las siguientes maneras:
Al comunicarte dentro de la comunidad de Firecracker, ten en cuenta nuestro código de conducta.