Rediseño de arquitectura y modernización

Una guia completa sobre Lambda, ECS/EKS/Fargate, DynamoDB, Step Functions, SQS/SNS/EventBridge y el patron Strangler Fig para la modernizacion del Dominio D4 de SAP-C02.

La modernizacion de la arquitectura es el corazon del Dominio D4 de SAP-C02. Evalua tu capacidad para transformar aplicaciones monoliticas en arquitecturas serverless, basadas en contenedores y orientadas a eventos, y para seleccionar bases de datos de proposito especifico para cada carga de trabajo.

El punto de partida de la modernizacion no es "Que hay que cambiar?" sino "Que restricciones de la arquitectura actual impiden los objetivos empresariales?" Debes identificar primero si la escalabilidad, la carga operativa, el costo o la velocidad de desarrollo necesitan ser abordados.

 

Serverless — Lambda y API Gateway

Lambda ejecuta codigo sin gestion de servidores. No hay cargos cuando no se procesan solicitudes y escala horizontalmente de forma automatica. Sin embargo, el limite maximo de tiempo de ejecucion de 15 minutos significa que las tareas de larga duracion requieren ECS Fargate o EC2.

Reserved Concurrency establece un limite maximo de concurrencia por funcion para evitar que una sola funcion monopolice el grupo de concurrencia regional (proposito de aislamiento). Provisioned Concurrency pre-inicializa instancias para eliminar arranques en frio (proposito de rendimiento).

El patron estandar de arquitectura web completamente serverless es CloudFront + S3 (alojamiento estatico) + API Gateway + Lambda + DynamoDB. Si se incluye EC2 o Fargate, ya no es completamente serverless.

API Gateway admite API REST y WebSocket. La API WebSocket genera automaticamente un connectionId y maneja cientos de miles de conexiones simultaneas. El API envia mensajes activamente desde el servidor al cliente.

 

Contenedores — ECS vs EKS, Fargate vs tipo de lanzamiento EC2

ECS es el orquestador de contenedores nativo de AWS, mas simple operativamente. EKS proporciona Kubernetes como servicio completamente gestionado para necesidades avanzadas de Kubernetes.

El tipo de lanzamiento Fargate ejecuta contenedores sin gestionar la infraestructura del cluster. Solo Lambda es completamente serverless; Fargate todavia tiene una capa de contenedor.

Lambda para tareas cortas e intermitentes (max 15 min), Fargate para servicios siempre activos o procesamiento de larga duracion.

!ECS vs EKS

Bases de datos de proposito especifico — DynamoDB, Aurora Serverless, ElastiCache

DynamoDB es una base de datos NoSQL completamente serverless con respuestas de un solo digito en milisegundos y escalado automatico. El modo On-demand maneja el trafico automaticamente sin aprovisionamiento previo.

DynamoDB Streams + Lambda + SNS es el patron estandar para el procesamiento de eventos en tiempo real. Streams captura cambios a nivel de elemento durante hasta 24 horas, Lambda hace polling automatico y SNS envia notificaciones.

DAX es especifico de DynamoDB y no puede aplicarse a Aurora (usar ElastiCache para Aurora).

SQS Standard: maximo rendimiento, sin garantia de orden, al menos una entrega. SQS FIFO: orden garantizado, exactamente una vez, maximo 300 TPS. Para resolver limites de velocidad de API, usa SQS (SNS empeora los limites al entregar en paralelo inmediatamente).

EventBridge define reglas basadas en eventos para disparar Lambda, SQS, Step Functions, desacoplando completamente productores y consumidores.

 

Step Functions — Orquestacion de flujos de trabajo serverless

Standard Workflow: flujos de trabajo de larga duracion (hasta 1 ano), exactamente una vez, historial de 90 dias. Express Workflow: alta frecuencia bajo 5 minutos, precio basado en eventos.

Cuando el limite de 15 minutos de Lambda es un problema, usa Step Functions + ECS Fargate Tasks con estado Map para procesamiento paralelo.

El patron Strangler Fig implementa nuevas funcionalidades como microservicios mientras reemplaza gradualmente el monolito. El patron estandar de desacoplamiento: S3 + API Gateway + SQS + Lambda.

 

Puntos clave del examen

"Arquitectura web completamente serverless" -- CloudFront + S3 + API Gateway + Lambda + DynamoDB

"Aislar funciones Lambda, prevenir monopolizacion del grupo regional" -- Reserved Concurrency

"Eliminar arranques en frio de Lambda" -- Provisioned Concurrency

"Tareas de larga duracion que superan 15 minutos de Lambda" -- ECS Fargate

"Push activo en tiempo real del servidor al cliente" -- API Gateway WebSocket API + API @connections

"Datos no estructurados, trafico en rafaga, almacen de sesiones" -- DynamoDB On-demand

"Eventos en tiempo real sobre cambios de elementos DynamoDB" -- DynamoDB Streams + Lambda

"DAX es especifico de DynamoDB" -- no puede aplicarse a Aurora/RDS (usar ElastiCache para Aurora)

"Orden garantizado de mensajes, procesamiento exactamente una vez" -- SQS FIFO

"Resolver limites de velocidad de API, buffer de escritura" -- SQS (SNS empeora los limites)

"Flujo de trabajo de varios pasos, larga duracion, rastro de auditoria" -- Step Functions Standard Workflow

"Flujo de trabajo de alto rendimiento en menos de 5 minutos" -- Step Functions Express Workflow

"Descomposicion gradual del monolito" -- patron Strangler Fig

Volver a la lista del blog