Определение пригодности бессерверных вычислений для удовлетворения потребностей бизнеса

Завершено

Чтобы помочь вам разобраться, нужно ли применять бессерверные вычисления, сначала мы дадим вам общие сведения об этой концепции.

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

Бессерверные вычисления — это функция как услуга (FaaS) или микрослужба, размещенная на облачной платформе. Бизнес-логика выполняется в формате функций, а значит вам не нужно вручную подготавливать или масштабировать инфраструктуру. Все управление инфраструктурой берет на себя поставщик облачных служб. Приложение автоматически масштабируется вверх или вниз в зависимости от нагрузки. Azure предлагает несколько способов создать архитектуру такого рода. Двумя наиболее распространенными подходами являются Azure Logic Apps и Функции Azure, которые являются фокусом этого модуля.

Что такое Функции Azure?

Функции Azure — это бессерверная платформа приложений. Они позволяют разработчикам внедрять бизнес-логику, которая может выполняться без подготовки инфраструктуры. Функции Azure обеспечивает встроенную масштабируемость и взимается плата только за используемые ресурсы. Код функции можно написать на выбранном языке, включая C#, Java, JavaScript, Python и PowerShell. Поддержка диспетчеров пакетов, таких как NuGet и npm, также включена, поэтому в бизнес-логике можно использовать популярные библиотеки.

Преимущества решения на основе бессерверных вычислений

Бессерверные вычисления — это отличный вариант для размещения кода бизнес-логики в облаке. Бессерверные службы, например Функции Azure, позволяют создавать бизнес-логику на любом удобном для вас языке. Вы получаете автоматическое масштабирование, у вас нет серверов для управления, и плата взимается на основе того, что используется, а не в зарезервированное время. Ниже приведены некоторые другие характеристики бессерверного решения.

Отсутствие избыточного выделения инфраструктуры

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

Логика без отслеживания состояния

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

Управление событиями

Функции управляются событиями. Они выполняются только в ответ на событие (называемое триггером), например получение HTTP-запроса или сообщение, добавляемое в очередь. Триггеры настраиваются в определении функции. Такой подход значительно упрощает базу кода, позволяя объявлять только источники данных (триггер/входная привязка) и точку назначения (выходная привязка). Вам не придется писать собственный код для работы с очередями, большими двоичными объектами, концентраторами и т. д. Остается лишь создать бизнес-логику.

Функции можно использовать в традиционных вычислительных средах

Функции являются ключевым компонентом бессерверных вычислений, но одновременно они выполняют роль вычислительной платформы для выполнения кода любого типа. Если необходимо изменить приложение, вы можете взять проект и развернуть его в бессерверной среде. Это обеспечивает гибкость в управлении масштабированием, запуском в виртуальных сетях и даже полностью изоляцией функций.

Недостатки решения на основе бессерверных вычислений

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

Время выполнения

По умолчанию функции используют время ожидания пять (5) минут. Его можно увеличить, но не более чем до 10 минут. Если выполнение функции занимает больше 10 минут, ее можно разместить на виртуальной машине. Кроме того, если ваша служба запускается по HTTP-запросу и вы рассчитываете получить HTTP-ответ, время ожидания ограничивается 2,5 минутами. Существует дополнительная возможность создать устойчивые функции, чтобы оркестрировать выполнение нескольких функций без ограничения по времени ожидания.

Частота выполнения

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

При масштабировании функции можно создавать только один экземпляр приложения-функции каждые 10 секунд до 200 общих экземпляров. Помните, что каждый экземпляр может обслуживать несколько одновременных выполнений, то есть нет ограничений на объем трафика, который может обработать каждый экземпляр. Разные типы триггеров имеют разные требования к масштабированию. Изучите выбранный триггер и связанные с ним ограничения.