NETERIS CONSULTING
Cabecera Blog AWS

AWS para desarrolladores: patrones de diseño y casos de uso

Posted by D. Antón on 26 julio 2024
Add to Flipboard Magazine.

Dentro de los patrones de diseño de modernización más utilizados en la nube de AWS para el desarrollo de aplicaciones modernas, destaca el creciente uso de las arquitecturas de microservicios.

A diferencia de las aplicaciones monolíticas tradicionales, las aplicaciones de microservicios son más detalladas y tienen dominios de errores independientes, ya que se ejecutan como servicios distribuidos en toda la red.

Este enfoque permite escalabilidad horizontal efectiva y una gestión más eficiente. En este blog exploraremos algunos de los patrones de diseño más populares en AWS para desarrolladores que abordan los escenarios más típicos en la arquitectura de microservicios.

Img Blog AWS para desarrolladores

Patrón de aprovisionamiento de eventos (Event sourcing pattern)

En las arquitecturas basadas en eventos, se utiliza un almacén de datos para almacenar los eventos que provocan un cambio de estado.

VENTAJAS

DESVENTAJAS

Captura y mantiene un historial completo de los cambios de estado.

Tamaño y costo de almacén de eventos.

Permite auditar, trazar y analizar los estados pasados.

Complejidad en la implementación y escalado.

Posibilita la comunicación asíncrona entre servicios.

Por lo general, no existe garantía de entrega de mensajes.

 En la siguiente imagen se muestra como el servicio de Amazon Kinesis Data se utiliza como almacén de eventos. Será el encargado de capturar y administrar los eventos generados en la aplicación, ofreciendo una solución en tiempo real con alto rendimiento.

AWS for developers (2)

AWS DevOps

Patrón de publicación/suscripción (Pub/Sub pattern)

Se trata de un patrón que de mensajería que desvincula al remitente de un mensaje (publicador) de los receptores interesados (suscriptores). Se produce una comunicación asíncrona a través de un intermediario conocido como enrutador o agente de mensajes.

VENTAJAS

DESVENTAJAS

Delegación de la entrega de mensajes en la infraestructura subyacente.

Mensajes caducan si no se procesan en un intervalo de tiempo establecido.

Mejora en la escalabilidad.

Duplicación de mensajes.

Posibilita la comunicación asíncrona entre servicios.

Por lo general, no existe garantía de entrega de mensajes.

Desvinculación de publicadores y suscriptores.

 

 En la siguiente imagen se muestra como el servicio de Amazon Simple Notification Service (Amazon SNS) se utiliza como servicio para desacoplar los publicadores de los suscriptores.

AWS for developers (3)

Patrón de enrutamiento de API (API routing pattern)

Este patrón permite gestionar y dirigir el trafico de solicitudes para interactuar con un grupo de servicios. Existen diferentes tipos para exponer las APIs:

Patrón de enrutamiento por nombres de host (Hostname routing pattern)

Realiza el enrutamiento de las peticiones utilizando nombres de host.

VENTAJAS

DESVENTAJAS

Implementación sencilla.

Registro del dominio o subdominio.

Facilita el aislamiento.

 

La siguiente imagen muestra como se redirige el tráfico a los servicios a través de los nombres de host.

AWS for developers (5)

Patrón de enrutamiento por rutas (Path routing pattern)

Este tipo de patrón permite agrupar el enrutamiento bajo un mismo nombre de host y utilizar identificadores para redirigir el tráfico a los distintos servicios.

En la siguiente imagen se muestra como a través del servicio de Amazon API Gateway se expone el nombre de host como api.example.com que utiliza diversos identificadores para redirigir el tráfico a los servicios como /service-a, /service-b y /service-c.

AWS for developers (1)

Las ventajas e inconvenientes de utilizar dicho patrón con el servicio de Amazon API Gateway son las siguientes:

VENTAJAS

DESVENTAJAS

Permite autenticación mediante otros servicios como IAM o Cognito.

Con un volumen alto, el costo es elevado.

Rastreo y análisis de solicitudes mediante AWS X-Ray.

 

Integración de firewall mediante AWS WAF.

 

Limitación de solicitudes.

 

Conclusión

En conclusión, se ha explorado algunos de los patrones de diseño más populares en AWS para desarrolladores, sin embargo, existen otros cuya elección dependerá del caso de uso específico.

La nube de AWS ofrece una cantidad incontable de recursos y servicios que permiten a los developers seleccionar y combinar para implementar los patrones que mejor se adapten a sus necesidades particulares.

New call-to-action

Blogs Relacionados:

> AWS DevOps: Integración fácil y entrega continua

> Automatización de infraestructura en la nube: Terraform + Gitlab

Topics: Amazon Web Services