Partager via


Choix d’une infrastructure d’orchestration

Dans cet article, vous apprenez :

  • Avantages de l’utilisation d’une infrastructure d’orchestration.
  • Quelle infrastructure convient le mieux à votre scénario.

Azure propose deux frameworks d’orchestration orientés développeur que vous pouvez utiliser pour créer des applications : Durable Functions pour les applications hébergées dans Azure Functions et des kits SDK Durable Task pour les applications hébergées sur d’autres plateformes de calcul. Les orchestrations, également appelées workflows, consistent à organiser et coordonner plusieurs tâches ou processus impliquant souvent de multiples systèmes, pour qu'ils soient exécutés dans un ordre précis. Il est important qu’une infrastructure d’orchestration garantit une exécution durable, ce qui signifie qu’il existe des interruptions ou des défaillances d’infrastructure, l’exécution peut continuer dans un autre processus ou ordinateur à partir du point de défaillance. Les kits SDK Durable Task et Durable Functions garantissent que les orchestrations sont exécutées durablement grâce à la persistance d’état intégrée et aux nouvelles tentatives automatiques, afin que vous puissiez créer des orchestrations sans la charge de l’architecture pour la tolérance de panne.

Scénarios nécessitant une orchestration

Voici des scénarios nécessitant des modèles d'orchestration courants qui utilisent les SDK Durable Task et Durable Functions :

  • Chaînage de fonctions : Pour les scénarios impliquant des étapes séquentielles, où chaque étape peut dépendre de la sortie du précédent.
  • Fan-out/fan-in : pour les travaux par lots, ETL (extraction, transformation et chargement) et tous les scénarios nécessitant un traitement parallèle.
  • Interactions humaines : Pour l’authentification à deux facteurs, les flux de travail nécessitant une intervention humaine.
  • API HTTP asynchrones : Pour tout scénario où un client ne souhaite pas attendre la fin des tâches de longue durée.

Les deux scénarios suivants partagent le modèle de chaînage de fonctions .

Traitement des commandes sur un site web de commerce électronique

Supposons que vous créez un site web de commerce électronique. Votre site web a probablement besoin d’un flux de travail de traitement des commandes pour tout achat client. Le flux de travail peut inclure les étapes séquentielles suivantes :

  1. Vérifier l’inventaire
  2. Traiter les paiements
  3. Mettre à jour l’inventaire
  4. Générer une facture
  5. Envoyer la confirmation de la commande

Appel d’agents IA pour la planification d’un voyage

Dans ce scénario, supposons que vous devez créer un planificateur de voyages intelligent. Il existe une série d’étapes connues que le planificateur doit suivre :

  1. Suggérer des idées en fonction des exigences de l’utilisateur
  2. Obtenir la confirmation de préférence
  3. Effectuer des réservations requises

Vous pouvez implémenter un agent IA pour chaque tâche, puis écrire une orchestration qui appelle ces agents dans un certain ordre.

Options d’infrastructure d’orchestration

Durable Functions et Durable Task SDK sont disponibles dans plusieurs langages, mais il existe des différences dans la façon dont ils peuvent être utilisés.

Connaître l’infrastructure d’orchestration recommandée pour la production peut vous aider à décider qui convient le mieux à votre projet. Bien que le back-end Durable Task soit entièrement géré et pris en charge, l’extension Durable Functions et les kits SDK Durable Task varient en fonction du modèle tarifaire et du KIT de développement logiciel (SDK) de langage que vous utilisez.

Le tableau suivant montre quelle expérience client est prête pour l'utilisation en production.

Expérience SKU dédié Consommation SKU
Extension Durable Functions pour tous les langages de programmation Généralement disponible Preview
SDK .NET Tâche durable Généralement disponible Preview
SDK Durable Task pour Python Généralement disponible Preview
Kit de développement logiciel (SDK) Java pour tâches persistantes Preview Preview

Fonctions durables

En tant que fonctionnalité d’Azure Functions, Durable Functions hérite de nombreuses ressources, telles que :

  • Intégrations avec d’autres services Azure via les extensions Functions
  • Expérience de développement local
  • Modèle de tarification sans serveur
  • Hébergement dans Azure App Service et Azure Container Apps

Durable Functions conserve les états dans un back-end de stockage et prend en charge :

Quand utiliser Durable Functions

Envisagez d’utiliser Durable Functions si vous avez besoin de créer des applications basées sur des événements avec des flux de travail. Les extensions Azure Functions fournissent des intégrations avec d’autres services Azure, ce qui facilite la création de scénarios pilotés par les événements. Par exemple, avec Durable Functions :

  • Vous pouvez facilement démarrer une orchestration lorsqu'un message arrive dans Azure Service Bus ou lorsqu’un fichier est téléchargé vers Azure Blob Storage.
  • Vous pouvez facilement créer une orchestration qui s’exécute régulièrement ou en réponse à une requête HTTP avec le minuteur Azure Functions et le déclencheur HTTP, respectivement.

Une autre raison de prendre en compte Durable Functions est que vous écrivez déjà des applications Azure Function et que vous avez réalisé que vous avez besoin d’un flux de travail. Étant donné que le modèle de programmation Durable Functions est similaire à celui de Function, vous pouvez accélérer votre développement.

Faire un essai

Suivez l’un des guides de démarrage rapide ou exemples suivants pour en savoir plus sur Durable Functions.

Démarrages rapides
Démarrage rapide Descriptif
Planificateur de tâches durables Créer une application Durable Functions avec Durable Task Scheduler Créez une application Durable Functions « hello world » qui utilise le planificateur de tâches durables comme back-end, testez localement et publiez sur Azure.
Stockage Azure Créez une application Durable Functions avec le back-end Stockage Azure :
- .FILET
- Python
- JavaScript/TypeScript
- Java
- PowerShell
Créez une application Durable Functions « hello world » qui utilise stockage Azure comme back-end, testez localement et publiez sur Azure.
MSSQL Créer une application Durable Functions avec MSSQL Créez une application Durable Functions « hello world » qui utilise MSSQL comme back-end, testez localement et publiez sur Azure.
Échantillons
Échantillon Descriptif
Flux de travail de traitement des commandes Créez un flux de travail de traitement des commandes avec Durable Functions :
- .FILET
- Python
Cet exemple implémente un flux de travail de traitement des commandes qui inclut la vérification de l’inventaire, le traitement du paiement, la mise à jour de l’inventaire et la notification du client.
Récapitulateur PDF intelligent Créez une application qui traite les fichiers PDF avec Durable Functions :
- .FILET
- Python
Cet exemple montre comment utiliser Durable Functions pour coordonner les étapes de traitement et de synthèse des fichiers PDF à l’aide d’Azure Cognitive Services et d’Azure OpenAI.

Kits SDK de tâches durables avec planificateur de tâches durables

Les SDK Durable Task sont des SDK clients qui doivent être utilisés avec le planificateur de tâches Durable Task. Les kits SDK Durable Task connectent les orchestrations que vous écrivez dans le moteur d’orchestration du Planificateur de tâches durables dans Azure. Les applications qui utilisent les kits SDK Durable Task peuvent être exécutées sur n’importe quelle plateforme de calcul, notamment :

  • Azure Kubernetes Service
  • Azure Container Apps (Applications de Conteneur Azure)
  • Azure App Service
  • Machines virtuelles locales

Le Planificateur de tâches durables (SDK Java actuellement en préversion) joue le rôle du moteur d’orchestration et du serveur principal de stockage pour la persistance de l’état d’orchestration. Planificateur de tâches durables :

  • Est entièrement géré par Azure, ce qui supprime la surcharge de gestion
  • Fournit un débit d’orchestration élevé
  • Offre un tableau de bord prêt à l’emploi pour le monitoring et le débogage de l’orchestration
  • Inclut un émulateur local

Quand utiliser les SDK de tâches durables

Si vous ne souhaitez pas utiliser le modèle de programmation Azure Functions, les SDK Durable Task fournissent un modèle de programmation léger et relativement peu contraignant pour la création de flux de travail.

Lorsque vous devez exécuter des applications sur Azure Kubernetes Services ou des machines virtuelles locales avec prise en charge officielle de Microsoft, vous devez envisager d’utiliser les kits SDK Durable Task. Bien que Durable Functions puisse également être exécuté sur ces plateformes, il n’existe aucun support officiel.

Faire un essai

Suivez l’un des guides de démarrage rapide suivants pour configurer vos applications afin d’utiliser le planificateur de tâches durables avec les kits SDK Durable Task.

Démarrage rapide Descriptif
Démarrage rapide du développement local Créez une application avec les SDK Durable Task et Durable Task Scheduler à l’aide des SDK .NET, Python ou Java. Exécutez une orchestration fan-in/fan-out localement en utilisant l’émulateur du planificateur de tâches durables et passez en revue l’historique des orchestrations en tirant parti du tableau de bord.
Hébergement dans Azure Container Apps Déployer une application sdk Durable Task sur Azure Container Apps Déployez rapidement une application sdk Durable Task « hello world » sur Azure Container Apps à l’aide d’Azure Developer CLI.

Remarque

Durable Task Framework (DTFx) est un framework d’orchestration .NET open source similaire au SDK .NET Durable Task. Bien qu’il puisse être utilisé pour créer des applications qui s’exécutent sur des plateformes comme Azure Kubernetes Services, DTFx ne reçoit pas de support Microsoft officiel.

Étapes suivantes