Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Mecanismos de comunicación
En el paradigma de los microservicios, varios componentes de una aplicación deben comunicarse a través de una red. Los enfoques comunes para esto incluyen la mensajería asíncrona, basada en REST, GraphQL y GRPC.
Comunicación basada en REST
El protocolo HTTP/S, utilizado ampliamente para la comunicación sincrónica entre microservicios, suele funcionar de forma automática. RESTful APIs API Gateway ofrece una forma simplificada de crear una API que sirva como punto de acceso centralizado a los servicios de backend y gestione tareas como la gestión del tráfico, la autorización, la supervisión y el control de versiones.
Comunicación basada en GraphQL
Del mismo modo, GraphQL es un método generalizado para la comunicación sincrónica, que utiliza los mismos protocolos que REST pero limita la exposición a un único punto final. Con AWS AppSync, puede crear y publicar aplicaciones GraphQL que interactúan directamente con AWS los servicios y almacenes de datos, o incorporar funciones de Lambda para la lógica empresarial.
Comunicación basada en gRPC
gRPC es un protocolo de comunicación RPC síncrono, ligero, de alto rendimiento y de código abierto. gRPC mejora sus protocolos subyacentes mediante el uso de HTTP/2 y habilitando más funciones, como la compresión y la priorización de flujos. Utiliza el lenguaje de definición de interfaces (IDL) de Protobuf, que está codificado en binario y, por lo tanto, aprovecha el marco binario HTTP/2.
Mensajería asíncrona y transmisión de eventos
La mensajería asíncrona permite que los servicios se comuniquen enviando y recibiendo mensajes a través de una cola. Esto permite que los servicios permanezcan acoplados de forma flexible y promueva el descubrimiento de servicios.
La mensajería se puede definir de los tres tipos siguientes:
-
Colas de mensajes: una cola de mensajes actúa como un búfer que separa a los remitentes (productores) de los receptores (consumidores) de los mensajes. Los productores colocan los mensajes en cola y los consumidores los dejan en cola y los procesan. Este patrón es útil para la comunicación asíncrona, la nivelación de carga y la gestión de ráfagas de tráfico.
-
Publicar-suscribirse: en el patrón de publicación-suscripción, se publica un mensaje en un tema y varios suscriptores interesados reciben el mensaje. Este patrón permite transmitir eventos o mensajes a varios consumidores de forma asíncrona.
-
Mensajería basada en eventos: la mensajería basada en eventos implica capturar los eventos que ocurren en el sistema y reaccionar ante ellos. Los eventos se publican en un intermediario de mensajes y los servicios interesados se suscriben a tipos de eventos específicos. Este patrón permite un acoplamiento flexible y permite a los servicios reaccionar ante los eventos sin dependencias directas.
Para implementar cada uno de estos tipos de mensajes, AWS ofrece varios servicios gestionados como Amazon SQS, Amazon SNS, Amazon, EventBridge Amazon MQ y Amazon MSK. Estos servicios tienen características únicas adaptadas a necesidades específicas:
-
Amazon Simple Queue Service (Amazon SQS) y Amazon Simple Notification Service (Amazon SNS): Como puede ver en la figura 8, estos dos servicios se complementan entre sí: Amazon SQS proporciona un espacio para almacenar mensajes y Amazon SNS permite la entrega de mensajes a varios suscriptores. Son eficaces cuando es necesario entregar el mismo mensaje a varios destinos.
Figura 8: El patrón del bus de mensajes está activado AWS
-
Amazon EventBridge: un servicio sin servidor que utiliza eventos para conectar los componentes de la aplicación entre sí, lo que le facilita la creación de aplicaciones escalables basadas en eventos. Úselo para enrutar eventos desde fuentes como aplicaciones propias, AWS servicios y software de terceros a aplicaciones de consumo en toda su organización. EventBridge proporciona una forma sencilla y coherente de incorporar, filtrar, transformar y distribuir eventos para que pueda crear nuevas aplicaciones rápidamente. EventBridge Los buses de eventos son ideales para many-to-many enrutar eventos entre servicios basados en eventos.
-
Amazon MQ: una buena opción si tienes un sistema de mensajería preexistente que utiliza protocolos estándar como JMS, AMQP o similares. Este servicio gestionado reemplaza su sistema sin interrumpir las operaciones.
-
Amazon MSK (Managed Kafka): un sistema de mensajería para almacenar y leer mensajes, útil para los casos en los que los mensajes deben procesarse varias veces. También admite la transmisión de mensajes en tiempo real.
-
Amazon Kinesis: procesamiento y análisis en tiempo real de datos de streaming. Esto permite el desarrollo de aplicaciones en tiempo real y proporciona una integración perfecta con el AWS ecosistema.
Recuerde que el mejor servicio para usted depende de sus necesidades específicas, por lo que es importante entender lo que ofrece cada uno y cómo se alinea con sus requisitos.
Organización y administración del estado
La orquestación de microservicios se refiere a un enfoque centralizado, en el que un componente central, conocido como orquestador, es responsable de gestionar y coordinar las interacciones entre los microservicios. Organizar los flujos de trabajo en varios microservicios puede resultar difícil. No se recomienda incrustar el código de orquestación directamente en los servicios, ya que introduce un acoplamiento más estrecho y dificulta la sustitución de los servicios individuales.
Step Functions proporciona un motor de flujo de trabajo para gestionar las complejidades de la orquestación de servicios, como la gestión de errores y la serialización. Esto le permite escalar y cambiar las aplicaciones rápidamente sin añadir código de coordinación. Step Functions forma parte de la plataforma AWS sin servidor y es compatible con las funciones de Lambda, Amazon EC2, Amazon EKS, Amazon ECS SageMaker AWS Glue, AI y más.

Figura 9: Un ejemplo de un flujo de trabajo de microservicios con pasos paralelos y secuenciales invocados por AWS Step Functions
Amazon Managed Workflows for Apache Airflow