
Безопасные и быстрые микроВМ для бессерверных вычислений.
Наша миссия — обеспечить безопасное, мультитенантное выполнение контейнерных и функциональных рабочих нагрузок с минимальными накладными расходами.
Подробнее об уставе Firecracker читайте здесь.
Firecracker — это технология виртуализации с открытым исходным кодом, специально созданная для создания и управления безопасными мультитенантными сервисами на основе контейнеров и функций, которые обеспечивают бессерверные операционные модели. Firecracker запускает рабочие нагрузки в облегченных виртуальных машинах, называемых microVM, которые сочетают свойства безопасности и изоляции, обеспечиваемые аппаратной виртуализацией, со скоростью и гибкостью контейнеров.
Основным компонентом Firecracker является монитор виртуальных машин (VMM), который использует виртуальную машину на основе ядра Linux (KVM) для создания и запуска microVM. Firecracker имеет минималистичный дизайн. Он исключает ненужные устройства и функциональность, обращенную к гостю, чтобы уменьшить объем памяти и площадь атаки каждой microVM. Это повышает безопасность, сокращает время запуска и увеличивает утилизацию аппаратного обеспечения. Firecracker также интегрирован в контейнерные рантаймы, например Kata Containers и Flintlock.
Firecracker был разработан в Amazon Web Services для ускорения и повышения эффективности таких сервисов, как AWS Lambda и AWS Fargate. Firecracker распространяется с открытым исходным кодом под лицензией Apache версии 2.0.
Чтобы узнать больше о Firecracker, посетите firecracker-microvm.io.
Чтобы начать работу с Firecracker, загрузите последние релизные бинарные файлы или соберите его из исходного кода.
Вы можете собрать Firecracker в любой системе Unix/Linux, где запущен Docker (мы
используем контейнер для разработки) и установлен bash, следующим образом:
git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"
Бинарный файл Firecracker будет размещен в
build/cargo_target/${toolchain}/debug/firecracker. Дополнительную информацию о
сборке, тестировании и запуске Firecracker см. в
кратком руководстве.
Общая безопасность microVM Firecracker, включая способность соответствовать критериям безопасных мультитенантных вычислений, зависит от правильно настроенной хост-операционной системы Linux. Конфигурация, которая, по нашему мнению, соответствует этому уровню, приведена в документе о настройке production-хоста.
Firecracker уже выполняет производственные нагрузки внутри AWS, но это все еще первый день пути, которым руководствуется наша миссия. Нам предстоит еще многое построить, и мы приветствуем любой вклад.
Чтобы внести вклад в Firecracker, ознакомьтесь с разделом о настройке среды разработки в руководстве по началу работы, а затем с руководством по внесению вклада в проект Firecracker.
Новые версии Firecracker выпускаются на странице релизов репозитория GitHub, как правило, каждые два-три месяца. История изменений отражена в нашем журнале изменений.
Политика выпуска версий Firecracker подробно описана здесь.
Общая архитектура Firecracker описана в документе о проектировании.
Firecracker состоит из одного процесса микроменеджера виртуальных машин (microVMM), который после запуска предоставляет хост-системе конечную точку API. API описан в формате OpenAPI. Подробнее об этом читайте в документации по API.
Конечная точка API может использоваться для:
[BETA] Настроить дерево данных сервиса метаданных, доступного гостевой
системе. Сервис доступен гостю только в том случае, если этот ресурс настроен.[Developer Preview] Горячее подключение и отключение virtio
PCI-устройств во время работы ВМ.Встроенные возможности:
Мы тестируем все комбинации:
*: Мы поддерживаем только инстансы AWS EC2 8-го поколения Intel (*8i) с ядром хоста 6.1 или 6.18. Это связано с плохой поддержкой процессоров Granite Rapids ядром 5.10.
pl031 на aarch64 не поддерживает прерывания, поэтому гостевые
программы, использующие будильник RTC (например, hwclock), не будут работать.Характеристики производительности Firecracker перечислены в документации по спецификациям. Все спецификации являются частью наших обязательств по поддержке контейнерных и функциональных рабочих нагрузок в бессерверных операционных моделях и поэтому обеспечиваются непрерывным интеграционным тестированием.
Безопасность Firecracker — наш главный приоритет. Если вы подозреваете, что обнаружили уязвимость, свяжитесь с нами конфиденциально, как описано в нашем документе о политике безопасности; мы немедленно обработаем ваше сообщение.
Часто задаваемые вопросы собраны в нашем документе FAQ.
Вы можете связаться с сообществом Firecracker следующими способами:
При общении в сообществе Firecracker, пожалуйста, соблюдайте наш кодекс поведения.
| Инстанс | Хостовая ОС и ядро | Корневая ФС гостя | Гостевое ядро |
|---|
| 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) |