Бессерверные вычисления: что это за технология и кому она нужна
Статья
Время чтения
6 минут
По расчётам Gartner, к 2025 году более 50% крупных компаний будут использовать бессерверные функции как сервис (FaaS) по сравнению с 20% сегодня.
Serverless уже упрощает жизнь бизнеса, помогает в цифровой трансформации и экономит бюджет. FaaS используют при создании чат-ботов, виртуальных помощников и обработке медиаконтента, а также в качестве бэкенда для интерактивных сайтов. Рассказываем, что это за технология и почему к ней прибегает всё больше компаний.
В чем суть Serverless
Бессерверные вычисления (Serverless Computing) — это модель предоставления серверных услуг без аренды или покупки оборудования.
При таком подходе управлением ресурсами инфраструктуры, её настройкой и обслуживанием занимается провайдер. Он заботится о конфигурации физических серверов, их производительности, количестве CPU и RAM. А что тогда делает пользователь? Он может сконцентрироваться на разработке продукта и развернуть код, используя уже готовые вычислительные ресурсы.
Не стоит воспринимать термин «бессерверные вычисления» буквально. На самом деле без виртуальных серверов не обойтись, в любом случае вычисления происходят с их помощью. Здесь речь идёт не об отказе от «железа», а о новом подходе к предоставлению сервисов в виде функций. Этот сервис называется FaaS (функция как сервис). Пользователь не видит серверов при конфигурации таких функций, и именно в этом смысле инфраструктуру можно считать бессерверной (Serverless).
Как это работает. Функции предполагают разделение кода на «строительные блоки», выполняющие конкретную задачу. Эти функции запускаются в ответ на определённые события или по запросу.
Serverless работает по тому же принципу, что и домашняя система видеонаблюдения. Наверняка вы не хотите, чтобы ваши камеры записывали всё, что происходит на территории 24/7. Целесообразнее интегрировать их с датчиками движения, чтобы запись начиналась только при обнаружении подозрительной активности. Бессерверная архитектура действует так же: серверное оборудование задействуется только тогда, когда срабатывает заранее запрограммированное событие, или триггер.
Основные принципы. Модель Serverless базируется на четырёх основных принципах:
Абстрактность. Пользователь не управляет сервером, его настройками и обновлениями, а только использует его ресурсы для запуска программ.
Эластичность. Провайдер предоставляет ровно то количество вычислительных ресурсов, которое нужно для стабильной и производительной работы приложения.
Экономичность. Serverless позволяет экономить на содержании сервера и платить за ресурсы, которые на самом деле используются во время работы приложения.
Ограниченный срок. В моменты простоя приложение автоматически отключается.
Какие задачи решает Serverless
Один из принципов Serverless — ограниченный жизненный цикл функции, то есть в моменты простоя она отключается и повторно включается только при обращении к ней. Как только триггер срабатывает, функция запускается. Например, пользователь кликает на плашку на сайте. Клик в данном случае — это событие, которое запускает функцию, а функция в свою очередь генерирует ответ пользователю, например: всплывающий баннер. Такой принцип работы Serverless идеален для решения отложенных или фоновых задач:
асинхронной отправки уведомлений (push, sms, email);
импорта и экспорта данных;
работы чат-ботов и виртуальных помощников.
Уже сейчас модель Serverless успешно применяют многие компании.
Netflix — одна из крупных мировых стриминговых онлайн-платформ с 160 млн подписчиков по всему миру. Чтобы обеспечить стабильность и высокую скорость потоковой передачи данных, компания использует CDN-сети, снижающие нагрузку на центральные серверы, и Serverless-решения в виде сервиса AWS Lambda. Технология бессерверных вычислений позволяет компании делить видеоконтент на фрагменты по принципу микросервисов и кодировать их в 60 параллельных потоков. Таким образом, даже при одновременном просмотре фильма зрители могут обращаться к разным фрагментам, что может снижать суммарную нагрузку на серверы в десятки раз. Наряду с экономией на физической инфраструктуре это гарантирует стабильность доступа и легкую масштабируемость.
Преимущества и недостатки Serverless
Как и любое другое облачное решение, Serverless-модель не лишена преимуществ и недостатков. Перед принятием решения лучше взвесить все «за» и «против», учитывая конкретный запрос.
Преимущества и недостатки Serverless | |
Преимущества | Недостатки |
Для работы всегда доступно нужное количество ресурсов, которое обеспечит провайдер. | Из-за архитектурных различий облачных платформ быстро перенести Serverless-приложение на другой сервер не получится. |
Не требуется длительная и сложная настройка сервера, а также его обслуживание: эту функцию берёт на себя провайдер. | Из-за холодных стартов, связанных с простоем отдельных функций, могут появляться задержки. |
Можно экономить средства, не покупая оборудование, и платить по модели «pay as you go». | Из-за разделения приложения на модули отслеживать причины ошибок становится сложнее. |
Отсутствие жёстких связей между отдельными функциями и контейнерами снижает риск появления глобальных ошибок. | При высоком количестве запросов подход Serverless становится нерентабельным. |
Стоит ли переходить на Serverless и как выбрать поставщика
Переход на модель бессерверных вычислений подойдет не всем. Воздержаться от перехода стоит тем, кому важно самостоятельно регулировать настройки безопасности, а также тем, кто постоянно и регулярно использует сервер — в этом случае Serverless выйдет дороже.
В остальном бессерверные вычисления действительно упрощают жизнь разработчика и снижают расходы компании. Модель бессерверных вычислений применяется во многих сферах: разработке ПО, финансах, медиа, медицине, ритейле и в социальных сетях.
FunctionGraph от Cloud
Сервис FunctionGraph от Cloud позволяет размещать и запускать код в бессерверной среде. Все, что требуется от вас, — предоставить свой код и настроить условие его запуска. Как это работает? Код выполняется, когда срабатывает заданный триггер. FunctionGraph автоматически масштабирует ресурсы, обеспечивает бесперебойное функционирование кода, обслуживание серверов, мониторинг и ведение журнала логов.
FunctionGraph
Сервис позволяет размещать и запускать код в бессерверной среде по заданному триггеру. Предоставляет мониторинг и журнал логов
Узнать большеКакие задачи можно решить с FunctionGraph:
1. Создайте Telegram-бот. Настройте быструю отправку уведомлений в Telegram-bot. Например, можно организовать работу так, чтобы бот присылал вам уведомления, если потребление vCPU, памяти или диска виртуальной машины превысит заданное пороговое значение. Все подробности можно найти в инструкции и запустить такой Telegram-bot самостоятельно.
2. Настройте тиринг данных в объектном хранилище. Чтобы уменьшить затраты на хранение, вы можете настроить тиринг данных вниз — автоматически перемещать в класс с редким доступом (Warm) или на архивное хранение (Cold) данные, к которым больше не нужен частый доступ.
В некоторых сценариях редко используемые данные могут стать востребованными. Например, может вырасти спрос на игру, видеозапись, песню или книгу из электронной библиотеки. Такие объекты нужно перемещать в «горячий» класс хранения, чтобы обеспечить к ним доступ.
В инструкции описано, как с помощью FunctionGraph настроить тиринг данных вверх — автоматическое перемещение данных в «горячий» класс хранения при росте запросов к объектам.
О том, чем ещё может быть полезен FunctionGraph, рассказывает эксперт Cloud Наталия Воронова в ролике.
Что в итоге
Бессерверные вычисления — модель предоставления серверных услуг без аренды или покупки оборудования, которая помогает:
добиться высокой скорости разработки;
исключить простой оборудования;
не беспокоиться о политиках масштабирования;
платить только за реально использованные ресурсы.
Уже сейчас Serverless-технологии применяются десятками компаний и продолжают активно внедряться по всему миру.
Использование Serverless может быть эффективно во многих сферах для решения различных задач: например, для автоматизации общения с клиентами (чат-боты), отложенного сбора и обработки данных (аналитика), реализации концепции IoT и торговли. От использования Serverless-технологий каждый сможет получить свой профит.