Choisir les services d’intégration et d’automatisation appropriés dans Azure

Cet article compare les services de cloud computing Microsoft suivants :

Tous ces services peuvent résoudre des problèmes d’intégration et automatiser des processus métier. Ils peuvent tous définir des entrées, des actions, des conditions et des sorties. Vous pouvez exécuter chacun d’eux selon une planification ou à l’aide d’un déclencheur. Les services présentent des avantages qui leur sont propres. Cet article explique les différences entre eux.

Si vous recherchez une comparaison plus générale entre Azure Functions et d’autres options de calcul Azure, consultez Critères de sélection d’un service de calcul Azure et Choix d’une option de calcul Azure pour les microservices.

Comparer Microsoft Power Automate et Azure Logic Apps

Power Automate et Logic Apps sont des services d’intégration orientés concepteur pouvant créer des workflows. Ils s’intègrent à différentes applications SaaS et d’entreprise.

Power Automate repose sur Logic Apps. Ils partagent le même concepteur de workflows et les mêmes connecteurs.

Power Automate permet aux employés de bureau d’effectuer eux-mêmes des intégrations simples (par exemple, un processus d’approbation dans une bibliothèque de documents SharePoint) sans avoir à passer par les développeurs ou le service informatique. Logic Apps permet également d’effectuer des intégrations avancées (par exemple des processus B2B) en respectant les pratiques Azure DevOps et de sécurité requises au niveau de l’entreprise. Il est courant qu’un flux de travail métier se complexifie au fil du temps. Par conséquent, vous pouvez commencer par un flux et le convertir ensuite en application logique selon vos besoins.

Le tableau suivant vous aide à déterminer lequel des services Power Automate et Logic Apps répond le mieux à vos besoins d’intégration :

Power Automate Logic Apps
Utilisateurs Employés de bureau, utilisateurs de l’entreprise, administrateurs SharePoint Intégrateurs et développeurs professionnels, professionnels de l’informatique
Scénarios Libre-service Intégrations avancées
Outil de conception Dans le navigateur et application mobile, interface utilisateur uniquement Dans le navigateur et Visual Studio, mode Code disponible
Application Lifecycle Management (ALM) Concevoir et tester dans des environnements hors production, et passer en production lorsque vous êtes prêt Azure DevOps : contrôle de code source, tests, support, automatisation et gestion simplifiée dans Azure Resource Manager
Expérience administrateur Gérer le suivi des licences, les stratégies de protection contre la perte des données (DLP) et les environnements Power Automate : Centre d’administration Gérer les groupes de ressources, les connexions, les accès et la journalisation : Azure portal
Sécurité Journaux d’audit de sécurité Microsoft 365, DLP, chiffrement au repos pour les données sensibles Assurance sécurité d’Azure : Sécurité Azure, Azure Security Center, journaux d’audit

Comparer Azure Functions et Azure Logic Apps

Functions et Logic Apps sont des services Azure qui proposent des charges de travail sans serveur. Azure Functions est un service de calcul serverless. Azure Logic Apps fournit des workflows serverless. Les deux services peuvent créer des orchestrations complexes. Une orchestration est une collection de fonctions ou d’étapes, appelées actions dans Logic Apps, qui sont exécutées pour accomplir une tâche complexe. Par exemple, pour traiter un lot de commandes, vous pourrez exécuter plusieurs instances d’une fonction en parallèle, attendre que toutes les instances se terminent, puis exécuter une fonction qui calcule un résultat de l’agrégat.

Pour Azure Functions, vous développez des orchestrations en écrivant du code et en utilisant l’extension Durable Functions. Pour Logic Apps, vous créez des orchestrations en utilisant une interface graphique utilisateur ou en modifiant des fichiers config.

Vous pouvez mélanger et associer les services lorsque vous créez une orchestration, en appelant des fonctions à partir d’applications logiques et inversement. Vous pouvez opter pour l’un ou l’autre des services pour créer chacune de vos orchestrations en fonction des capacités de ceux-ci ou de vos préférences. Le tableau suivant liste certaines des principales différences entre ces services :

Fonctions durables Logic Apps
Développement Orienté code (impératif) Orienté concepteur (déclaratif)
Connectivité Environ une douzaine de types de liaison intégrés, écriture de code pour les liaisons personnalisées Grande collection de connecteurs, Enterprise Integration Pack pour les scénarios B2B, intégration de connecteurs personnalisés
Actions Chaque activité est une fonction Azure ; écriture de code pour les fonctions de l’activité Grande collection d’actions prédéfinies
Surveillance Azure Application Insights Portail Azure, journaux d’activité Azure Monitor
Gestion API REST, Visual Studio Portail Azure, API REST, PowerShell, Visual Studio
Contexte d’exécution Exécution possible en local ou dans le cloud Exécution uniquement dans le cloud

Comparer Functions et WebJobs

Comme Azure Functions, Azure App Service WebJobs avec le Kit de développement logiciel (SDK) WebJobs est un service d’intégration orienté code conçu pour les développeurs. Les deux reposent sur Azure App Service et prennent en charge des fonctionnalités telles que l’intégration du contrôle de code source, l’authentification et la surveillance avec l’intégration Application Insights.

WebJobs et Kit de développement logiciel (SDK) WebJobs

Vous pouvez utiliser la fonctionnalité WebJobs d’App Service pour exécuter un script ou du code dans le contexte d’une application web App Service. Le Kit de développement logiciel (SDK) WebJobs est une infrastructure conçue pour les WebJobs qui simplifie le code que vous écrivez pour répondre aux événements dans les services Azure. Par exemple, vous pouvez répondre à la création d’un objet blob d’image dans Stockage Azure en créant une image miniature. Le Kit de développement logiciel (SDK) WebJobs s’exécute comme une application de console .NET, que vous pouvez déployer sur un WebJob.

Les WebJobs et le Kit de développement logiciel (SDK) WebJobs fonctionnent mieux ensemble, mais vous pouvez utiliser des WebJobs sans Kit de développement logiciel (SDK) WebJobs et vice versa. Un WebJob peut exécuter n’importe quel programme ou script s’exécutant dans le bac à sable App Service. Une application de console de Kit de développement logiciel (SDK) WebJobs peut s’exécuter là où les applications de console s’exécutent, tels que des serveurs locaux.

Tableau de comparaison

Azure Functions repose sur le Kit de développement logiciel (SDK) WebJobs, donc il partage beaucoup de déclencheurs d’événements et de connexions à d’autres services Azure. Voici quelques facteurs à prendre en compte quand vous devez choisir entre Azure Functions et WebJobs avec le SDK WebJobs :

Fonctions WebJobs avec le Kit de développement logiciel (SDK) WebJobs
Modèle d’application serverless avec mise à l’échelle automatique
Développement et test dans un navigateur
Paiement à l’utilisation
Intégration à Logic Apps
Événements déclencheurs Minuteur
Objets blob et files d’attente Stockage Azure
Files d’attente et rubriques Azure Service Bus
Azure Cosmos DB
Azure Event Hubs
HTTP/WebHook (GitHub, Slack)
Azure Event Grid
Minuteur
Objets blob et files d’attente Stockage Azure
Files d’attente et rubriques Azure Service Bus
Azure Cosmos DB
Azure Event Hubs
Système de fichiers
Langues prises en charge C#
F#
JavaScript
Java
Python
PowerShell
C#1
Gestionnaires de package NPM et NuGet NuGet2

1 WebJobs (sans le SDK WebJobs) prend en charge C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript et Python, entre autres. Cette liste n’est pas exhaustive. Un WebJob peut exécuter n’importe quel programme ou script pouvant s’exécuter dans le bac à sable App Service.

2 WebJobs (sans le SDK WebJobs) prend en charge NPM et NuGet.

Résumé

Azure Functions apporte aux développeurs un gain de productivité supérieur par rapport à Azure App Service WebJobs. Il leur offre également davantage d’options pour les langages de programmation, les environnements de développement, l’intégration des services Azure et la tarification. Pour la plupart des scénarios, Azure Functions est le meilleur choix.

Voici deux scénarios pour lesquels WebJobs peut être le meilleur choix :

  • Vous avez besoin de davantage de contrôle sur le code qui écoute les événements, l’objet JobHost. Azure Functions offre un nombre limité de méthodes de personnalisation du comportement JobHost dans le fichier host.json. Parfois, vous devez effectuer les opérations qui ne peuvent pas être spécifiées par une chaîne dans un fichier JSON. Par exemple, seul le Kit de développement logiciel (SDK) WebJobs vous permet de configurer une stratégie de nouvelles tentatives personnalisée pour Stockage Azure.
  • Vous avez une application App Service pour laquelle vous souhaitez exécuter des extraits de code, et vous voulez les gérer ensemble dans le même environnement Azure DevOps.

Pour d’autres scénarios où vous souhaitez exécuter des extraits de code pour l’intégration de services Azure ou tiers, préférez Azure Functions à WebJobs avec le Kit de développement logiciel (SDK) WebJobs.

Power Automate, Logic Apps, Functions et WebJobs ensemble

Vous n’êtes pas obligé de choisir un seul de ces services. Vous pouvez intégrer plusieurs services entre eux mais aussi des services externes.

Un flux peut appeler une application logique. Une application logique peut appeler une fonction, et une fonction peut appeler une application logique. Consultez par exemple Créer une fonction qui s’intègre avec Azure Logic Apps.

L’intégration entre Power Automate, Logic Apps et Functions continue de s’améliorer au fil du temps. Vous pouvez créer quelque chose dans un service et l’utiliser dans les autres services.

Vous pouvez obtenir des informations supplémentaires sur les services d’intégration par le biais des liens suivants :

Étapes suivantes

Commencez en créant votre premier flux, application logique ou application de fonction. Sélectionnez l’un des liens suivants :