Кризис, вызванный пандемией, серьезно повлиял на нашу жизнь, в том числе привел к значительному росту использования облачных сервисов, вследствие чего поднялась волна интереса к сокращению расходов на услуги провайдеров облаков, которыми сегодня пользуется уже 60% населения Земли. Один из способов снижения «налога» на инфраструктуру, в конечном счете взимаемого с пользователей высокотехнологичных сервисов, — бессерверная архитектура.
В модели бессерверных вычислений ресурсы выделяются не с запасом, а динамически — ровно столько, сколько требуется для поддержки приложения. С потребителей снимаются заботы по управлению конфигурацией кластера, настройке ОС и СУБД. Инфраструктура, требуемая для запуска приложения, предоставляется пользователям на более высоком уровне абстракции, что, конечно, не означает отсутствия физического сервера. Такая модель обеспечивает гибкость при создании, развертывании и запуске программ, что позволяет разработчикам сосредоточиться на бизнес-логике своего приложения, а не тратить время на управление ресурсами и масштабирование.
Интерес к бессерверным вычислениям существовал и до нынешнего экономического спада, однако именно сейчас требуются принципиально новые способы взаимодействия с клиентами. Люди проводят больше времени дома, меняют свои привычки, в том числе пересматривают статьи расходов — изменение потребительского поведения, по разным подсчетам, может стоить традиционным компаниям до трех триллионов долларов ежегодных недополученных доходов. Существенно сократился совокупный объем продаж в отраслях, работающих с конечными покупателями. Выходом из сложившегося положения могут стать цифровые технологии, позволяющие построить отношения с потребителем на основе точного понимания индивидуальных запросов. Главным фактором получения прибыли становится способность компании «слышать» своего клиента, понимать его текущие и перспективные потребности и быстро реагировать на изменения.
Минула эпоха, когда от бренда требовалось лишь готовое законченное решение. В постковидную эру компаниям нужно уметь немедленно удовлетворять потребительский импульс — времени нет ни на создание с нуля нового приложения, ни на настройку среды выполнения сервиса в облаке для соответствия текущим условиям бизнеса. Да и сама настройка теперь уже заключается не в простом соединении нескольких хостов для масштабирования нагрузок, а в переориентации всей инфраструктуры на меняющийся контент.
Бессерверная модель — «функция как сервис» (FaaS) — предполагает создание, запуск и управление приложениями, собранными из нескольких функций, представляющих собой одноцелевые блоки кода. Функции инициируются в случае наступления определенных событий, а не выполняются постоянно, что упрощает процесс масштабирования по запросу и не требует каких-либо дополнительных настроек. В бессерверной архитектуре код пишется для работы с конкретной бизнес-логикой и загружается в облака, а провайдер берет на себя решение всех вопросов поддержки его выполнения: управление виртуальными машинами, хранение контента, балансировку потоков — в традиционной архитектуре все это было частью кода приложения. Таким образом, бизнесу предоставляется так необходимая ему сегодня гибкость при создании новых бизнес-моделей, позволяющих реагировать на запросы клиентов. Оплата ресурсов при этом осуществляется строго по факту их потребления, что позволяет существенно экономить.
Однако бессерверная архитектура подходит не для всех приложений. Облака только внешне одинаковы: создание бессерверных функций на одной платформе может затруднить переход на другую, а при миграции, скорее всего, потребуется изменение ПО. Сложно интегрировать бессерверный код в собственные конвейеры разработки и тестирования, поэтому при инвестировании в бессерверную платформу полезно убедиться в том, что у провайдера имеется все, что нужно для поддержки конкретного приложения. В бессерверной архитектуре доступны варианты с открытым исходным кодом, но пока на рынке доминируют крупные коммерческие облачные провайдеры.
Поскольку бессерверные конфигурации контролируются провайдером, у пользователя нет средств влияния на общую инфраструктуру. Кроме того, существует вероятность того, что на код могут воздействововать функции соседних приложений, генерирующих более высокую нагрузку, а это создает угрозу безопасности.
Архитектура FaaS основана на событиях, что влечет дополнительную проблему — необходимость холодного запуска. После периода бездействия для ответа на событие бессерверному коду может потребоваться время для раскрутки. Кроме того, функция не сохраняет данных о состоянии ее ранее запущенных экземпляров, что усложняет сбор данных для отладки.
Как бы то ни было, время универсальных монолитных решений и «забетонированных» бизнес-процессов ушло — сегодня бизнес должен быть готов к разным сценариям, уметь оперативно собирать из отдельных функций приложения для удовлетворения запросов конкретного клиента. Облака, мультимодельные среды, бессерверные вычисления позволяют быстро завести соответствующий проект и не тратить ресурсы на поддержку вспомогательных инфраструктур.
Для ИТ-индустрии 2020-й стал годом, плотно упакованным историческими событиями, которых вполне хватило бы на несколько лет: историческая пандемия, исторические социальные движения, исторические климатические катастрофы, исторические выборы, исторические технологические прорывы, среди которых и бессерверные вычисления. Безусловно, ковидный кризис оказался сложным вызовом, но нельзя не отметить, что он привнес ускорение в процессы цифровизации и сделал ИТ незаменимыми — помогающими выжить в новой реальности, в которой «все удаленное» быстро становится нормой.
Дмитрий Волков
DOI: 10.51793/OS.2021.57.70.004