Firecracker — это виртуализационная технология с открытым исходным кодом, разработанная компанией Amazon Web Services для запуска легковесных виртуальных машин, известных как микро-ВМ (microVM). Проект был анонсирован и открыт в 2018 году с целью объединить изоляцию и безопасность традиционной виртуализации с высокой плотностью и скоростью контейнерных сред. Firecracker предназначен для сценариев, где требуется быстрое создание, минимальное потребление ресурсов и надёжная многопользовательская изоляция, например при реализации серверлесс-платформ и многопользовательских сред выполнения функций.
Архитектурно Firecracker опирается на возможности аппаратной виртуализации процессоров и минималистичный пользовательский слой: каждая микро-ВМ запускает очень ограниченный набор устройств и сервисов, что снижает поверхность атаки и упрощает управление. Интерфейс управления предоставляет возможности создания, настройки и контроля жизненного цикла виртуальных машин через REST-подобный API. Проект развивается как открытый репозиторий и применяется как внутри облачных продуктов, так и в сторонних решениях, ориентированных на плотное размещение изолированных рабочих нагрузок.
- Микро-ВМ (microVM): легковесные виртуальные машины с минимальным набором ресурсов и быстрым временем запуска.
- Аппаратная виртуализация: использование возможностей процессора для изоляции и управления виртуальными ресурсами.
- Небольшая поверхность атаки: минималистичное устройство и сервисный стек для повышения безопасности.
- Высокая плотность размещения: оптимизация использования памяти и CPU для размещения большого числа экземпляров на одном хосте.
- Быстрое время запуска: стартап микро-ВМ за миллисекунды — подходяще для функций и краткоживущих задач.
- REST-подобный API управления: средства для создания, конфигурации и контроля жизненного цикла виртуальных машин.
- Совместимость с контейнерными образами: поддержка запуска образов и компонентов, используемых в контейнерных рабочих нагрузках.
- Открытый исходный код: доступный репозиторий для сообщества, что позволяет аудит и расширение функциональности.
- Применение в серверлесс-архитектурах: частое использование для выполнения функций и короткоживущих задач с требованием изоляции.