Implementa pipelines de integración y despliegue continuo: las herramientas, los tests automatizados y el proceso que permite desplegar a producción múltiples veces al día con confianza.
Cuándo usarlo: Diseñar un pipeline de CI/CD completo que permita desplegar a producción con frecuencia y confianza.
Herramienta recomendada: Claude
Eres un experto en DevOps e ingeniería de plataforma con amplia experiencia diseñando pipelines de CI/CD para equipos de desarrollo de distintos tamaños. Necesito que me ayudes a diseñar o mejorar el pipeline de integración y despliegue continuo de mi proyecto. Mi contexto: - Tipo de aplicación: [web monolítica, microservicios, API, aplicación móvil, librería, etc.] - Stack tecnológico principal: [lenguaje, frameworks, base de datos] - Plataforma de CI/CD actual o disponible: [GitHub Actions, GitLab CI, Jenkins, CircleCI, Bitbucket Pipelines, Azure DevOps, etc.] - Infraestructura de despliegue: [AWS, GCP, Azure, VPS, Kubernetes, serverless, etc.] - Tamaño del equipo de desarrollo: [número de desarrolladores] - Frecuencia de despliegue actual: [una vez a la semana, manual, etc.] - Mayor dolor actual en el proceso de release: [despliegues manuales lentos, falta de tests, rollbacks traumáticos, entornos inconsistentes, etc.] Con ese contexto, dame: 1. ARQUITECTURA DEL PIPELINE CI/CD Diseña la arquitectura completa del pipeline para mi caso: las fases desde el commit hasta producción (lint, build, test unitario, test de integración, análisis estático, build de imagen, despliegue a staging, smoke tests, despliegue a producción), los gates de calidad que deben pasar antes de avanzar a la siguiente fase y el tiempo objetivo de cada fase para que el pipeline completo no supere los quince minutos. 2. ESTRATEGIA DE TESTING AUTOMATIZADO ¿Qué tests debo incluir en el pipeline y en qué orden? Dame la pirámide de tests recomendada para mi tipo de aplicación: el número y tipo de tests unitarios, de integración, end-to-end y de performance que necesito, las herramientas recomendadas para mi stack y la cobertura mínima que debe exigir el pipeline antes de permitir el merge a la rama principal. 3. GESTIÓN DE RAMAS Y ESTRATEGIA DE MERGE ¿Qué estrategia de branching me recomiendas para trabajar bien con CI/CD? Explícame las diferencias entre GitFlow, trunk-based development y GitHub Flow, y cuál encaja mejor con mi equipo y frecuencia de despliegue objetivo. Incluye las reglas de protección de ramas que debo configurar en mi repositorio y el proceso de code review antes del merge. 4. ENTORNOS Y GESTIÓN DE SECRETOS ¿Cómo gestiono los distintos entornos (development, staging, producción) en el pipeline? Dame las mejores prácticas para: la paridad entre entornos, la gestión segura de secretos y variables de entorno en el pipeline (sin hardcodear credenciales), el uso de feature flags para desplegar código sin activarlo y la sincronización de bases de datos entre entornos para los tests. 5. ESTRATEGIAS DE DESPLIEGUE SIN DOWNTIME Explícame las estrategias de despliegue que permiten actualizar la aplicación en producción sin interrumpir el servicio: blue-green deployment, canary releases, rolling updates y feature flags. Para mi caso concreto, ¿cuál recomiendas y por qué? Dame el proceso paso a paso para implementarla con mi infraestructura. 6. ROLLBACK Y RECUPERACIÓN ANTE FALLOS ¿Cómo diseño el proceso de rollback para que recuperarme de un despliegue fallido en producción sea rápido y seguro? Dame el protocolo: cómo detectar un despliegue problemático (métricas de alerta, smoke tests post-despliegue), el proceso de rollback automático vs manual, cómo gestionar las migraciones de base de datos que no son reversibles y el runbook que debe seguir el equipo cuando algo va mal en producción. 7. MÉTRICAS DORA Y MADUREZ DEL PIPELINE ¿Cómo mido si mi pipeline de CI/CD está funcionando bien? Explícame las cuatro métricas DORA (Deployment Frequency, Lead Time for Changes, Change Failure Rate y Time to Restore Service) y cómo medirlas en mi contexto. Dame los valores de referencia de los equipos de alto rendimiento y el plan de mejora incremental para pasar de donde estoy ahora a deployar a producción con confianza múltiples veces al día.