Бессерверные вычисления: почему их использует всё больше компаний
Как получить безопасную, отказоустойчивую, легко масштабируемую среду для запуска кода без больших финансовых вложений? Один из способов — создать эту среду на базе платформенных облачных сервисов с поддержкой бессерверных вычислений (serverless computing). Так вам не придется думать об обслуживании ИТ-инфраструктуры и поиске узкоспециализированных сотрудников. Вычислительные ресурсы будут масштабироваться автоматически, по мере роста или снижения нагрузок. Рассмотрим эту модель PaaS-услуг подробно.
Что такое бессерверные вычисления
Бессерверные вычисления или serverless computing — метод предоставления серверных ресурсов, при котором пользователь удалённо получает упрощённую среду для программирования. В ней можно писать и развёртывать код, не беспокоясь о базовой инфраструктуре. Особенность бессерверных вычислений в том, что вычислительные ресурсы в облаке предоставляются автоматически, в том объёме, который нужен для выполнения конкретной задачи. Под ресурсами подразумеваются не только серверы, но и системы хранения, сети, ПО, платформенные сервисы.
Пусть вас не смущает слово «бессерверный», скрипты запускаются на серверах. Отличие в том, что разработчик не контролирует процесс. Администрированием и обслуживанием инфраструктуры занимается провайдер облачных услуг. В его задачи входит подготовить, масштабировать и администрировать инфраструктуру, необходимую для выполнения кода, а также обеспечить её безопасность.
Облако автоматически распределяет ресурсы между заказчиками, предоставляя каждому нужный объём мощностей или сервисов. Благодаря этому разработчик может сосредоточиться на бизнес-логике, ускорить выход продуктов на рынок и повысить их рентабельность. А компания — оптимизировать ресурсы и выделить время на внедрении инноваций.
Как правило, бессерверные вычисления предлагают провайдеры облачных услуг. Среди крупных поставщиков: Amazon AWS (AWS Lambda), Microsoft (Azure Functions), Google Cloud Platform (Cloud Functions) и IBM Cloud (Apache OpenWhisk).
В чем разница между PaaS и бессерверными вычислениями
Бессерверная архитектура во многом похожа на традиционную PaaS, но между ними есть важные различия.
- PaaS, или платформа как услуга, подразумевает доступ к облачной среде, в которой можно создавать и запускать приложения. Поддержкой ИТ-инфраструктуры занимается облачный провайдер, что даёт разработчику больше возможностей. Например, можно создавать полностью настраиваемые приложения и при этом не выстраивать архитектуру, не думать о совместимости оборудования и ПО, не получать лицензии. Меньше управленческих обязанностей — больше внимания развитию. Среди других плюсов PaaS — простая и экономичная разработка, лёгкость масштабирования, высокая степень автоматизации.
- Бессерверные вычисления — это разновидность PaaS. Главное отличие в том, что мощности для обработки запроса выделяются автоматически, в ответ на событие. Если PaaS позволяет контролировать изменения в приложениях, которые созданы в этой среде, то бессерверные вычисления практически лишают разработчика такой возможности. Тем, для кого принципиальна высокая степень контроля, стоит выбрать PaaS.
Как устроены бессерверные вычисления
Поставщик облачных услуг выделяет вычислительные ресурсы и хранилище данных для выполнения определенного фрагмента кода. Когда появляется запрос от пользователя, на сервере создаются контейнеры с готовым окружением. Под каждое событие разворачивается отдельный контейнер, их количество растёт и сокращается автоматически.
Спустя какое-то время после выполнения запроса контейнер уничтожается. Когда это будет, выбирает поставщик облачного сервиса. Благодаря такой структуре, вычислительные ресурсы автоматически увеличиваются или уменьшаются в зависимости от пользовательской нагрузки. Гибкий подход упрощает работу в облаке.
Бессерверная архитектура включает в себя сервисы FaaS и BaaS:
- FaaS — функция или фреймворк как услуга. Провайдер предоставляет всё необходимое для создания и запуска кода, предлагая это как единый автоматизированный сервис.
- BaaS — бэкэнд как услуга. Эта модель позволяет разработчикам связывать приложения с серверным облачным хранилищем.
Какие задачи выполняют serverless computing
Простота в использовании, экономия, гибкость и масштабируемость бессерверных приложений позволяет одинаково эффективно решать задачи и внутренней ИТ-системы, и приложения с миллионом пользователей. То есть, они нужны везде, где требуется оптимизировать бизнес-процессы, ускорить вывод продукта на рынок, быстро обработать данные.
Бессерверные вычисления упрощают работу в облаке. Компаниям больше не нужно нанимать узких специалистов, чтобы управлять облачной инфраструктурой. Время вывода продуктов на рынок сокращается, поскольку разработчик не беспокоится об управлении сложной инфраструктурой.
Что ещё можно сделать с помощью бессерверных вычислений:
- Уменьшить время простоя ресурсов при непостоянной нагрузке. Бессерверные вычисления предоставляют столько вычислительных мощностей, сколько нужно в конкретный момент.
- Сэкономить средства. Пользователь платит только за время использования инфраструктуры.
- Обеспечить соблюдение стандартов безопасности. За безопасность инфраструктуры отвечает провайдер облачного сервиса.
Где используются бессерверные вычисления
Бессерверные вычисления подходят большинству компаний. На сегодняшний день они применяются во многих сферах: ритейл, финансы, медиа, медицина, социальные сети.
Эту модель выбирают такие крупные цифровые компании как Facebook, Slack, Zoom, Netflix, Amazon. Например, Netflix использует сервис AWS Lambda, который разбивает видео на фрагменты и кодирует их в 60 параллельных потоков. Благодаря этому Netflix может обеспечивать стабильные трансляции 167 млн. подписчикам по всему миру.
В первую очередь бессерверную инфраструктуру используют в разработке ПО, для анализа больших данных или для проектов с участием искусственного интеллекта.