
MicroVMs seguros y rápidos para la computación sin servidor.
Nuestra misión es posibilitar la ejecución segura y multiinquilino de cargas de trabajo de contenedores y funciones con una sobrecarga mínima.
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 y multiinquilino 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 que ofrece la tecnología de virtualización por hardware con la velocidad y la flexibilidad de los contenedores.
El componente principal de Firecracker es un monitor de máquinas virtuales (VMM) que utiliza la Máquina Virtual del Kernel de Linux (KVM) 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 la eficiencia de servicios como AWS Lambda y AWS Fargate. Firecracker es de código abierto bajo la versión 2.0 de Apache.
Para saber más sobre Firecracker, visita firecracker-microvm.io.
Para empezar 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 obtener 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 un cómputo multiinquilino seguro, depende de un sistema operativo host Linux bien configurado. En el documento de configuración del host de producción se incluye una configuración que creemos que cumple este estándar.
Firecracker ya ejecuta cargas de trabajo de producción en AWS, pero todavía estamos en el Día 1 del camino guiado por nuestra misión. Queda mucho 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 rápido y luego las pautas 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. El historial de cambios se registra en nuestro changelog.
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 micro Gestor de Máquinas Virtuales que expone un endpoint de API al host una vez iniciado. La API está especificada en formato OpenAPI. Lee más sobre ella 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.[Developer Preview] Conexión y desconexión en caliente de dispositivos virtio PCI mientras la VM está en ejecución.Capacidades integradas:
Probamos todas las combinaciones de:
*: Solo admitimos instancias AWS EC2 Intel de 8.ª generación (*8i) que utilicen un kernel de host 6.1 o 6.18. Esto se debe a la escasa compatibilidad del kernel con las CPU Granite Rapids en 5.10.
pl031 en aarch64 no admite interrupciones, por lo que los programas 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 son 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 indica en nuestro documento de política de seguridad; priorizaremos de inmediato 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:
Cuando te comuniques dentro de la comunidad de Firecracker, ten en cuenta nuestro código de conducta.
| 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) |