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

Что это такое

Бессерверные вычисления — это выполнение кода в управляемой среде выполнения, которая запускает его с приходом запроса и останавливает, когда запрос обработан. Здесь нечего патчить и не за что платить, пока код простаивает: провайдер сам подбирает размер, запускает и выводит из эксплуатации среду выполнения. Название обманчиво — серверы есть, просто они больше не ваша забота, — а полезная мысленная модель такая: «функция плюс управляемые сервисы, которые она вызывает», потому что сама по себе функция делает очень мало.

Почему это важно

Для пиковой и прерывистой работы бессерверная модель заметно дешевле: задача, которая запускается несколько раз в день, всё остальное время не стоит ничего, тогда как сервер работал бы весь месяц. Она также снимает целый класс операционной работы, что особенно важно для небольших команд без отдельной платформенной группы. Плата за это — ограничения платформы: тайм-ауты, потолки памяти, холодные старты и почти полное отсутствие локального диска; к тому же отладка сложнее, когда нельзя зайти на машину. Модель хорошо подходит для связующего кода, обработки событий и пиковых API и плохо — для длительных вычислений и всего, чему нужен необычный доступ к системе.

Что в этом треке

  1. Функции и управляемые среды выполнения (06-cloud-devops/05-serverless-computing/01-functions-and-managed-runtimes) — что такое функция и из каких сервисов она на самом деле собирается.
  2. Проектирование для бессерверной модели (06-cloud-devops/05-serverless-computing/02-designing-for-serverless) — ограничения, которые решают, подходит ли модель, и приёмы, работающие внутри них.

Предварительные требования

Что читать дальше

  • Облачные вычисления (06-cloud-devops/01-cloud-computing) — понятия, одним из концов которых является эта модель, поэтому читайте их первыми.
  • Облачно-нативные вычисления (06-cloud-devops/13-cloud-native-computing) — более широкие приёмы проектирования, частным случаем которых являются бессерверные вычисления.
  • CI/CD (06-cloud-devops/08-ci-cd) — как функция собирается, тестируется и развёртывается вместе со всем остальным.