CI/CD

CI/CD (Integración Continua/Entrega Continua o Despliegue Continuo) es un conjunto de prácticas que automatiza el proceso de lanzamiento de software.

CI/CD, que significa Integración Continua y Entrega Continua (o Despliegue Continuo), es un conjunto de prácticas de desarrollo de software destinadas a automatizar y mejorar la eficiencia del proceso de lanzamiento de software. La Integración Continua (CI) implica que los desarrolladores fusionen sus cambios de código en un repositorio compartido con frecuencia, típicamente varias veces al día. Cada fusión se verifica luego mediante una compilación automatizada y pruebas automatizadas. Esta práctica ayuda a detectar errores de integración rápidamente, evitando que se acumulen y sean más difíciles de corregir. La Entrega Continua (CD) es la extensión natural de la CI. Asegura que los cambios de código que pasan las pruebas automatizadas se lancen automáticamente a un repositorio o entorno de staging, haciéndolos listos para su despliegue en producción en cualquier momento. El Despliegue Continuo (CD) va un paso más allá, desplegando automáticamente cada cambio validado directamente en producción. El objetivo principal de CI/CD es construir, probar y lanzar software de forma más rápida y fiable, reduciendo el riesgo asociado con lanzamientos grandes e infrecuentes y permitiendo a los equipos responder más rápidamente a las demandas del mercado o a los comentarios de los usuarios. Fomenta la colaboración, reduce el trabajo manual y mejora la calidad y estabilidad general del software.

        graph LR
  Center["CI/CD"]:::main
  Rel_automation["automation"]:::related -.-> Center
  click Rel_automation "/terms/automation"
  Rel_cicd_pipeline["cicd-pipeline"]:::related -.-> Center
  click Rel_cicd_pipeline "/terms/cicd-pipeline"
  Rel_continuous_delivery["continuous-delivery"]:::related -.-> Center
  click Rel_continuous_delivery "/terms/continuous-delivery"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Prueba de conocimiento

1 / 3

🧒 Explícalo como si tuviera 5 años

CI/CD es como una forma súper rápida y automática de actualizar tus aplicaciones favoritas. En lugar de esperar mucho tiempo para grandes actualizaciones, los pequeños cambios se comprueban y se añaden constantemente, para que siempre tengas las últimas mejoras.

🤓 Expert Deep Dive

CI/CD representa un cambio de paradigma hacia el desarrollo de software ágil y lean, enfatizando bucles de retroalimentación rápidos y entrega iterativa. Desde la perspectiva de los sistemas, transforma el ciclo de vida del software en un proceso altamente automatizado, observable y resiliente. La Integración Continua se centra en mantener una base de código saludable a través de fusiones frecuentes y validación automatizada, mitigando los riesgos asociados con ramas de características de larga duración y fases de integración complejas. La Entrega Continua asegura la desplegabilidad automatizando el pipeline de lanzamiento hasta el punto de despliegue en producción, permitiendo decisiones de lanzamiento impulsadas por el negocio. El Despliegue Continuo automatiza el paso final, permitiendo la entrega de valor casi instantánea. Las consideraciones arquitectónicas clave incluyen estrategias robustas de control de versiones, pirámides de automatización de pruebas efectivas, gestión de artefactos y automatización de infraestructura. Los compromisos implican el costo inicial de configuración, la necesidad de una cultura de pruebas madura y el potencial de una mayor complejidad operativa si no se gestiona adecumente. Las vulnerabilidades pueden surgir de una cobertura de pruebas inadecuada, configuraciones de pipeline inseguras o una monitorización insuficiente.

📚 Fuentes