Выбор правильных служб интеграции и автоматизации в Azure

В этой статье сравниваются следующие облачные службы Майкрософт:

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

Если вы ищете более общее сравнение функций Azure с другими вариантами служб вычислений Azure, см. статью Criteria for choosing an Azure compute service (Критерии выбора службы вычислений Azure) и Choosing an Azure compute option for microservices (Выбор варианта службы вычислений Azure для микрослужб).

Сравнение Microsoft Power Automate и Azure Logic Apps

Power Automate и Logic Apps спроектированы в рамках подхода designer-first как службы интеграции, с помощью которых можно создавать рабочие процессы. Обе службы интегрируются с разными корпоративными приложениями и приложениями SaaS.

Служба Power Automate создана на основе Logic Apps. В этих двух службах используется один и тот же конструктор рабочих процессов и одни и те же соединители.

Служба Power Automate помогает офисным сотрудникам самостоятельно выполнять простые операции интеграции (например, процесс утверждения на основе библиотеки документов SharePoint), не обращаясь к разработчикам или ИТ-специалистам. Logic Apps также обеспечивает расширенную интеграцию (например, в процессах B2B), когда нужно выполнять операции Azure DevOps и применять методы обеспечения безопасности корпоративного класса. Как правило, с течением времени бизнес-процессы становятся более сложными. Поэтому на первых этапах можно использовать поток, а затем при необходимости преобразовать его в приложение логики.

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

Power Automate Logic Apps
Пользователи Офисные сотрудники, бизнес-пользователи, администраторы SharePoint Профессиональные интеграторы и разработчики, ИТ-специалисты
Сценарии Самообслуживание Расширенные интеграции
Средство разработки В браузере и мобильном приложении, только пользовательский интерфейс В браузере и Visual Studio доступно представление кода.
Управление жизненным циклом приложений (ALM) Разработка и тестирование в непроизводственных средах, распространение в рабочей среде по готовности Azure DevOps: система управления версиями, тестирование, поддержка, автоматизация и управление в Azure Resource Manager
Возможности для администраторов Управление средами Power Automate и политиками защиты от потери данных, отслеживание лицензирования: Центр администрирования. Управление группами ресурсов, подключениями, доступом и ведением журнала: Портал Azure
Безопасность Журналы аудита безопасности Microsoft 365, защита от потери данных, шифрование неактивных конфиденциальных данных Обеспечение безопасности Azure: система безопасности Azure, Центр безопасности Azure, журналы аудита

Сравнение служб "Функции Azure" и Azure Logic Apps

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

Для Функций Azure оркестрации разрабатываются путем написания кода и использования расширения "Устойчивые функции". Для Logic Apps оркестрации можно создавать с помощью графического пользовательского интерфейса или изменения файлов конфигурации.

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

Устойчивые функции Logic Apps
Разработка Code-first (императивный подход) Designer-first (декларативный подход)
Соединение Около десяти встроенных типов привязки; написание кода для пользовательских привязок Большая коллекция соединителей, пакет интеграции Enterprise для сценариев B2B, создание пользовательских соединителей
Действия Каждое действие является функцией Azure; написание кода для функций действий Большая коллекция готовых действий
Мониторинг Azure Application Insights Портал Azure, журналы Azure Monitor
Управление REST API, Visual Studio Портал Azure, REST API, PowerShell, Visual Studio
Контекст выполнения Можно запускать локально или в облаке Можно запускать только в облаке

Сравнение функций и веб-заданий

Подобно решению "Функции Azure", компонент "Веб-задания" службы приложений Azure с пакетом SDK для веб-заданий является службой интеграции на основе модели code-first, предназначенной для разработчиков. Обе службы созданы на основе службы приложений Azure и поддерживают следующие возможности: интеграция системы управления версиями, проверка подлинности и мониторинг с помощью интеграции Application Insights.

Веб-задания и пакет SDK для веб-заданий

Компонент Службы приложений Веб-задания дает возможность выполнить код или скрипт в контексте веб-приложения Службы приложений. SDK для веб-заданий — это предназначенная для веб-заданий платформа, которая упрощает написание кода для реагирования на события в службах Azure. Например, вы можете отреагировать на создание большого двоичного объекта образа в службе хранилища Azure, создав эскиз. Пакет SDK для веб-заданий выполняется как консольное приложение .NET, которое можно развернуть в веб-задании.

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

Сравнительная таблица

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

Функции Компонент "Веб-задания" с пакетом SDK для веб-заданий
Бессерверная модель приложения с автоматическим масштабированием
Разработка и тестирование в браузере
Оплата по мере использования
Интеграция с Logic Apps
События триггера Таймер
Очереди и большие двоичные объекты службы хранилища Azure
Очереди и разделы служебной шины Azure
Azure Cosmos DB
Центры событий Azure
HTTP или веб-перехватчик (GitHub, Slack)
Сетка событий Azure
Таймер
Очереди и большие двоичные объекты службы хранилища Azure
Очереди и разделы служебной шины Azure
Azure Cosmos DB
Центры событий Azure
Файловая система
Поддерживаемые языки C#
F#
JavaScript
Java
Python
PowerShell
C#1
Диспетчеры пакетов NPM и NuGet NuGet2

1 Компонент "Веб-задания" (без пакета SDK для веб-заданий) поддерживает C#, Java, JavaScript, Bash, CMD-файлы, BAT-файлы, PowerShell, PHP, TypeScript, Python и т. д. Это не полный список. Веб-задания могут выполнять любые программы или скрипты, выполняемые в песочнице службы приложений.

2 Компонент "Веб-задания" (без пакета SDK для веб-заданий) поддерживает NPM и NuGet.

Сводка

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

Ниже приведены два сценария, для которых компонент "Веб-задания" может быть лучшим вариантом.

  • Требуется больший контроль над кодом, который прослушивает события, — над объектом JobHost. Функции предоставляют ограниченное количество методов настройки поведения JobHost в файле host.json. Иногда необходимо выполнять действия, которые невозможно указать с помощью строки в файле JSON. Например, только пакет SDK для веб-заданий позволяет настроить пользовательскую политику повтора для службы хранилища Azure.
  • У вас есть приложение Службы приложений, для которого необходимо выполнить фрагменты кода и управлять ими совместно в той же среде Azure DevOps.

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

Совместное использование Power Automate, Logic Apps, Функций и Веб-заданий

Вам не обязательно выбирать какую-то одну из этих служб. Их можно интегрировать друг с другом и с внешними службами.

Поток может вызвать приложение логики. Приложение логики и функция могут вызывать друг друга. Пример см. в статье Создание функции, интегрируемой с Azure Logic Apps.

Качество интеграции между Power Automate, Logic Apps и Функциями постоянно улучшается. Вы можете создать что-нибудь в одной службе, а использовать в других.

Дополнительные сведения о службах интеграции см. в следующих источниках:

Дальнейшие действия

Начните работу с создания потока, приложения логики или приложения-функции. Выберите любую из следующих ссылок: