Patrones de arquitectura de aplicaciones en AWS
Implementación de aplicaciones en AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Conoce a tu instructor
Por qué importa la arquitectura adecuada
La arquitectura son
trade-offs
, no una única respuesta correcta
Tres preguntas guían cada elección:
¿Qué tan estrechamente están
acoplados
los componentes?
¿Dónde vive el
estado
?
¿La comunicación es
síncrona o asíncrona
?
Ajusta el patrón a la
carga de trabajo
, no a la moda
La cascada del viernes por la noche
Una API de pagos lenta bloquea todo el checkout
Todos los servicios esperaban de forma síncrona
La solución es de arquitectura, no una API más rápida
Cómo la arquitectura decide el despliegue
El patrón elegido define cómo la app
escala y falla
Un diseño fuertemente acoplado se rompe con carga
El patrón adecuado hace el despliegue predecible
Mismo código, comportamiento en producción muy distinto
Patrones de arquitectura esenciales
Monolítica
: una unidad desplegable, fácil para empezar
Microservicios
: servicios independientes, desplegados por separado
Orientada a eventos
: componentes reaccionan a eventos, no a llamadas directas
Fanout
es un subpatrón orientado a eventos: un evento llega a muchos consumidores
Con estado vs sin estado
Sin estado (stateless)
: no se guarda info del cliente entre peticiones
Cualquier instancia puede atender cualquier petición
Con estado (stateful)
: la instancia recuerda interacciones previas
La ausencia de estado permite
escalar horizontalmente
Lleva el estado compartido a
DynamoDB
o
ElastiCache
Acoplamiento fuerte vs débil
Acoplamiento fuerte
: el llamador espera la respuesta del llamado
Un servicio lento atasca toda la cadena
Acoplamiento débil
: una cola de
Amazon SQS
entre servicios
El productor sigue trabajando aunque el consumidor esté caído
Síncrono vs asíncrono
Síncrono
: el llamador se bloquea y espera el resultado
Úsalo cuando el llamador necesita la respuesta ahora
Asíncrono
: el llamador delega el trabajo y vuelve
Úsalo para tareas lentas, irregulares o no urgentes
Patrones de resiliencia para llamadas a terceros
Reintentos con backoff exponencial
: espera más entre intentos
Cortacircuitos
: deja de llamar a un servicio en fallo por un tiempo
Cola de mensajes muertos
: aparca mensajes que siguen fallando
Combínalos; reintentar «a lo loco» empeora las caídas
¡Vamos a practicar!
Implementación de aplicaciones en AWS
Preparing Video For Download...