Serverless в 2023 году: кому, зачем и для чего?

Антон Черноусов, Developer Advocate Yandex Cloud, рассказал GlobalCIO, почему бессерверные вычисления покоряют мировой рынок облаков, как они снижают операционные расходы и помогают развивать бизнес независимо от размера и направления деятельности компании.

Антон ЧерноусовКак изменился спрос на serverless в 2022 году? Какие факторы оказали ключевое воздействие?

Если говорить о мировом рынке serverless, то он быстро растет: по прогнозам исследования Mordor Intelligence, за период с 2021 года по 2026 год его объем увеличится на 23%. А отчет мониторинговой компании Datadog показывает, что более 50% клиентов крупнейших облачных провайдеров уже используют бессерверные вычисления. У лидера мирового рынка облачных услуг компании AWS доля клиентов, использующих serverless совместно с другими решениями, превысила 70%. По прогнозам Expert Market Research, распространению бессерверных вычислений будет способствовать и курс бизнеса на устойчивое развитие, в частности отказ от использования ИТ-оборудования и повышение энергоэффективности. Serverless помогает компаниям достигать ESG-целей за счет снижения общего углеродного следа. 

С российским рынком serverless все немного сложнее. Он находится на начальном этапе развития, и до 2022 года его объем в России не измерялся. Мы, возможно, первый российский облачный провайдер, который его замерил. Согласно данным за первое полугодие 2022 года, доля крупных платящих клиентов Yandex Cloud, использующих инструменты serverless-разработки, составляет 15%.

Для технологии, еще вчера находящейся в стадии early adopters, это очень неплохой показатель. При этом темпы роста бессерверных вычислений в России в 2022 году, возможно, были самыми высокими в мире. Количество обработанных запросов в serverless-сервисах Yandex Cloud в III квартале 2022 года увеличилось на 710% по сравнению с аналогичным периодом 2021 года.

Такой рост связан с развитием serverless-сервисов и миграцией российских компаний (использующих бессерверные вычисления) из зарубежных облаков в локальные.

Каков уровень зрелости serverless-комьюнити в России?

Я предлагаю разделить ответ на этот вопрос на три части. Есть ли serverless-разработчики в России? Да, есть, в основном это разработчики сервисов, библиотек и приложений – мы, со своей стороны, таких специалистов всячески поддерживаем. Это комьюнити, где специалисты общаются и где новичок в области serverless может получить некоммерческую поддержку.

Есть ли в России коммерческие разработчики serverless-сервисов? Крупные компании и стартапы ведут внутренние serverless-разработки. Коммерческих продуктов для рынка пока не видно. Это перспективная рыночная ниша, но ее только начинают осваивать.

И наконец, третий аспект вопроса. Зрелое комьюнити разработчиков формируется не только вокруг общих потребностей и интересов, но и вокруг совместной деятельности по развитию какого-то стека софтверных технологий. Пример зрелого комьюнити – разработчики PostgreSQL. Они много лет успешно развивают эту СУБД. До такой стадии зрелости наше serverless-комьюнити еще не доросло.

Почему Serverless – новая парадигма разработки ПО?

Serverless-разработку можно назвать результатом эволюции в области программирования. Она началась с написания кода для мэйнфреймов и спустя годы привела нас к serverless.

Бессерверные вычисления меняют устоявшуюся в компаниях совокупность DevOps-практик и стирают грань между разработкой и эксплуатацией. Это помогает бизнесу быстрее масштабироваться и запускать новые продукты.

Второй, неочевидный момент – serverless-разработка улучшает качество кода. Оценить качество приложения, разработанного классическим способом, можно лишь спустя какое-то время после запуска. И только после этого начать оптимизацию. Качество кода в serverless-разработке мы видим сразу. В некотором смысле, чем меньше счет от облачного провайдера за аренду вычислительных мощностей, тем лучше код. Все очень наглядно.

Для решения каких задач лучше использовать serverless? В каких случаях эти технологии не так эффективны?

Бессерверные вычисления лучше всего подходят для кейсов с неравномерными нагрузками, с пиками потребления. Там, где их применение обеспечивает эффективное управление затратами и более дешевую обработку данных. Исходя из этого, можно выделить такие сценарии применения serverless:

  • Оптимизация управления облаком. Serverless позволяет не только автоматизировать управление облачными ресурсами, но и перейти к практикам FinOps – управлению затратами на облако на основе анализа больших данных и потребностей бизнеса. Например, можно регулировать количество виртуальных серверов, чтобы счет от облачного провайдера не превысил плановых значений.

  • Подключение телеграм-ботов для мониторинга состояния информационных систем. Это удобная и востребованная функция для ИТ-подразделения любого бизнеса.

  • Сбор данных с IoT-устройств – потребительских (умные часы, весы, чайники, датчики движения и света в домах и пр.) и индустриальных (метеодатчики, системы безопасности объектов, умные фермы и теплицы и пр.). Как правило, данные с IoT-приборов собираются и отправляются в облако в определенное время. В остальное время умные приборы «спят».

  • Отработка пиковых нагрузок на ИТ-инфраструктуру. Актуально для интернет-магазинов и сервисов доставки, для которых характерны всплески спроса. Например, во время распродаж и накануне праздников, хотя, скорее всего, в такого типа бизнесах и системах имеется неснижаемый минимальный уровень используемых ресурсов.

  • Тестирование маркетинговых теорий и создание и вывод на рынок MVP (минимально жизнеспособный продукт). Serverless эффективен, когда нужно создать что-то новое с непредсказуемым результатом и иметь возможность ошибаться быстро и дешево. Это то, что нужно стартап-индустрии.

При постоянной высокой нагрузке на вычислительные мощности и системы хранения данных serverless-технологии менее эффективны. Таким образом, это не лучший выбор для машинного обучения, процессинга в банках, мониторинга объектов критической инфраструктуры и производства в режиме real-time, управления транспортом – хотя бессерверные вычисления вполне подходят для реализации систем сбора, накопления и обработки метрик.

Приведите примеры использования бессерверных технологий российскими компаниями.

Интересный пример из нашей практики – внутренний FoodTech-стартап крупнейшей российской розничной торговой сети. С помощью serverless компания «Много лосося» реализовала 3PL-доставку (вызов курьера по запросу) из своих dark kitchen, доля которой составляет примерно 15% от всех заказов. На первый взгляд, это немного, но такая доставка используется в пиковые часы (обеденное и вечернее время), когда агрегаторы служб доставки и собственные курьеры очень загружены. Таким образом, задержки заказов сводятся к минимуму, а удовлетворенность клиентов заметно растет.

Другой пример – кейс в сфере EdTech компании «Яндекс Практикум», которая помогла получить цифровые специальности более 30 000 студентам. Один из инструментов, используемый при обучении, – онлайн-тренажер. Это настроенные в Yandex Cloud serverless-контейнеры со всем необходимым окружением и библиотеками, позволяющие будущим программистам выполнять задания прямо в браузере и не зависеть от возможностей их собственных компьютеров.

После нескольких экспериментов команда разработчиков «Яндекс Практикум» пришла к выводу, что serverless – это оптимальное решение для тренажера. На него ложится очень неравномерная нагрузка, так как большинство студентов обучаются вечером, после работы. Кроме того, с внедрением бессерверной архитектуры компания раз и навсегда решила проблемы с автомасштабированием облачных ресурсов. Это снизило стоимость требуемых вычислительных мощностей почти в 10 раз.

Каковы типичные ошибки применения Serverless?

Serverless, особенно в России, это новая история. Поэтому часто встречаются ошибки первого погружения в технологию. Я бы выделил следующие.

Ошибка «холодного старта» – ввод сложной, нагруженной функции без учета времени, требуемого на ее запуск и разделение на контейнеры. Выбор языка программирования с медленным run time (в конкретном облаке). Использование serverless-приложений для постоянных нагрузок. Такие приложения будут работать, но экономически это неэффективно. Отсутствие цикла CI/CD и тестовых стендов при разработке serverless-приложений.

Отдельно можно выделить финансовые ошибки. Некорректное выделение квот, например, без учета потенциальной нагрузки на триггеры. Начиная использовать бессерверные вычисления, разработчики часто забывают следить за этим параметром, и запросы пользователей при достижении лимита не обрабатываются. Это впустую потраченные деньги.

Еще одна финансовая ошибка – отсутствие «алертинга» – лимитов и границ отсечения активных облачных ресурсов, что снова возвращает нас к необходимости внедрения FinOps-практик в разработке и обслуживании облачных решений.

Каковы перспективы развития бессерверных технологий? Какие факторы оказывают на него влияние?

Большое количество компаний уже строят свои ИТ-системы в микросервисной архитектуре, опираясь на контейнеры в Docker и Kubernetes. Характер работы таких приложений во многих сценариях бывает неравномерным, а это именно те кейсы, где бессерверные вычисления наиболее эффективны. Уверен, что в ближайшие пару лет компании начнут использовать бессерверные вычисления в качестве альтернативы или дополнения к контейнерам и микросервисам.

Зачем это бизнесу? На первом этапе существенно снизятся затраты на эксплуатацию приложений. В дальнейшем такой подход упростит и удешевит их масштабирование, повысит уровень информационной безопасности и сделает проще интеграцию приложений со сторонними сервисами.

1723
Предметная область
Отрасль
Управление
Мы используем файлы cookie в аналитических целях и для того, чтобы обеспечить вам наилучшие впечатления от работы с нашим сайтом. Заходя на сайт, вы соглашаетесь с Политикой использования файлов cookie.