Колонки

Экономия и скорость: какая выгода от бессерверных вычислений при разработке приложений

Колонки
Антон Черноусов
Антон Черноусов

Developer Advocate Yandex.Cloud

Ирина Печёрская

Антон Черноусов, Developer Advocate облачной платформы Yandex.Cloud, рассказал, что такое бессерверные вычисления и как они помогают бизнесу эффективнее тратить ресурсы на разработку, масштабирование веб-приложений и ИТ-штат.

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

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

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

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

Что такое serverless? Виртуальная машина создается автоматически для выполнения нового запроса (вызова функции). Запрос выполнен ― созданный объект уничтожен. Это позволяет автоматически масштабировать приложение и получить отказоустойчивое решение. Если нагрузка на приложение растет (пользователей становится больше), разработчику в вашей компании не придется поднимать виртуальные машины, работать с балансировкой, ведь появляются автоматические новые функции, которые выполняются параллельно.

 

Оплата только за потребляемые ресурсы

При традиционной «железной» инфраструктуре или традиционном облачном подходе компания платит за неизрасходованные ресурсы в течение времени функционирования приложения. С бессерверным подходом можно платить только за те ресурсы, которые вы потребляете, то есть за количество запросов на функции и время, которое нужно для выполнения кода. Помимо того, что оплата за динамически меняющиеся мощности становится динамической, закупка и обслуживание оборудования также остается на облачном провайдере.

Все сервисы и компании, связанные с релокацией, на одной карте

Кейс Auto.ru

Auto.ru решил организовать проект «Большой экзамен ПДД» — онлайн-тест для пешеходов и водителей. У компании есть основной сайт, но новый сервис решили запустить отдельно, за этим обратились к компании-разработчику foobar.engineering.

Изначально рассчитывалось, что сайт будет испытывать высокую нагрузку, когда в онлайн-тесте массово начнут участвовать пользователи. Важно было, чтобы сервис автоматически масштабировался и не зависел от серверов. Для разработки выбрали serverless-технологии, которые помогли разработчикам (их было всего двое) сосредоточиться на коде. 

Они не думали о настройке и поддержке серверов с приложением, о настройке СУБД. К тому же платили только за те ресурсы, которые потребили в итоге. Приложение выдержало пиковые нагрузки — в итоге более 100 тыс. людей успешно проверили себя в тестировании.

 

Сокращение времени разработки 

При использовании serverless-подхода может увеличиться и скорость разработки приложения. Разработчики быстрее напишут основные функции, если получат возможность в сжатые сроки развертывать типы функций (базы данных, аутентификация, хранилище, API-интерфейсы), которые традиционны для большинства приложений. Если сокращается время разработки, то и сокращаются затраты на нее.

 

Ограниченная потребность в DevOps-компетенции

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

Кейс Genotek

Genotek оказывает услуги по исследованию человеческого генома. Для своих пользователей центр решил создать новые сервис по созданию генеалогических деревьев в личном кабинете. Компания технологическая, в ней работают и целые команды профильных ИТ-специалистов. Однако в основе нового сервиса был поиск родственника пользователя по его генетическим данным, поэтому разработкой занялись биоинформатики. 

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

 

Облегчение процесса разработки

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

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

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

Для кого актуален serverless-подход прежде всего? Наиболее яркий экономический эффект получит бизнес, который занимается разработкой приложений с пиковыми нерегулярными нагрузками. Разработку на функциях можно использовать для выпуска дополнительных продуктов: бессерверные технологии помогают ускорить time-to-market. Также сервисы экосистемы serverless дают возможности для трансформации существующих продуктов, ранее реализованных в монолитной архитектуре.

Фото на обложке: pogonici/shutterstock.com

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Для каких сфер бизнеса облачные технологии особенно актуальны
  2. 2 3 этапа, которые нельзя обойти при разработке приложения
  3. 3 Как заработать на мобильном стартапе: грамотный подход к созданию и продвижению приложений
RB в Telegram
Больше полезного контента в Telegram
Подписывайтесь!