Amazon выпустил AWS Lambda MicroVMs — новый серверлес-примитив для запуска кода в изолированных, сохраняющих состояние окружениях. Под капотом — Firecracker, та же технология, что крутит 15 триллионов вызовов Lambda в месяц.
Раньше разработчикам приходилось выбирать между медленными, но безопасными виртуалками и быстрыми, но слабо изолированными контейнерами с разделяемым ядром. Lambda MicroVMs закрывает эту дыру: каждому пользователю или сессии достаётся отдельная MicroVM с изоляцией на уровне полноценной виртуальной машины, но запускается и возобновляется она почти мгновенно (из снапшота). Можно даже приостановить сессию при простое и потом дёшево разбудить — состояние памяти и диска сохранится.
Создание образа — через Dockerfile и zip-артефакт в Amazon S3. Lambda собирает образ, запускает приложение, делает Firecracker-снапшот. Когда запускаешь MicroVM — она уже работает, приложение инициализировано. В примере из статьи автор упаковал Flask-приложение и через CLI запустил MicroVM: назначился уникальный ID, вернулся endpoint, запрос с заголовком X-aws-proxy-auth сразу попал в ответ. Простой 15 минут — MicroVM приостановилась, следующий запрос — проснулась целиком.
Технически это три вещи: виртуалка с изоляцией (каждый пользователь в своей MicroVM без общего ядра), быстрый запуск/возобновление из снепшота (вместо холодной загрузки) и сохранение состояния (память, диск, процессы) на время сессии. Поддерживается до 8 часов работы, автоматическая приостановка по таймеру.
Сервис доступен в US East (N. Virginia, Ohio), US West (Oregon), Europe (Ireland) и Asia Pacific (Tokyo) на ARM64. Одна MicroVM — до 16 vCPU, 32 GB RAM и 32 GB диска. Цену обещают на странице AWS Lambda pricing. Lambda Functions остаются для event-driven сценариев, а MicroVMs — для мультитенантных приложений, где надо запускать чужой код изолированно, быстро и с сохранением состояния.