Nuestra misión es habilitar la ejecución segura, múltiple y mínima de las cargas de trabajo de contenedores y funciones.
Lea más sobre la carta de Firecracker aquí.
Firecracker es una tecnología de virtualización de código abierto que está diseñada especialmente para crear y administrar servicios seguros de contenedores y funciones de múltiples inquilinos que proporcionan modelos operativos sin servidor. Firecracker ejecuta cargas de trabajo en máquinas virtuales livianas, llamadas microvms, que combinan las propiedades de seguridad y aislamiento proporcionadas por la tecnología de virtualización de hardware con la velocidad y la flexibilidad de los contenedores.
El componente principal de Firecracker es un monitor de máquina virtual (VMM) que utiliza la máquina virtual del núcleo Linux (KVM) para crear y ejecutar microvms. Firecracker tiene un diseño minimalista. Excluye dispositivos innecesarios y funcionalidad orientada a los huéspedes para reducir la huella de la memoria y el área de superficie de ataque de cada microvm. Esto mejora la seguridad, disminuye el tiempo de inicio y aumenta la utilización del hardware. Firecracker también se ha integrado en los tiempos de ejecución de contenedores, por ejemplo, Kata Containers y Flintlock.
Firecracker se desarrolló en Amazon Web Services para acelerar la velocidad y la eficiencia de los servicios como AWS Lambda y AWS Fargate. Firecracker se abre de origen en Apache versión 2.0.
Para leer más sobre Firecracker, consulte Firecracker-Microvm.io.
Para comenzar con Firecracker, descargue los últimos binarios de lanzamiento o construya desde la fuente.
Puede construir 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 Firecracker se colocará en build/cargo_target/${toolchain}/debug/firecracker
. Para obtener más información sobre la construcción, las pruebas y la ejecución de Firecracker, vaya a la guía QuickStart.
La seguridad general de las microvms de Firecracker, incluida la capacidad de cumplir con los criterios para la informática múltiple segura, depende de un sistema operativo de host Linux bien configurado. Una configuración que creemos que cumple con esta barra se incluye en el documento de configuración del host de producción.
Firecracker ya está ejecutando cargas de trabajo de producción en AWS, pero sigue siendo el día 1 en el viaje guiado por nuestra misión. Hay mucho más que construir y damos la bienvenida a todas las contribuciones.
Para contribuir a Firecracker, consulte la sección Configuración de desarrollo en la Guía Getting Start y luego las pautas de contribución de Firecracker.
Las nuevas versiones de Firecracker se lanzan a través de la página de versiones del repositorio de GitHub, generalmente cada dos o tres meses. Una historia de cambios se registra en nuestro ChangeLog.
La política de lanzamiento de Firecracker se detalla aquí.
La arquitectura general de Firecracker se describe en el documento de diseño.
Firecracker consiste en un solo proceso de administrador de máquinas de micro virtual que expone un punto final API al host una vez iniciado. La API se especifica en formato OpenAPI. Lea más al respecto en los documentos de la API.
El punto final de la API se puede usar para:
[BETA]
Configure el árbol de datos del servicio de metadatos orientados a los invitados. El servicio solo está disponible para el invitado si este recurso está configurado.Capacidades incorporadas :
Probamos todas las combinaciones de:
Instancia | Host OS y Kernel | Rootfs invitados | Núcleo invitado |
---|---|---|---|
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
en AARCH64 no admite interrupciones, por lo que los programas de invitados que usan 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 especificación. Todas las especificaciones son parte de nuestro compromiso de soportar cargas de trabajo de contenedores y funciones en modelos operativos sin servidor y, por lo tanto, se aplican a través de pruebas de integración continua.
La seguridad de Firecracker es nuestra máxima prioridad. Si sospecha que ha descubierto una vulnerabilidad, contáctenos en privado, como se describe en nuestro documento de política de seguridad; Inmediatamente priorizaremos su divulgación.
Las preguntas frecuentes se recopilan en nuestro documento de preguntas frecuentes.
Puede ponerse en contacto con la comunidad Firecracker de las siguientes maneras:
Cuando se comunique dentro de la comunidad de Firecracker, tenga en cuenta nuestro código de conducta.