Бессерверные вычисления

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Бессерверные вычисления (англ. 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.

Примечания[править | править код]

  1. Haines, Steven. "Serverless computing with AWS Lambda, Part 1". JavaWorld (англ.). Архивировано 7 февраля 2018. Дата обращения: 30 января 2018.
  2. Neil Savage. Going serverless (англ.) // Communications of the ACM. — 2018. — Vol. 61, no. 2. — P. 15–16. — doi:10.1145/3171583.