Serverless: обзор возможностей бессерверной архитектуры
Очень часто компаниям необходимо выложить небольшую информацию либо опубликовать небольшой вебсайт вне рамок технологического стека, который принят к использованию в организации. Типичные сценарии — публичная часть корпоративного вебсайта, landing page, страница-заглушка.
С одной стороны, задача тривиальна и решается в рамках традиционного подхода. Фронтенд, бэкенд, почтовый relay, мониторинг, бэкапы, саpacity planning, отказоустойчивость и резервирование — все эти вопросы придётся решать так же, как и для всех остальных сервисов. Также нагрузка может иметь нестабильный характер, к примеру, после рекламной кампании или упоминания в СМИ на страницу лендинга придет очень много людей, а в остальное время почти никого и нет.
В этой статье мы рассмотрим решение, которое позволит оптимизировать как затраты на серверы, так и уменьшить количество необходимых усилий для имплементации стабильного решения, бонусом получим условно-бесконечное масштабирование по запросу.
Речь пойдёт о lambda-функциях. Крупные облачные провайдеры предоставляют сервис, позволяющий выполнить программный код на поддерживаемых языках программирования, не заботясь о создании инфраструктуры для этого. Оплатить придётся только совершённые вызовы, что может быть интересно для сервисов с низкой либо непредсказуемой посещаемостью. Принципиальная схема изложена ниже (на примере AWS):
Api-gateway — сервис, позволяющий создавать api, в нашем случае, посредник между внешним интернетом и нашей lambda-функцией.
Amazon SES — сервис оправки электронной почты от аws.
Описанная схема позволяет платить за фактически используемые ресурсы, обладает свойством мультирегиональной доступности, не нуждается в регулярном обслуживании и требует лишь минимального мониторинга.
Если тема Serverless показалась интересной, в следующих материалах мы разберём более практический пример. Также пишите, если у кого был опыт с похожими технологиями, для каких задач и у каких облачных провайдеров.