Бессерверные вычисления
Бессерверные вычисления (англ. serverless computing) — стратегия организации платформенных облачных услуг, при которой облако автоматически и динамически управляет выделением вычислительных ресурсов в зависимости от пользовательской нагрузки. Основная задача такой стратегии — реализация шаблона «функция как услуга»[1], при котором для выполнения каждого запроса (вызова функции) создаётся отдельный контейнер или виртуальная машина, уничтожающиеся после выполнения[2].
Наименование связано с тем, что пользователям в этой стратегии не нужно иметь дело с выделением и настройкой «серверов» (как инфраструктурных единиц — виртуальных машин, контейнеров, так и программных серверов — серверов баз данных, серверов приложений, экземпляров сред выполнения): все настройки и планирование вычислительных ресурсов, необходимые для запуска кода по требованию или по событию, скрыты от пользователей и управляются облаком. Бессерверный код может быть частью приложений, построенных на традиционной архитектуре, например, на микросервисах.
Стратегия реализована в основных платформах FaaS: AWS Lambda, Google Cloud Functions, Apache OpenWhisk и основанном на ней сервисе IBM Cloud, Azure Functions в облаке Microsoft, сервисе Fn от Oracle. Кроме того, в конце 2010-х годов стратегия получила распространение в реализациях облачных СУБД, таковы, например, Azure Data Lake (работает в Microsoft Azure и динамически выделяет и высвобождает вычислительные ресурсы, работая с данными в сервисе постоянного хранения), Snowflake (работающая с данными в S3 и создающая вычислительные экземпляры по мере нагрузки), FaunaDB.
Примечания
- Haines, Steven. Serverless computing with AWS Lambda, Part 1 (англ.), JavaWorld. Дата обращения 30 января 2018.
- Neil Savage. Going serverless (англ.) // Communications of the ACM. — 2018. — Vol. 61, no. 2. — P. 15–16. — doi:10.1145/3171583.