Публикации

Function as a Service

Пользователи разворачивают приложения в облаке без необходимости управления виртуальными машинами и серверами. FaaS позволяет запускать разработанный код в обслуживаемой провайдером среде выполнения в виде функции. Функция - задача или операция в приложении. Она может быть написана как отдельный фрагмент кода и выполняться независимо. Запускается в среде выполнения, соответствующей ее языку программирования. Об использовании дополнительных библиотек пользователям можно не беспокоиться и установить их пакетным менеджером в выделенном рабочем пространстве.


Термин «бессерверная архитектура» (serverless) не означает, что приложение работает без сервера. Очевидно, что для развертывания приложения требуется аппаратный хост. Определяющая особенность - поставщик облачных услуг (провайдер) берет на себя управление серверами и обеспечивает динамическое выделение вычислительных ресурсов в зависимости от потребностей пользователей.  Провайдер отвечает за подготовку специализированной инфраструктуры, установку специализированного программного обеспечения для работы и управления FaaS. Гарантирует работоспособность среды выполнения, выполняет мониторинг сервиса и инфраструктуры.
Код с начала загрузки доступен для вызова в облаке. Сервис выделяет ресурсы, необходимые для его выполнения. При увеличении количества вызовов функции происходит автоматическое масштабирование — сервис создает ее дополнительные экземпляры. В случае, если нет запросов, ресурсы не выделяются, и пользователь не оплачивает работу облака. Плата взимается за время исполнения функции и за количество вызовов. В этом ключевое отличие serverless от классической архитектуры.
Вызов функции происходит по триггеру. Триггер - это события, инициируемые другими сервисами платформы. Самые распространенные типы триггеров - таймер и HTTP-запрос. Первые будут запускать функцию по расписанию. Вторые выполняют функцию после запроса, отправленного на определённый URL. Есть и другие виды триггеров. Срабатывающие при авторизации, при изменениях в базе данных, при добавлении записи в лог. Функции могут быть объединены в цепочку. Одна функция по завершении своей работы вызывает следующую.
Лучше всего подход FaaS показывает себя, когда не требуется мгновенный ответ пользователю. Например, для автоматизации фоновых задач:
  • чат-боты;
  • асинхронная отправка уведомлений пользователю (push, email, СМС);
  • работа с API.
Архитектура FaaS подходит для краткосрочных процессов. В случае использования функции в приложении длительное время, потребление ресурсов будет таким же, как у традиционных продуктов.
При грамотном использовании FaaS дает значительные преимущества. Пользователи тратят меньше времени меньше времени на задачи по обеспечению доступности, устойчивости, безопасности и обслуживанию серверов. Что даёт существенную экономию ресурсов.
Словарь технического менеджера