Облачные решения перевернули саму философию управления приложениями. Серверы стали виртуальными, но что если исключить и их? Мы получим новый бессерверный подход к операциям, со всеми его преимуществами и заметными ограничениями.
Бессерверные или serverless-технологии — один из перспективных трендов в мире облачных вычислений. По прогнозам, к 2025 году более 75% организаций будут активно использовать бессерверные технологии при создании новых приложений. И это неудивительно, ведь такой подход позволяет экономить до 80% на инфраструктурных издержках, значительно ускорять разработку программного обеспечения и масштабировать его практически мгновенно.
Что такое бессерверные или serverless-вычисления?
Serverless (бессерверные) вычисления — это модель предоставления серверных услуг без аренды или покупки оборудования. Все вычисления по-прежнему выполняют серверы, однако их настройками и обслуживанием занимается провайдер.
Разницу проще объяснить с помощью аналогии. Допустим, нам нужно накормить гостей. Можно приготовить все самостоятельно или нанять кейтеринг.
Если мы готовим самостоятельно, это можно сравнить с традиционными облачными решениями. У нас есть оборудование (серверы), меню (приложения) и сама готовка (запуск программного обеспечения). Мы полностью контролируем процесс, но это требует большей подготовки и работы. Ну и кухня входит в квартплату, хотя пользуемся ей не всегда.
Кейтеринг — это как бессерверные вычисления. Мы связываемся с нужной компанией и говорим, чем хотим угостить гостей. Остальное на совести подрядчика. Мы даже не видим, как еду готовят и сколько понадобилось поваров, важен только результат.
Serverless развивает идеи виртуализации, как и другие итерации IaaS-технологии. В традиционной модели IaaS клиент сам запускает и поддерживает работу виртуальных серверов. При использовании serverless-подхода разработчику достаточно загрузить код функций в облако. А масштабирование, балансировку нагрузки, обеспечение отказоустойчивости и доступности берет на себя провайдер услуг. В случае с бессерверными вычислениями речь идет о предоставлении сервисов в виде функций — Function as a Service (FaaS).
Популярные примеры serverless сервисов — это AWS Lambda, Azure Functions и Google Cloud Functions. С их помощью можно создавать backend для веб- и мобильных приложений, организовывать обработку данных, реализовывать интеграции между сервисами и многое другое.
Бессерверные вычисления устраняют большую часть трудностей управления инфраструктурой и масштабирования, а также позволяет разработчикам сосредоточиться на логике приложений.
Почему serverless-подход становится так популярен?
Исследователи уровня Gartner, Ipsos и IDC выделяют три ключевых фактора, повлиявших на популярность serverless-решений.
1. Экономия на инфраструктуре
Иногда при использовании традиционных IaaS/PaaS-сервисов клиент оплачивает выделенные серверные мощности даже во время их простоя. С serverless клиент платит исключительно за фактическое время выполнения кода в секундах или миллисекундах, что позволяет экономить до 80% средств.
Такая модель называется Pay as you go, или «оплата по мере потребления». Однако она не эксклюзивна для serverless-решений. Все больше IaaS/PaaS-сервисов предлагают клиентам Pay as you go.
2. Быстрая разработка
Администраторы, SRE и DevOps-инженеры экономят время на настройке и администрировании инфраструктуры. Команда может быстро запустить код в рабочую среду без традиционных этапов подготовки и настройки сервера. Это ускоряет цикл разработки, обеспечивая более быструю доставку функций и улучшений. Так цикл создания ПО сокращается в 3–5 раз.
При этом использование serverless не означает, что можно совсем забыть об инфраструктуре. Архитектура, проектирование функций и их взаимодействие все еще крайне важно.
3. Масштабирование
Как правило, бессерверные архитектуры автоматически масштабируются в соответствии с потребностями приложения. При резком увеличении нагрузки бессерверная платформа мгновенно выделит больше ресурсов для обработки и аналогичным образом уменьшит масштаб при снижении спроса. Такая эластичность устраняет необходимость в ручном масштабировании и планировании емкости.
Преимущества бессерверных вычислений сделали технологию привлекательным выбором для многих компаний. Особенно для тех, кто стремится оптимизировать расходы, повысить эффективность и сохранить конкурентоспособность...