Framework completo para diseñar aplicaciones cloud-native desde cero o migrar aplicaciones existentes. Cubre microservicios, contenedores, orquestación y patrones de escalabilidad automática para equipos de desarrollo.
Cuándo usarlo: Diseño de arquitectura de microservicios y despliegue cloud-native
Herramienta recomendada: Claude
Actúa como un arquitecto de software senior especializado en sistemas cloud-native con experiencia en AWS, GCP y Azure. Necesito tu ayuda para diseñar (o rediseñar) nuestra aplicación siguiendo principios cloud-native modernos que nos permitan escalar de forma eficiente y mantener alta disponibilidad. **Contexto del proyecto:** Tenemos una aplicación web que actualmente corre como un monolito en servidores virtuales. El crecimiento de usuarios está generando problemas de rendimiento en momentos de pico y el tiempo de despliegue de nuevas funcionalidades es de 2-3 semanas debido a la falta de CI/CD automatizado. Queremos modernizar la arquitectura para mejorar la escalabilidad, reducir el time-to-market y optimizar los costos de infraestructura. **Principios cloud-native que debes aplicar:** Los doce factores (12-factor app methodology) deben guiar el diseño: código base único en repositorio de versiones, gestión de dependencias declarativa, configuración en variables de entorno, servicios de respaldo tratados como recursos adjuntos, separación estricta entre build, release y run, procesos sin estado, binding de puertos para exposición de servicios, escalado mediante procesos adicionales, disposabilidad con arranque rápido y apagado elegante, paridad entre entornos, logs como streams de eventos y gestión de tareas administrativas como procesos de única ejecución. **Diseño de arquitectura de microservicios:** Ayúdame a descomponer el monolito en microservicios usando el patrón de Domain-Driven Design (DDD). Para cada servicio define: bounded context y responsabilidades únicas, API contract (REST o gRPC), estrategia de base de datos (database-per-service), eventos de dominio que emite y consume, y dependencias con otros servicios. Diseña también el API Gateway que actuará como punto de entrada único y el mecanismo de service discovery. **Estrategia de contenedores y orquestación:** Define la estrategia de containerización con Docker: estructura del Dockerfile para cada servicio, imagen base optimizada, capas de caché, multi-stage builds para reducir tamaño de imagen final y escaneo de vulnerabilidades en la pipeline de CI. Para la orquestación con Kubernetes: estructura de namespaces por entorno, configuración de Deployments con rolling updates, Horizontal Pod Autoscaler (HPA) basado en métricas de CPU y custom metrics, PodDisruptionBudgets para mantenimiento sin downtime y Network Policies para segmentación de red entre servicios. **Patrones de resiliencia y tolerancia a fallos:** Implementa los siguientes patrones: Circuit Breaker para prevenir cascada de fallos entre servicios, Retry con backoff exponencial para llamadas fallidas, Bulkhead para aislar pools de recursos críticos, Timeout en todas las llamadas síncronas entre servicios, y Health checks (liveness y readiness probes) para que Kubernetes gestione el ciclo de vida de los pods correctamente. Define también la estrategia de observabilidad: logs estructurados en formato JSON, tracing distribuido con OpenTelemetry, métricas con Prometheus y dashboards en Grafana. **Estrategia serverless para cargas variables:** Identifica los componentes de la aplicación que se beneficiarían de una arquitectura serverless (Functions as a Service): procesamiento de eventos asíncronos, tareas scheduled (cron jobs), webhooks de terceros y generación de reportes bajo demanda. Evalúa cuándo usar serverless vs. contenedores según el patrón de uso y el costo. **Formato de entrega:** - Diagrama de arquitectura general del sistema - Tabla de microservicios con responsabilidades, APIs y dependencias - Pipeline de CI/CD recomendada con herramientas concretas - Checklist de seguridad cloud-native (IAM, secrets management, network policies) - Estimación de costos de infraestructura en cloud por escenario de carga