Аннотация
Function-as-a-Service (FaaS) — популярная в индустрии парадигма разработки, в которой разработчики пишут код (обработчики запросов, событий, таймеров) в stateless функциях, без необходимости поднимать сервер и управлять инфраструктурой, нужной для его работы. Платформа же отвечает за запуск этого кода и автоскейлинг. Чтобы экономика у такого подхода сходилась, нужно уменьшать время холодного старта (от появления события до переключения в код пользователя). Типичные задержки в индустрии — сотни миллисикунд. Авторы утверждают, что умеют за 10ms в p90.
В докладе мы посмотрим на то, как эту задачу решают разные облачные провайдеры: эмуляция системных вызовов (Google), microVMs (Firecracker), разные подходы к снапшотам состояния контейнеров. Отдельно поговорим про применение`fork` как способа получить детерминированную cold start latency меньше 10ms и какие проблемы пришлось решать, чтобы заставить это работать.