Определение простыми словами
Function as a Service (FaaS) — это технология в облачных вычислениях, позволяющая запускать отдельные функции или куски кода по запросу без необходимости управлять серверами, операционными системами или инфраструктурой. Пользователь загружает код функции, а облачный провайдер автоматически отвечает за выполнение, масштабирование и обслуживание среды, в которой работает эта функция.
Такая модель облегчает разработку приложений, позволяя сосредоточиться на бизнес-логике и снижая затраты на обслуживание инфраструктуры. FaaS входит в концепцию serverless (бессерверных вычислений), где вычислительные ресурсы выделяются динамически и взимаются по факту использования.
Сравнение
| Модель | Уровень управления | Масштабирование | Оплата | Пример сценария |
|---|---|---|---|---|
| FaaS | Код функции | Автоматическое | По вызову функции | Обработка событий, вебхуков |
| Serverless (broad) | Приложение или сервис | Автоматическое | По потреблению ресурсов | Веб-приложения, микросервисы |
| VPS/VDS | Виртуальная машина | Ручное | Фиксированная | Хостинг сайтов, БД |
| Dedicated server | Физический сервер | Ручное | Фиксированная | Высоконагруженные проекты |
Кейсы использования
- Обработка HTTP-запросов и вебхуков без развертывания сервера.
- Выполнение фоновых задач и триггеров, например, обработка загрузки файлов.
- Масштабируемая обработка данных в событиях IoT-устройств.
- Реализация микросервисной архитектуры.
- Создание автоматизированных процессов — к примеру, парсинг и анализ данных.
Негативный пример: Использование FaaS для долгосрочных задач с тяжелыми вычислениями и постоянным состоянием плохо подходит из-за ограничений времени выполнения и отсутствия сохранения сессий.
Технические детали
FaaS-платформы обычно предоставляют API или SDK для загрузки и вызова функций. Функции запускаются в изолированной среде (контейнеры или микросервисные песочницы) на время обработки. Код должен быть написан так, чтобы быстро стартовать и завершать выполнение, так как время жизни процесса ограничено. Обычно поддерживаются популярные языки программирования и привязка к событиям, таким как HTTP-запросы, изменения в базе, сообщения в очередях и т.д.
# Пример вызова функции через CLI облачного провайдера
cloud-cli invoke-function --name myFunction --payload '{"key": "value"}'
Подробнее о концепциях вычислительной виртуализации и серверлес-инфраструктуре см. в разделе serverless и microservices.
🔥 Где это применяется
Частые вопросы
Что такое Function as a Service?
Это облачная модель, позволяющая запускать отдельные функции без необходимости управлять серверами.
В чём отличие FaaS от обычных виртуальных серверов?
FaaS автоматизирует масштабирование и управление инфраструктурой, оплата происходит только за фактическое время выполнения функций.
Для каких задач подходит FaaS?
Для обработки событий, HTTP-запросов, фоновых задач и микросервисов с непостоянным состоянием.