Présentation de Durable Functions

Effectué

Durable Functions vous permet d’implémenter des fonctions avec état complexes dans un environnement serverless.

Dans l’exemple de scénario, votre entreprise applique actuellement un processus d’approbation manuel pour les propositions de conception de projet. Le processus comporte plusieurs étapes, chacune d’elles pouvant avoir une durée variable. L’implémentation d’un processus automatisé interne s’avère complexe et coûteuse. Coordonner les différentes étapes est fastidieux. De plus, vous devez pouvoir intégrer une logique personnalisée dans le workflow.

Dans cette unité, vous allez découvrir les avantages de Durable Functions. Vous verrez les différents types de fonctions durables et concepts clés associés à Durable Functions.

Durable Functions

Durable Functions est une extension d’Azure Functions. Alors qu’Azure Functions s’exécute dans un environnement sans état, Durable Functions peut conserver les informations d’état entre les appels de fonction. Cette approche vous permet de simplifier les exécutions avec état complexes dans un environnement serverless.

Durable Functions s’adapte en fonction des besoins et constitue un moyen économique d’implémenter des workflows complexes dans le cloud. L’utilisation de Durable Functions présente notamment les avantages suivants :

  • Les fonctions durables vous permettent d’écrire du code basé sur des événements. Une fonction durable peut attendre de façon asynchrone un ou plusieurs événements externes, puis effectuer une série de tâches en réponse à ces événements.

  • Il est possible de chaîner plusieurs fonctions entre elles. Vous pouvez implémenter des modèles courants, comme le modèle fan-out/fan-in qui utilise une fonction pour appeler d’autres fonctions en parallèle et ensuite cumuler les résultats.

  • Vous pouvez orchestrer et coordonner plusieurs fonctions, et spécifier leur ordre d’exécution.

  • L’état des fonctions est géré automatiquement. Vous n’avez pas besoin d’écrire votre propre code pour enregistrer les informations d’état d’une fonction durable.

Durable Functions permet de définir des workflows avec état à l’aide d’une fonction d’orchestration. Une fonction d’orchestration offre les avantages supplémentaires suivants :

  • Vous pouvez définir les workflows directement dans le code, ce qui vous évite d’avoir à écrire une description JSON ou à utiliser un outil de conception de workflow.

  • Les fonctions peuvent être appelées de façon synchrone et asynchrone. La sortie des fonctions appelées est enregistrée localement dans des variables et réutilisée dans les appels de fonction suivants.

  • Azure contrôle automatiquement la progression d’une fonction durant l’attente de la fonction. Azure pourrait choisir de mettre en attente la fonction et d’enregistrer son état pendant que la fonction attend afin de préserver les ressources et de réduire les coûts. Quand la fonction reprend son exécution, Azure la réactive et rétablit son état.

Types de fonctions

Vous pouvez utiliser trois types de fonction durable : Client, Orchestrateur et Activité.

Les fonctions de client sont le point d’entrée pour la création d’une instance d’orchestration Durable Functions. Elles peuvent s’exécuter en réponse à un événement provenant de nombreuses sources différentes, comme une nouvelle requête HTTP entrante, un message en cours d’envoi vers une file d’attente de messages ou un événement arrivant dans un flux d’événements. Vous pouvez écrire ces fonctions dans tous les langages pris en charge.

Les fonctions d’orchestrateur décrivent la façon dont les actions sont exécutées ainsi que l’ordre de leur exécution. Vous écrivez la logique d’orchestration dans le code (C# ou JavaScript).

Les fonctions d’activité constituent les unités de base du travail dans une orchestration Durable Functions. Une fonction d’activité contient le travail réel effectué par les tâches qui sont orchestrées.

Modèles d’application

Vous pouvez utiliser Durable Functions pour implémenter de nombreux modèles de workflow courants. Ces modèles sont les suivants :

  • Chaînage de fonctions : Dans ce modèle, le workflow exécute une séquence de fonctions dans un ordre spécifié. La sortie d’une fonction est appliquée à l’entrée de la fonction suivante dans la séquence. La sortie de la fonction finale est utilisée pour générer un résultat.

    Diagram illustrating a function chaining pattern.

  • Fan out/fan in : Ce modèle exécute plusieurs fonctions en parallèle et attend que toutes les fonctions aient fini de s’exécuter. Vous pouvez agréger les résultats des exécutions parallèles ou les utiliser pour calculer un résultat final.

    Diagram illustrating a fan out/fan in pattern.

  • API HTTP asynchrones : Ce modèle apporte une solution au problème de coordination de l’état des opérations longues avec des clients externes. Un appel HTTP peut déclencher l’action longue, puis rediriger le client vers un point de terminaison d’état. Le client peut interroger ce point de terminaison pour savoir quand l’opération est terminée.

    Diagram illustrating an async HTTP API pattern.

  • Moniteur : Ce modèle implémente un processus périodique dans un workflow, éventuellement pour détecter un changement d’état. Par exemple, vous pouvez utiliser ce modèle pour continuer l’interrogation jusqu’à ce que certaines conditions soient remplies.

    Diagram illustrating a monitor pattern.

  • Interaction humaine : Ce modèle combine des processus automatisés et des actions à faire manuellement. Inclure un processus manuel dans un processus automatisé est délicat, car les gens ne sont généralement pas autant disponibles et réactifs que des ordinateurs. Vous pouvez intégrer une interaction humaine à l’aide d’une logique de délais d’attente et de compensation qui s’exécute si personne n’interagit correctement dans un délai de réponse spécifié. Un processus d’approbation est un exemple de processus impliquant une interaction humaine.

    Diagram illustrating a human interaction pattern.

Comparaison à Logic Apps

Durable Functions et Logic Apps sont des services Azure qui fournissent des charges de travail serverless. Azure Durable Functions est conçu comme une puissante option de calcul serverless capable d’exécuter une logique personnalisée. Azure Logic Apps convient mieux pour l’intégration de composants et services Azure. Vous pouvez utiliser l’une ou l’autre de ces technologies pour créer des orchestrations complexes. Avec Azure Durable Functions, vous développez des orchestrations en écrivant du code et en utilisant l’extension Durable Functions. Avec Logic Apps, vous créez des orchestrations en utilisant l’aire de conception ou en modifiant des fichiers config.

Le tableau suivant liste quelques-unes des principales différences entre Azure Durable Functions et Azure Logic Apps.

Tâche Azure Durable Functions Azure Logic Apps
Développement Orienté code (impératif) Orienté conception (déclaratif)
Connectivité Environ une douzaine de types de liaisons intégrés. Vous pouvez écrire du code pour les liaisons personnalisées. Grande collection de connecteurs. Enterprise Integration Pack pour le B2B. Vous pouvez également créer des connecteurs personnalisés.
Actions Chaque activité est une fonction Azure. Vous écrivez le code nécessaire pour les fonctions d’activité. Grande collection d’actions prédéfinies. Vous intégrez une logique personnalisée par le biais de connecteurs personnalisés.
Surveillance Azure Application Insights Portail Azure, journaux Azure Monitor
Gestion API REST, PowerShell, Visual Studio Portail Azure, API REST, PowerShell, Visual Studio, extension Visual Studio Code

Contrôler vos connaissances

1.

Présentation de Durable Functions

2.

Parmi les descriptions suivantes, laquelle décrit le mieux le rôle de la fonction Orchestrator dans un workflow ?

3.

Parmi les propositions suivantes, laquelle explique le mieux l’avantage d’utiliser Durable Functions pour le modèle d’application Interaction humaine ?