Que sont les modèles Saga dans AWS ?

Que Sont Les Modeles Saga Dans Aws



Les applications migrent vers des architectures distribuées et des microservices. Cela cause des problèmes dans la maintenance des données et la gestion des transactions complexes. Les motifs Saga offrent une solution efficace. Amazon Web Services (AWS) fournit de nombreux outils et services qui simplifient la mise en œuvre des modèles Saga. Il assure une gestion transparente des transactions dans les applications distribuées.

Cet article explique ce que sont les modèles de saga, leurs composants, les services AWS pris en charge et leurs avantages.







Que sont les modèles Saga dans AWS ?

Les modèles Saga sont une technique de conception dans les architectures de microservices pour aider à répartir les transactions entre d'autres services qui interagissent pour créer des processus métier. L'exécution d'une transaction sur plusieurs microservices peut entraîner des difficultés telles que des problèmes de cohérence des données et une défaillance du système.



Le modèle Saga fonctionne en divisant les transactions distribuées en transactions plus petites appelées 'Étapes de la saga' . Chaque 'Étape de la saga' représente une opération liée au microservice. Si un ou plusieurs 'Étapes de la saga' échoue, les actions nécessaires sont prises immédiatement pour restaurer l'état de l'application. Reportez-vous à l'image ci-dessous pour comprendre le fonctionnement du motif saga :







Découvrons ses composants clés :

Quels sont les composants des modèles Saga dans AWS ?

Une solution de microservice complète nécessite plusieurs services dans une architecture distribuée. Un modèle de saga a quelques composants clés, tels que :



  • Étape de la saga
  • Orchestrateur de saga
  • Compensation

Discutons brièvement de ces composants.

Étape de la saga

Les étapes Saga sont des opérations ou des tâches de microservice effectuées dans le cadre de transactions distribuées qui n'ont pas d'effets secondaires négatifs. Ils sont répétés plusieurs fois et aucun effet secondaire ne se produit lors d'une exécution répétée.

Orchestrateur de saga

La principale responsabilité d'un orchestrateur de saga est de gérer et de surveiller chaque étape de l'achèvement d'une saga avec succès. Il démarre les transactions distribuées lorsque les mesures appropriées sont prises. Il fournit également une compensation en cas d'échec d'une étape.

Compensation

Lorsqu'une erreur est rencontrée au cours du processus de saga, son orchestrateur prend des mesures rapides et décisives pour annuler les modifications introduites par les étapes précédentes. Cela garantit que le système maintient l'ordre même en cas d'erreurs.

C'étaient les principaux composants d'un modèle de saga. Discutons des services AWS qui prennent en charge les modèles de saga.

Quels sont les modèles Saga des services pris en charge dans AWS ?

Voici les services proposés par Amazon qui suivent les modèles de saga :

  • Fonctions d'étape AWS
  • AWS Lambda
  • Amazon DynamoDB
  • Amazon SNS et SQS
  • Passerelle d'API Amazon
  • CDK AWS
  • AWSSAM

Fonctions d'étape AWS

Amazon Web Services Step Functions est un service entièrement géré conçu pour faciliter la gestion des workflows et des microservices en fournissant aux développeurs des machines d'état représentant des machines d'état complexes (saga patterns). Les développeurs peuvent concevoir des transactions distribuées en utilisant Step Functions tout en les orchestrant efficacement.

AWS Lambda

Le service informatique sans serveur Lambda d'Amazon Web Services permet aux développeurs d'exécuter du code sans gérer directement les serveurs. Il rend les modèles de saga possibles en créant des fonctions Lambda représentant chaque étape au niveau racine. Les développeurs utilisant les fonctions Lambda pour représenter les étapes peuvent l'utiliser efficacement lors de la représentation d'étapes de saga individuelles via Lambdas.

Amazon DynamoDB

Amazon DynamoDB est un service de base de données NoSQL d'AWS qui est entièrement géré. Il offre des options de stockage de données fiables. Les orchestrateurs de Saga peuvent utiliser DynamoDB pour suivre les transactions distribuées au fur et à mesure de leur progression.

Amazon SNS et SQS

Pour créer une communication basée sur les événements entre les microservices, Amazon Simple Notification Service (SNS) et Simple Queue Service (SQS) sont combinés. Les étapes Saga utilisent ces services pour publier des messages vers d'autres microservices après avoir effectué des opérations spécifiques. Ces services informent ensuite les autres microservices de l'état d'achèvement et des mises à jour d'état.

Passerelle d'API Amazon

Amazon API Gateway est un service cloud d'Amazon pour créer, publier et gérer des API. Ces API peuvent être mises à l'échelle à n'importe quel niveau souhaité. Ce service connecte l'utilisateur à AWS Lambda. Lambda est en outre connecté aux fonctions d'étape qui suivent les modèles de saga.

CDK AWS

AWS Cloud Development Kit (CDK) est un cadre et un outil pour créer et déployer des solutions cloud personnalisées. C'est un service open source. Les applications construites sur l'architecture et la conception des modèles de saga peuvent être déployées à l'aide de cet outil.

AWSSAM

Le modèle d'application sans serveur AWS est utilisé pour créer des applications sans serveur. Ce framework est également open source. Toute application utilisant le modèle saga peut être créée sans la fourniture de serveurs à l'aide d'AWS SAM.

Il y avait des services AWS qui prenaient en charge les modèles de saga. Discutons des avantages qu'offrent les modèles de saga.

Quels sont les avantages des modèles Saga dans AWS ?

Certains des avantages offerts par les modèles de saga sont les suivants :

  • Gestion des transactions distribuées
  • La cohérence des données
  • Tolérance aux pannes
  • Évolutivité
  • Laissez-nous discuter des avantages en détail.

    Gestion des transactions distribuées

    Les modèles Saga fournissent une solution simple mais efficace pour gérer les transactions distribuées dans les architectures de microservices. En décomposant les transactions en étapes gérables, ils aident à rationaliser les flux de travail complexes.

    La cohérence des données

    Les actions de compensation sont conçues pour maintenir la cohérence des données même en cas de défaillances partielles du système et de transactions partielles. Les développeurs peuvent atteindre un état d'équilibre quels que soient les résultats des transactions dans les systèmes distribués utilisant des modèles de saga.

    Tolérance aux pannes

    Les modèles Saga fournissent aux architectures de microservices une meilleure tolérance aux pannes en gérant les défaillances à chaque niveau d'étape et en compensant les erreurs. Par conséquent, les systèmes qui les utilisent peuvent récupérer rapidement après des échecs de transaction partiels sans affecter les performances globales des applications.

    Évolutivité

    Les modèles Saga offrent une évolutivité horizontale, ce qui permet aux systèmes de gérer une charge transactionnelle accrue en ajoutant davantage d'instances de microservices. Une telle flexibilité est inestimable pour les applications modernes qui doivent gérer efficacement des charges de travail fluctuantes.

    Il s'agissait de modèles de saga et de leurs composants et utilisations dans les services AWS.

    Conclusion

    Les modèles Saga offrent une approche efficace pour gérer les transactions distribuées au sein des architectures de microservices. AWS Step Functions, Lambda, DynamoDB, SNS et SQS ne sont que quelques-uns des services AWS qui prennent en charge ce modèle. Cet article a expliqué en détail le modèle de saga et son fonctionnement.