Выбор правильных служб интеграции и автоматизации в AzureChoose the right integration and automation services in Azure

В этой статье сравниваются следующие облачные службы Майкрософт:This article compares the following Microsoft cloud services:

Все эти службы используются для настройки интеграции и автоматизации бизнес-процессов.All of these services can solve integration problems and automate business processes. Они позволяют определять входные данные, действия, условия и выходные данные.They can all define input, actions, conditions, and output. Каждую отдельную службу можно запускать по расписанию или активировать по запросу.You can run each of them on a schedule or trigger. Каждая служба обладает уникальными преимуществами, но в этой статье описываются их различия.Each service has unique advantages, and this article explains the differences.

Если вы ищете более общее сравнение функций Azure с другими вариантами служб вычислений Azure, см. статью Criteria for choosing an Azure compute service (Критерии выбора службы вычислений Azure) и Choosing an Azure compute option for microservices (Выбор варианта службы вычислений Azure для микрослужб).If you're looking for a more general comparison between Azure Functions and other Azure compute options, see Criteria for choosing an Azure compute service and Choosing an Azure compute option for microservices.

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

Power Automate и Logic Apps спроектированы в рамках подхода designer-first как службы интеграции, с помощью которых можно создавать рабочие процессы.Power Automate and Logic Apps are both designer-first integration services that can create workflows. Обе службы интегрируются с разными корпоративными приложениями и приложениями SaaS.Both services integrate with various SaaS and enterprise applications.

Служба Power Automate создана на основе Logic Apps.Power Automate is built on top of Logic Apps. В этих двух службах используется один и тот же конструктор рабочих процессов и одни и те же соединители.They share the same workflow designer and the same connectors.

Служба Power Automate помогает офисным сотрудникам самостоятельно выполнять простые операции интеграции (например, процесс утверждения на основе библиотеки документов SharePoint), не обращаясь к разработчикам или ИТ-специалистам.Power Automate empowers any office worker to perform simple integrations (for example, an approval process on a SharePoint Document Library) without going through developers or IT. Logic Apps также обеспечивает расширенную интеграцию (например, в процессах B2B), когда нужно выполнять операции Azure DevOps и применять методы обеспечения безопасности корпоративного класса.Logic Apps can also enable advanced integrations (for example, B2B processes) where enterprise-level Azure DevOps and security practices are required. Как правило, с течением времени бизнес-процессы становятся более сложными.It's typical for a business workflow to grow in complexity over time. Поэтому на первых этапах можно использовать поток, а затем при необходимости преобразовать его в приложение логики.Accordingly, you can start with a flow at first, and then convert it to a logic app as needed.

Сведения в таблице ниже помогут определить, какую из этих двух служб лучше всего использовать для определенной интеграции.The following table helps you determine whether Power Automate or Logic Apps is best for a particular integration:

Power AutomatePower Automate Logic AppsLogic Apps
ПользователиUsers Офисные сотрудники, бизнес-пользователи, администраторы SharePointOffice workers, business users, SharePoint administrators Профессиональные интеграторы и разработчики, ИТ-специалистыPro integrators and developers, IT pros
СценарииScenarios СамообслуживаниеSelf-service Расширенные интеграцииAdvanced integrations
Средство разработкиDesign tool В браузере и мобильном приложении, только пользовательский интерфейсIn-browser and mobile app, UI only В браузере и Visual Studio доступно представление кода.In-browser and Visual Studio, Code view available
Управление жизненным циклом приложений (ALM)Application lifecycle management (ALM) Разработка и тестирование в непроизводственных средах, распространение в рабочей среде по готовностиDesign and test in non-production environments, promote to production when ready Azure DevOps: система управления версиями, тестирование, поддержка, автоматизация и управление в Azure Resource ManagerAzure DevOps: source control, testing, support, automation, and manageability in Azure Resource Manager
Возможности для администраторовAdmin experience Управление средами Power Automate и политиками защиты от потери данных, отслеживание лицензирования: Центр администрирования.Manage Power Automate environments and data loss prevention (DLP) policies, track licensing: Admin center Управление группами ресурсов, подключениями, доступом и ведением журнала: Портал AzureManage resource groups, connections, access management, and logging: Azure portal
БезопасностьSecurity Журналы аудита безопасности и соответствия требованиям Office 365, защита от потери данных, шифрование неактивных конфиденциальных данныхOffice 365 Security and Compliance audit logs, DLP, encryption at rest for sensitive data Обеспечение безопасности Azure: система безопасности Azure, Центр безопасности Azure, журналы аудитаSecurity assurance of Azure: Azure security, Azure Security Center, audit logs

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

Функции и Logic Apps — это службы Azure для использования бессерверных рабочих нагрузок.Functions and Logic Apps are Azure services that enable serverless workloads. Функции Azure — это бессерверная служба вычислений, а Azure Logic Apps предоставляет бессерверные рабочие процессы.Azure Functions is a serverless compute service, whereas Azure Logic Apps provides serverless workflows. В обеих службах можно создавать сложные оркестрации.Both can create complex orchestrations. Оркестрация — это коллекция функций или шагов, называемых действиями в Logic Apps, которые выполняются для реализации сложных задач.An orchestration is a collection of functions or steps, called actions in Logic Apps, that are executed to accomplish a complex task. Например, для обработки пакета заказов можно запустить параллельное выполнение множества экземпляров функции, дождаться завершения их работы, а затем выполнить функцию, которая вычислит все полученные результаты.For example, to process a batch of orders, you might execute many instances of a function in parallel, wait for all instances to finish, and then execute a function that computes a result on the aggregate.

Для Функций Azure оркестрации разрабатываются путем написания кода и использования расширения "Устойчивые функции".For Azure Functions, you develop orchestrations by writing code and using the Durable Functions extension. Для Logic Apps оркестрации можно создавать с помощью графического пользовательского интерфейса или изменения файлов конфигурации.For Logic Apps, you create orchestrations by using a GUI or editing configuration files.

Вы можете комбинировать и сопоставлять служба при создании оркестраций, вызывая функции из приложений логики и приложения логики из функций.You can mix and match services when you build an orchestration, calling functions from logic apps and calling logic apps from functions. Выберите способ создания оркестраций с учетом ваших предпочтений и возможностей, предоставляемых каждой службой.Choose how to build each orchestration based on the services' capabilities or your personal preference. В следующей таблице представлены некоторые основные различия между этими службами:The following table lists some of the key differences between these:

Устойчивые функцииDurable Functions Logic AppsLogic Apps
РазработкаDevelopment Code-first (императивный подход)Code-first (imperative) Designer-first (декларативный подход)Designer-first (declarative)
СоединениеConnectivity Около десяти встроенных типов привязки; написание кода для пользовательских привязокAbout a dozen built-in binding types, write code for custom bindings Большая коллекция соединителей, пакет интеграции Enterprise для сценариев B2B, создание пользовательских соединителейLarge collection of connectors, Enterprise Integration Pack for B2B scenarios, build custom connectors
ДействияActions Каждое действие является функцией Azure; написание кода для функций действийEach activity is an Azure function; write code for activity functions Большая коллекция готовых действийLarge collection of ready-made actions
МониторингMonitoring Azure Application InsightsAzure Application Insights Портал Azure, журналы Azure MonitorAzure portal, Azure Monitor logs
УправлениеManagement REST API, Visual StudioREST API, Visual Studio Портал Azure, REST API, PowerShell, Visual StudioAzure portal, REST API, PowerShell, Visual Studio
Контекст выполненияExecution context Можно запускать локально или в облакеCan run locally or in the cloud Можно запускать только в облакеRuns only in the cloud

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

Подобно решению "Функции Azure", компонент "Веб-задания" службы приложений Azure с пакетом SDK для веб-заданий является службой интеграции на основе модели code-first, предназначенной для разработчиков.Like Azure Functions, Azure App Service WebJobs with the WebJobs SDK is a code-first integration service that is designed for developers. Обе службы созданы на основе службы приложений Azure и поддерживают следующие возможности: интеграция системы управления версиями, проверка подлинности и мониторинг с помощью интеграции Application Insights.Both are built on Azure App Service and support features such as source control integration, authentication, and monitoring with Application Insights integration.

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

Компонент Службы приложений Веб-задания дает возможность выполнить код или скрипт в контексте веб-приложения Службы приложений.You can use the WebJobs feature of App Service to run a script or code in the context of an App Service web app. SDK для веб-заданий — это предназначенная для веб-заданий платформа, которая упрощает написание кода для реагирования на события в службах Azure.The WebJobs SDK is a framework designed for WebJobs that simplifies the code you write to respond to events in Azure services. Например, вы можете отреагировать на создание большого двоичного объекта образа в службе хранилища Azure, создав эскиз.For example, you might respond to the creation of an image blob in Azure Storage by creating a thumbnail image. Пакет SDK для веб-заданий выполняется как консольное приложение .NET, которое можно развернуть в веб-задании.The WebJobs SDK runs as a .NET console application, which you can deploy to a WebJob.

Веб-задания и пакет SDK для веб-заданий лучше всего использовать вместе, но можно и по отдельности.WebJobs and the WebJobs SDK work best together, but you can use WebJobs without the WebJobs SDK and vice versa. Веб-задания могут выполнять любые программы или скрипты, выполняемые в песочнице службы приложений.A WebJob can run any program or script that runs in the App Service sandbox. Консольное приложение пакета SDK для веб-заданий можно запускать там же, где и остальные консольные приложения, например на локальных серверах.A WebJobs SDK console application can run anywhere console applications run, such as on-premises servers.

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

Решение "Функции Azure" создано на основе пакета SDK для веб-заданий, поэтому оно использует много тех же триггеров событий и соединений, что и другие службы Azure.Azure Functions is built on the WebJobs SDK, so it shares many of the same event triggers and connections to other Azure services. Ниже приведены некоторые факторы, которые следует учесть при выборе между решением "Функции Azure" и компонентом "Веб-задания" с пакетом SDK для веб-заданий.Here are some factors to consider when you're choosing between Azure Functions and WebJobs with the WebJobs SDK:

ФункцииFunctions Компонент "Веб-задания" с пакетом SDK для веб-заданийWebJobs with WebJobs SDK
Бессерверная модель приложения с автоматическим масштабированиемServerless app model with automatic scaling
Разработка и тестирование в браузереDevelop and test in browser
Оплата по мере использованияPay-per-use pricing
Интеграция с Logic AppsIntegration with Logic Apps
События триггераTrigger events ТаймерTimer
Очереди и большие двоичные объекты службы хранилища AzureAzure Storage queues and blobs
Очереди и разделы служебной шины AzureAzure Service Bus queues and topics
Azure Cosmos DBAzure Cosmos DB
Центры событий AzureAzure Event Hubs
HTTP или веб-перехватчик (GitHub, Slack)HTTP/WebHook (GitHub, Slack)
Сетка событий AzureAzure Event Grid
ТаймерTimer
Очереди и большие двоичные объекты службы хранилища AzureAzure Storage queues and blobs
Очереди и разделы служебной шины AzureAzure Service Bus queues and topics
Azure Cosmos DBAzure Cosmos DB
Центры событий AzureAzure Event Hubs
Файловая системаFile system
Поддерживаемые языкиSupported languages C#C#
F#F#
JavaScriptJavaScript
JavaJava
PythonPython
PowerShellPowerShell
C#1C#1
Диспетчеры пакетовPackage managers NPM и NuGetNPM and NuGet NuGet2NuGet2

1 Компонент "Веб-задания" (без пакета SDK для веб-заданий) поддерживает C#, Java, JavaScript, Bash, CMD-файлы, BAT-файлы, PowerShell, PHP, TypeScript, Python и т. д.1 WebJobs (without the WebJobs SDK) supports C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python, and more. Это не полный список.This is not a comprehensive list. Веб-задания могут выполнять любые программы или скрипты, выполняемые в песочнице службы приложений.A WebJob can run any program or script that can run in the App Service sandbox.

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

СводкаSummary

Функции Azure обеспечивают большую продуктивность разработки, чем компонент "Веб-задания" службы приложений Azure.Azure Functions offers more developer productivity than Azure App Service WebJobs does. Они также предусматривают больше вариантов языков программирования, сред разработки, интеграции служб Azure и ценовых категорий.It also offers more options for programming languages, development environments, Azure service integration, and pricing. В большинстве случаев они являются оптимальным вариантом.For most scenarios, it's the best choice.

Ниже приведены два сценария, для которых компонент "Веб-задания" может быть лучшим вариантом.Here are two scenarios for which WebJobs may be the best choice:

  • Требуется больший контроль над кодом, который прослушивает события, — над объектом JobHost.You need more control over the code that listens for events, the JobHost object. Функции предоставляют ограниченное количество методов настройки поведения JobHost в файле host.json.Functions offers a limited number of ways to customize JobHost behavior in the host.json file. Иногда необходимо выполнять действия, которые невозможно указать с помощью строки в файле JSON.Sometimes you need to do things that can't be specified by a string in a JSON file. Например, только пакет SDK для веб-заданий позволяет настроить пользовательскую политику повтора для службы хранилища Azure.For example, only the WebJobs SDK lets you configure a custom retry policy for Azure Storage.
  • У вас есть приложение Службы приложений, для которого необходимо выполнить фрагменты кода и управлять ими совместно в той же среде Azure DevOps.You have an App Service app for which you want to run code snippets, and you want to manage them together in the same Azure DevOps environment.

Для других сценариев, в которых необходимо выполнять фрагменты кода для интеграции со службами Azure или сторонними службами, выберите решение "Функции Azure", а не компонент "Веб-задания" с пакетом SDK для веб-заданий.For other scenarios where you want to run code snippets for integrating Azure or third-party services, choose Azure Functions over WebJobs with the WebJobs SDK.

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

Вам не обязательно выбирать какую-то одну из этих служб.You don't have to choose just one of these services. Их можно интегрировать друг с другом и с внешними службами.They integrate with each other as well as they do with external services.

Поток может вызвать приложение логики.A flow can call a logic app. Приложение логики и функция могут вызывать друг друга.A logic app can call a function, and a function can call a logic app. Пример см. в статье Создание функции, интегрируемой с Azure Logic Apps.See, for example, Create a function that integrates with Azure Logic Apps.

Качество интеграции между Power Automate, Logic Apps и Функциями постоянно улучшается.The integration between Power Automate, Logic Apps, and Functions continues to improve over time. Вы можете создать что-нибудь в одной службе, а использовать в других.You can build something in one service and use it in the other services.

Дополнительные сведения о службах интеграции см. в следующих источниках:You can get more information on integration services by using the following links:

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

Начните работу с создания потока, приложения логики или приложения-функции.Get started by creating your first flow, logic app, or function app. Выберите любую из следующих ссылок:Select any of the following links: