Firecracker - состоялся анонс новой технологии виртуализации с открытым кодом, основанной на Linux KVM
Firecracker - состоялся анонс новой технологии виртуализации с открытым кодом, основанной на Linux KVM
На AWS re:Invent 2018 в Лас-Вегасе состоялся анонс Firecracker — новой технологии виртуализации с открытым кодом, основанной на Linux KVM. Авторы обещают, что с ней «в доли секунды можно запускать легковесные микровиртуальные машины (microVMs) в невиртуализированной среде, получив преимущества и традиционных ВМ — в виде безопасности и изоляции рабочих нагрузок, и контейнеров — в виде эффективного использования ресурсов».
За разработкой Firecracker стоят сотрудники Amazon Web Services, задавшиеся целью улучшить потребление ресурсов и вообще жизнь пользователям таких сервисов, как AWS Lambda (стартовал в 2014 году и позволяет сегодня заявлять о том, что модель serverless продолжит своё существование) и AWS Fargate (появился год назад).
Основу проекту положила Open Source-разработка от Google — crosvm из Chromium OS, что написана на Rust и отвечает за запуск операционных систем с виртуализацией устройств (но без эмуляции реального аппаратного обеспечения). Посему код Firecracker тоже написан на языке Rust, и его авторы обещают возвращать свои исправления в кодовую базу родительского проекта, хотя сами проекты со временем сильно разошлись в своём предназначении.
Первый публичный релиз Firecracker — 0.1.0 — состоялся в марте этого года, а последний актуальный — 0.11.0 — всего несколько дней назад.
Особенности Firecracker
Главным компонентом Firecracker является virtual machine monitor (VMM), что использует Linux KVM для создания и запуска так называемых microVMs. Авторы именуют свой продукт «облачной альтернативой QEMU» [используется в Kata Containers], «предназначенной только для безопасного и эффективного запуска контейнеров».
Среди главных возможностей Firecracker, ориентированных на обеспечение высокого уровня безопасности, упоминаются следующие:
- Простая гостевая модель (для всех гостей обеспечен лишь самый минимум — см. выше про 4 устройства).
- Изолирование процесса Firecracker с помощью cgroups и seccomp BPF, а также ограниченного набора разрешённых системных вызовов.
- Статическая линковка процесса Firecracker для его запуска в условиях изоляции от хостового окружения.