Бессерверные вычисления: Что стоит за современной облачной моделью?

Это касается не только частных приложений: корпоративные цифровые решения все больше переходят на облачные технологии. Несколько провайдеров запустили интересные и перспективные сервисные решения, хотя многие из них трудно описать и отличить. Это относится к бессерверным вычислениям — очень недавней разработке, которую эксперты также называют «функция как услуга» (FaaS). Хотя из названия, казалось бы, следует, что облачные структуры не имеют серверов, это не так. Ниже мы подробнее рассмотрим эту технологию.

Что означает концепция бессерверных вычислений?

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

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

Примечание:

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

Как работают бессерверные вычисления?

Управление аппаратным обеспечением со стороны провайдера — это ключ к бессерверной архитектуре. Единственная задача для пользователей — интегрировать свое программное обеспечение, включая соответствующие функции, в арендуемые облачные структуры. Эти функции могут быть вызваны:

  • асинхронно через события
  • или синхронно, на основе классической модели клиент-сервер.

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

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

Обзор преимуществ и недостатков бессерверной архитектуры

Хотя классические облачные инфраструктуры позволяют пользователям передать на аутсорсинг необходимое оборудование, они часто требуют много административной работы и микроменеджмента. Бессерверные вычислительные сервисы призваны минимизировать эту нагрузку.

В таблице ниже приведены другие преимущества и недостатки концепции бессерверных вычислений:

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

Бессерверные вычисления на практике: Когда применяется принцип бессерверных вычислений?

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

  • API-прокси: Многие устаревшие бизнес-приложения имеют сложные, громоздкие API (программные интерфейсы). С помощью бессерверной архитектуры и правильного API-шлюза можно создать альтернативный уровень абстракции, позволяющий обращаться к этим приложениям через REST API, что упрощает доступ к ним для других систем.
  • Бессерверный бэкенд: Все больше компаний используют бессерверные вычисления для создания и запуска всего бэкенда приложений в облаке. Такие сценарии обычно называются «бэкенд как услуга» (Backend-as-a-service, BaaS).
  • Обработка (не)структурированных данных: Современный деловой мир немыслим без Больших Данных. Бессерверная инфраструктура оказывается мощным инструментом для обработки больших данных, т.е. структурированных (JSON, XML и т.д.) или неструктурированных данных (изображения, аудио и т.д.), включая перекодирование, перемещение, комбинирование или манипулирование.
  • Выполнение запланированных задач: В большинстве случаев функции выполняются не только по событиям, но и по заданному расписанию. Например, вы можете очищать базы данных или автоматически генерировать резервные копии.
  • Внедрение языковых помощников и чат-ботов: Бессерверная технология идеально подходит для интеграции цифровых языковых ассистентов и чат-ботов.

Оцените статью
cdelat.ru
Добавить комментарий