Orchestration - AWS Directives prescriptives

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Orchestration

Dans cette approche, un seul orchestrateur est chargé d'appeler chaque microservice, de déterminer s'il convient d'émettre des appels en séquence ou en parallèle, de manipuler les réponses de chaque service en cours de route et de compiler le résultat final. Un orchestrateur peut mélanger des invocations synchrones et asynchrones.

AWS Step Functionset Amazon Managed Workflows for Apache Airflow (Amazon MWAA) sont d'excellents choix pour les orchestrateurs de flux de travail.

L'orchestration est un bon choix lorsque votre processus comporte des branches logiques et que vous avez besoin d'un emplacement unique pour encapsuler cette logique. C'est également utile lorsque vous souhaitez implémenter le modèle de vérification asynchrone des réclamations. Par exemple, les flux de travail standard de Step Functions peuvent suspendre un flux de travail et attendre un rappel d'un autre service. L'utilisation d'un orchestrateur améliore également la surveillance et l'observabilité d'un processus.

Exemple : Step Functions

Vous pouvez utiliser Step Functions pour coordonner plusieurs fonctions Lambda et d'autres Services AWS fonctions pour créer des flux de travail complexes destinés à l'intégration de microservices. Cette option est particulièrement utile pour les processus de longue durée en plusieurs étapes impliquant plusieurs microservices.

Vous devriez envisager d'utiliser Step Functions si :

  • L'intégration de vos microservices implique des processus complexes en plusieurs étapes.

  • Vous devez maintenir l'état des opérations de longue durée.

  • Vous souhaitez implémenter la gestion des erreurs et une logique de nouvelle tentative au niveau du flux de travail.

  • Vous devez coordonner les opérations synchrones et asynchrones.

Step Functions propose un éditeur visuel pour concevoir des flux de travail complexes, ce qui simplifie le processus de création et de gestion des machines d'état. Il fournit des mécanismes intégrés de gestion des erreurs, notamment une logique de nouvelle tentative et une gestion de l'état d'erreur, qui améliorent la fiabilité et la robustesse de vos applications. Les flux de travail standard prennent en charge des processus de longue durée pouvant aller jusqu'à un an, ce qui convient aux flux de travail qui s'étendent sur de longues périodes. Cette option sépare la logique d'orchestration du code de l'application, ce qui réduit considérablement la complexité du code. Cela signifie que les développeurs peuvent se concentrer sur la logique métier de base tandis que Step Functions gère le contrôle du flux et la coordination des composants distribués.

Prenons l'exemple d'un processus d'approbation de prêt dans le cadre d'une demande de services financiers, illustré dans le schéma suivant. Le processus commence lorsqu'une demande de prêt est soumise.

Utilisation AWS Step Functions pour créer des flux de travail complexes pour l'intégration de microservices.

Dans la machine à états illustrée dans le schéma précédent, Step Functions orchestre les étapes suivantes :

  • Valider les données de l'application (fonction Lambda)

  • Vérifier le pointage de crédit (fonction Lambda qui appelle une API externe)

  • Évaluer le risque (fonction Lambda)

  • En cas de risque élevé, passer à une révision manuelle (tâche d'approbation humaine)

  • En cas d'approbation, lancer le décaissement du prêt (fonction Lambda)

  • Envoyer une notification au candidat (Amazon SNS)

Vous pouvez utiliser cette approche pour gérer de manière fiable un processus complexe et potentiellement long, grâce à la gestion des erreurs intégrée et à la possibilité d'inclure des étapes automatisées et manuelles.

Considérations :

  • Concevez votre machine à états avec soin pour gérer tous les scénarios possibles.

  • Effectuez les étapes en parallèle dans la mesure du possible.

  • Utilisez les mécanismes intégrés de gestion des erreurs et de nouvelle tentative de Step Functions pour les défaillances permanentes et temporaires.

  • Envisagez d'utiliser des flux de travail standard ou express en fonction de votre cas d'utilisation. Les flux de travail express peuvent être préférables pour les flux de travail de courte durée ou de volume élevé.

  • Surveillez les indicateurs d'exécution pour optimiser votre flux de travail.

  • Utilisez des flux de travail imbriqués pour encapsuler et réutiliser les fonctionnalités sur plusieurs machines à états.

  • Pour les flux de travail complexes, pensez à utiliser Amazon Bedrock Agents comme alternative à Step Functions.

Pour plus d'informations, consultez la documentation Step Functions.

Exemple : Amazon MWAA

Si votre organisation utilise déjà Apache Airflow, Amazon MWAA est un choix naturel en tant qu'orchestrateur de flux de travail. Dans Apache Airflow, vous créez vos flux de travail sous forme de graphes acycliques dirigés (DAGs) à l'aide de Python. La représentation DAG de la machine à états illustrée dans la section Step Functions peut ressembler à ceci :

À l'aide d'Amazon MWAA et DAGs pour créer des flux de travail complexes pour l'intégration de microservices.

Pour plus d'informations sur l'utilisation DAGs, consultez la documentation Amazon MWAA.

Principales différences entre Step Functions et Amazon MWAA

  • Step Functions est un service sans serveur entièrement géré. Il n'y a donc aucune infrastructure à préprovisionner et il n'est pas nécessaire de planifier une fenêtre de maintenance. Amazon MWAA doit être déployé à l'avance, et vous choisissez la taille et le nombre de nœuds de votre cluster.

  • Dans Step Functions, vous pouvez créer des machines d'état de différentes manières, notamment dans Workflow Studio, directement au format JSON ou en utilisant le AWS Cloud Development Kit (AWS CDK). Apache Airflow est écrit DAGs en Python.

  • Avec Step Functions, vous n'avez aucun frais à payer lorsqu'aucun flux de travail n'est en cours d'exécution. Avec Amazon MWAA, vous devrez payer des frais même s'il n'en fonctionne pas DAGs .