Поделиться через


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

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

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

Примечание.

Если вы ищете более общее сравнение между Azure Functions и другими вариантами вычислений Azure, ознакомьтесь со следующими статьями:

Для получения сводки и сравнения вариантов автоматизации в Azure см. раздел Выбор служб автоматизации в Azure.

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

Эти службы — платформы интеграции, ориентированные на дизайнеров, в которых можно создавать и запускать автоматизированные рабочие процессы. Обе платформы интегрируются с различными приложениями Software-as-Service (SaaS) и корпоративными приложениями. Оба предоставляют аналогичные конструкторы рабочих процессов, и, хотя их соединители частично перекрываются, каждая платформа также предлагает собственные уникальные соединители.

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

Чтобы определить, следует ли использовать Azure Logic Apps или Power Automate для конкретной интеграции, см. таблицу сравнения Capability.

Сравнение Azure Functions и Azure Logic Apps

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

Для Azure Functions вы разрабатываете оркестрации путем написания кода и использования расширения Durable Functions. Для Azure Logic Apps вы создаёте оркестрации с помощью визуального конструктора или путём редактирования шаблонов Azure Resource Manager.

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

Устойчивые функции Azure Logic Apps
Развитие Code First (императивный подход) Ориентированный на дизайнера (декларативный подход)
Связь - Десятки встроенных типов привязки
— Напишите код для пользовательских привязок
- 1400+ преднастроенных коннекторов с триггерами и действиями
- Корпоративный пакет интеграции для сценариев B2B
- Пользовательские соединители
Действия Каждое действие является функцией Azure; пишите код для функций активности 1400+ предустановленных коннекторов с триггерами и действиями
Monitoring Azure Application Insights - Azure портал
- Azure Monitor Журналы
- Microsoft Defender for Cloud
- Azure Application Insights для стандартных рабочих процессов
- Проверка работоспособности для стандартных рабочих процессов

Дополнительные сведения см. в разделе Мониторинг рабочих процессов в Azure Logic Apps.
Управление - REST API
- Visual Studio
- Azure портал
- Visual Studio Code
- REST API
- Powershell
- Azure CLI (стандартные рабочие процессы)
- Azure CLI (рабочие процессы по использованию ресурсов)
Контекст выполнения Может выполняться локально или в облаке Может выполняться в Azure локально в Visual Studio Code или в частично подключенных средах. Дополнительные сведения см. в разделе Что такое Azure Logic Apps?

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

Как и Azure Functions, веб-задания в Azure App Service с WebJobs SDK являются code-first службой интеграции, предназначенной для разработчиков. Оба компонента основаны на Azure App Service и поддерживают такие функции, как интеграция с системой контроля версий, аутентификация и мониторинг с интеграцией Application Insights.

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

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

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

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

Azure Functions основан на WebJobs SDK, поэтому он совместим со многими из тех же триггеров событий и подключений к другим службам Azure. Ниже приведены некоторые факторы, которые следует учитывать при выборе между Azure Functions и веб-заданиями с помощью пакета SDK для веб-заданий.

Функции Компонент "Веб-задания" с пакетом SDK для веб-заданий
Бессерверная модель приложения с автоматическим масштабированием
Разработка и тестирование в браузере
Цены на оплату за использование
Интеграция с Logic Apps
События триггера Таймер
Azure Storage очереди и BLOB-объекты
Azure Service Bus очереди и разделы
Azure Cosmos DB
Azure Event Hubs
HTTP/WebHook (GitHub, Slack)
Azure Event Grid
Таймер
Azure Storage очереди и BLOB-объекты
Azure Service Bus очереди и разделы
Azure Cosmos DB
Azure Event Hubs
File system
Поддерживаемые языки C#
F#
JavaScript
Java
Python
Powershell
C#1
Диспетчеры пакетов npm и NuGet NuGet2

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

2 веб-задания (без пакета SDK для веб-заданий) поддерживают npm и NuGet.

Итоги

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

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

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

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

Power Automate, Logic Apps, Функции и веб-задания вместе

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

Поток Power Automate может вызывать рабочий процесс Azure Logic Apps. Рабочий процесс Azure Logic Apps может вызывать функцию в Azure Functions и наоборот. Например, см. функцию Create, которая интегрируется с Azure Logic Apps.

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

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

Следующие шаги

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