А чтобы приложение полноценно функционировало, помимо разработки, требовалось потратить время на установку, конфигурацию и подключение всевозможных компонентов решения, не говоря о выполнении регулярных обновлений ОС и обеспечении безопасности. Хотя управление серверами – прямая обязанность системного инженера, эти задачи зачастую ложились на плечи разработчиков. Но с появлением облака многое изменилось: теперь в приоритете бессерверный подход. О том, что это такое и как здесь помогает облако, расскажем далее.
Особенности разработки ПО
Знаете ли вы, в чем заключается основная задача инженера-программиста? В том, чтобы доставлять ценность и писать действительно полезные приложения, а не заниматься вопросами доставки решений. Ведь время, уделяемое развертыванию ПО и управлению серверами, можно потратить на доработку новых функций или улучшение приложения. К тому же, когда у разработчика возникают новые идеи, хочется заниматься профильными задачами, а не настройкой инфраструктуры. И тут на помощь приходят облачные технологии, которые позволяют избавиться от рутинных задач и сосредоточиться на главном.
От физических серверов к облаку
За последние десятилетия облачные технологии заметно продвинулись и улучшились. Изменения произошли на уровне сети и платформы, а также затронули операционные системы и приложения. То, с чем приходится работать сейчас, практически потеряло сходство с тем, что было ранее. Вспомним 90-е годы: для запуска сервисов разработчики использовали физические серверы, а процесс установки ОС и приложений, включая настройку и конфигурацию, занимал много времени. И если возникала необходимость масштабировать физические серверы, процедура обходилась довольно дорого. Это не могло продолжаться вечно – перемены были неизбежны.
И действительно, появились виртуальные машины и гипервизор, которые помогли сократить время, затрачиваемое на создание новой вычислительной единицы, до нескольких минут, а с появлением контейнеров – и вовсе до считанных секунд. Параллельно развился и созрел DevOps, что привело к еще большему распространению провайдеров и IaaS (инфраструктуры как услуги) и PaaS (платформы как услуги). Теперь клиенты делегируют решение задач провайдерам, освобождая себя от проблем с серверами, установкой ПО и многого другого. А если в ходе работы приложению потребуется больше ресурсов, их всегда можно нарастить буквально в несколько кликов.
Особенности serverless-подхода
Следующий значительный шаг в облачном подходе связан с появлением в обиходе термина «бессерверный», который, по сути, представляет собой «функцию как услугу» (FaaS).
Концепция serverless не означает, что серверы больше не используются, а говорит о том, что разработчикам больше не нужно думать об инфраструктуре и серверной составляющей. Теперь вычислительные ресурсы используются как сервисы без необходимости управления физическими мощностями.
С другой стороны, serverless – это подход к разработке программного обеспечения, целью которого является устранение необходимости управления инфраструктурой путем:
- Использования функции как услуги для выполнения кода.
- Использования внешних служб и API (сторонних продуктов, предоставляемых по модели SaaS).
Сегодня существует множество таких сторонних решений: API, которые обрабатывают онлайн-платежи, электронную почту, пользовательскую аналитику, измеряют качество кода, управляют контентом, обеспечивают непрерывную интеграцию и решают другие задачи. Serverless-подход позволяет не тратить временные ресурсы на администрирование инфраструктуры и обслуживание серверов, а сосредоточиться на более важных задачах.
аким образом, serverless или FaaS – это важный шаг на пути делегирования инфраструктурных задач сервис-провайдерам, благодаря чему организации могут сосредоточиться на решении приоритетных вопросов. Такой подход благоприятно сказывается на развитии бизнеса и способствует повышению потенциала любой компании.
Текст подготовлен с использованием материала Cloud Zone