¿Qué son los patrones Saga en AWS?

Que Son Los Patrones Saga En Aws



Las aplicaciones están migrando hacia arquitecturas distribuidas y microservicios. Causa problemas en el mantenimiento de datos y la gestión de transacciones complejas. Los patrones Saga ofrecen una solución eficaz. Amazon Web Services (AWS) proporciona numerosas herramientas y servicios que simplifican la implementación de los patrones de Saga. Garantiza una gestión de transacciones sin problemas en las aplicaciones distribuidas.

Este artículo explicará qué son los patrones de saga, sus componentes, los servicios de AWS admitidos y sus beneficios.







¿Qué son los patrones Saga en AWS?

Los patrones Saga son una técnica de diseño en arquitecturas de microservicios para ayudar a distribuir transacciones entre otros servicios que interactúan para crear procesos comerciales. La ejecución de una transacción en múltiples microservicios puede causar algunas dificultades, como problemas de coherencia de datos y fallas del sistema.



El patrón Saga funciona dividiendo las transacciones distribuidas en transacciones más pequeñas conocidas como “Pasos de la saga” . Cada 'Paso de saga' representa una operación relacionada con el microservicio. Si uno o más “Pasos de la saga” falla, se toman las medidas necesarias de inmediato para restaurar el estado de la aplicación. Consulte la imagen a continuación para comprender el funcionamiento del patrón de saga:







Conozcamos sus componentes clave:

¿Cuáles son los componentes de los patrones de Saga en AWS?

Una solución de microservicio completa requiere varios servicios en una arquitectura distribuida. Un patrón de saga tiene algunos componentes clave, como:



  • Paso de saga
  • Orquestador de saga
  • Compensación

Analicemos estos componentes brevemente.

Paso de saga

Los pasos de Saga son operaciones de microservicio o tareas realizadas como parte de transacciones distribuidas que no tienen efectos secundarios negativos. Se repiten varias veces y no se producen efectos secundarios por la ejecución repetida.

Orquestador de saga

La responsabilidad principal de un orquestador de sagas es administrar y monitorear cada paso en la finalización exitosa de una saga. Inicia transacciones distribuidas cuando se toman las medidas adecuadas. También proporciona una compensación si falla algún paso.

Compensación

Cuando se encuentra un error durante el proceso de saga, su orquestador toma acciones rápidas y decisivas para volver a cambiar las modificaciones introducidas por los pasos anteriores. Esto asegura que el sistema mantenga el orden incluso en caso de errores.

Estos fueron los componentes principales de un patrón de saga. Analicemos los servicios de AWS que admiten patrones de saga.

¿Qué son los patrones Saga de servicios admitidos en AWS?

Estos son los servicios que ofrece Amazon que siguen patrones de saga:

  • Funciones de pasos de AWS
  • AWSLambda
  • Amazon DynamoDB
  • Amazon SNS y SQS
  • Puerta de enlace API de Amazon
  • CDK de AWS
  • SAM de AWS

Funciones de pasos de AWS

Step Functions de Amazon Web Services es un servicio completamente administrado diseñado para facilitar los flujos de trabajo y la administración de microservicios al proporcionar a los desarrolladores máquinas de estado que representan máquinas de estado complejas (patrones de saga). Los desarrolladores pueden diseñar transacciones distribuidas empleando Step Functions mientras las orquestan de manera efectiva.

AWSLambda

El servicio de computadora sin servidor Lambda de Amazon Web Services permite a los desarrolladores ejecutar código sin administrar servidores directamente. Hace posibles los patrones de saga mediante la creación de funciones Lambda que representan cada paso en el nivel raíz. Los desarrolladores que usan funciones de Lambda para representar pasos pueden utilizarlas de manera efectiva cuando representan pasos de saga individuales a través de Lambdas.

Amazon DynamoDB

Amazon DynamoDB es un servicio de base de datos NoSQL de AWS totalmente administrado. Ofrece opciones confiables de almacenamiento de datos. Los orquestadores de Saga pueden utilizar DynamoDB para realizar un seguimiento de las transacciones distribuidas a medida que avanzan.

Amazon SNS y SQS

Para crear una comunicación basada en eventos entre los microservicios, se combinan Amazon Simple Notification Service (SNS) y Simple Queue Service (SQS). Los pasos de Saga usan estos servicios para publicar mensajes en otros microservicios después de realizar operaciones específicas. Estos servicios luego notifican a otros microservicios sobre el estado de finalización y las actualizaciones de estado.

Puerta de enlace API de Amazon

Amazon API Gateway es un servicio en la nube de Amazon para crear, publicar y administrar API. Estas API se pueden escalar a cualquier nivel deseado. Este servicio conecta al usuario con AWS Lambda. Lambda está más conectado con las funciones de paso que siguen los patrones de la saga.

CDK de AWS

AWS Cloud Development Kit (CDK) es un marco y una herramienta para crear e implementar soluciones en la nube personalizadas. Es un servicio de código abierto. Las aplicaciones basadas en la arquitectura y el diseño de patrones de saga se pueden implementar con esta herramienta.

SAM de AWS

El modelo de aplicación sin servidor de AWS se utiliza para crear aplicaciones sin servidor. Este marco también es de código abierto. Cualquier aplicación que use el patrón saga se puede crear sin la provisión de servidores que usen AWS SAM.

Había servicios de AWS que admiten patrones de saga. Discutamos los beneficios que ofrecen los patrones de saga.

¿Cuáles son los beneficios de Saga Patterns en AWS?

Algunos de los beneficios que brindan los patrones de saga se encuentran a continuación:

  • Gestión de transacciones distribuidas
  • Consistencia de los datos
  • Tolerancia a fallos
  • Escalabilidad
  • Discutamos los beneficios en detalle.

    Gestión de transacciones distribuidas

    Los patrones de Saga brindan una solución simple pero eficiente para manejar transacciones distribuidas en arquitecturas de microservicios. Al dividir las transacciones en pasos manejables, ayudan a optimizar los flujos de trabajo complejos.

    Consistencia de los datos

    Las acciones de compensación están diseñadas para mantener la consistencia de los datos incluso ante fallas parciales del sistema y transacciones parciales. Los desarrolladores pueden alcanzar un estado de equilibrio independientemente de los resultados de las transacciones en sistemas distribuidos que utilizan patrones de saga.

    Tolerancia a fallos

    Los patrones de Saga brindan a las arquitecturas de microservicios una tolerancia a fallas mejorada al manejar las fallas en cada nivel de paso y compensar los errores. Como resultado, los sistemas que los utilizan pueden recuperarse rápidamente de fallas de transacciones parciales sin afectar el rendimiento general de la aplicación.

    Escalabilidad

    Los patrones de Saga ofrecen escalabilidad horizontal, lo que permite que los sistemas manejen una mayor carga transaccional al agregar más instancias de microservicio. Dicha flexibilidad es invaluable para las aplicaciones modernas que deben lidiar de manera efectiva con cargas de trabajo fluctuantes.

    Se trataba de patrones de saga y sus componentes y usos en los servicios de AWS.

    Conclusión

    Los patrones de Saga proporcionan un enfoque efectivo para manejar transacciones distribuidas dentro de arquitecturas de microservicios. AWS Step Functions, Lambda, DynamoDB, SNS y SQS son solo algunos de los servicios de AWS que admiten este patrón. Este artículo ha explicado exhaustivamente el patrón de la saga y su funcionamiento.