Безопасные и быстрые микроВМ для бессерверных вычислений.
Наша миссия — обеспечить безопасное, мультитенантное выполнение контейнерных и функциональных рабочих нагрузок с минимальными накладными расходами.
Подробнее о Хартии Firecracker читайте здесь.
Firecracker — это технология виртуализации с открытым исходным кодом, специально созданная для создания и управления безопасными, мультитенантными контейнерными и функциональными сервисами, которые обеспечивают серверless-модели эксплуатации. Firecracker запускает рабочие нагрузки в легковесных виртуальных машинах, называемых microVM, которые сочетают свойства безопасности и изоляции, обеспечиваемые технологией аппаратной виртуализации, со скоростью и гибкостью контейнеров.
Основным компонентом Firecracker является монитор виртуальных машин (VMM), который использует Linux Kernel Virtual Machine (KVM) для создания и запуска microVM. Firecracker имеет минималистичный дизайн. Он исключает ненужные устройства и гостевую функциональность, чтобы уменьшить объем памяти и площадь атаки каждой microVM. Это повышает безопасность, сокращает время запуска и увеличивает загрузку оборудования. Firecracker также интегрирован в контейнерные рантаймы, например Kata Containers и Flintlock.
Firecracker был разработан в Amazon Web Services для ускорения скорости и эффективности таких сервисов, как AWS Lambda и AWS Fargate. Firecracker распространяется с открытым исходным кодом под .
Чтобы узнать больше о 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. Конфигурация, которая, по нашему мнению, соответствует этим требованиям, включена в документ по настройке производственного хоста.
Firecracker уже запускает производственные рабочие нагрузки в AWS, но это всё ещё первый день на пути, определяемом нашей миссией. Нам предстоит ещё многое построить, и мы приветствуем любой вклад.
Чтобы внести вклад в Firecracker, ознакомьтесь с разделом о настройке среды разработки в кратком руководстве, а затем с рекомендациями по участию в разработке Firecracker.
Новые версии Firecracker выпускаются через страницу релизов репозитория GitHub, как правило, каждые два или три месяца. История изменений записана в нашем журнале изменений.
Политика выпуска версий Firecracker подробно описана здесь.
Общая архитектура Firecracker описана в документе о дизайне.
Firecracker состоит из одного процесса менеджера микро-виртуальных машин, который после запуска предоставляет конечную точку API хосту. API описан в формате OpenAPI. Подробнее об этом читайте в документации по API.
Конечная точка API может использоваться для:
[BETA] Настройки дерева данных гостевого сервиса метаданных. Сервис
доступен гостевой системе только в том случае, если этот ресурс настроен.[Developer Preview] Горячее подключение и отключение
virtio PCI-устройств во время работы ВМ.Встроенные возможности:
Мы тестируем все комбинации:
| Инстанс | Хостовая ОС и ядро | Гостевая корневая ФС | Гостевое ядро |
|---|---|---|---|
| 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) |
*: Мы поддерживаем только инстансы AWS EC2 8-го поколения Intel (*8i) с хост-ядром 6.1 или 6.18. Это связано с плохой поддержкой ядром процессоров Granite Rapids на версии 5.10.
pl031 на aarch64 не поддерживает прерывания, поэтому гостевые
программы, использующие будильник RTC (например, hwclock), не будут работать.Характеристики производительности Firecracker перечислены в рамках документации по спецификациям. Все спецификации являются частью нашего обязательства по поддержке контейнерных и функциональных рабочих нагрузок в серверless-моделях эксплуатации и поэтому обеспечиваются через непрерывное интеграционное тестирование.
Безопасность Firecracker — наш главный приоритет. Если вы подозреваете, что обнаружили уязвимость, свяжитесь с нами конфиденциально, как описано в нашем документе о политике безопасности; мы немедленно рассмотрим ваше сообщение.
Часто задаваемые вопросы собраны в нашем документе FAQ.
Вы можете связаться с сообществом Firecracker следующими способами:
При общении в сообществе Firecracker, пожалуйста, соблюдайте наш кодекс поведения.