¿Qué es CI/CD?
CI/CD (Integración Continua / Entrega Continua o Despliegue Continuo) es una práctica de automatización en el desarrollo de software.
- CI (Integración Continua): Integrar cambios de código frecuentemente en la rama principal, ejecutando automáticamente compilación y pruebas
- CD (Entrega Continua): Además de CI, automatiza la preparación para el despliegue en producción
- CD (Despliegue Continuo): Despliega automáticamente a producción una vez que las pruebas pasan
¿Por qué es importante CI/CD? La compilación, pruebas y despliegue manuales consumen tiempo y son causa de errores humanos.
Flujo del Pipeline CI/CD
flowchart LR
Source["Source"] --> Build["Build"] --> Test["Test"] --> Deploy["Deploy"] --> Monitor["Monitor"]
- Source: Commit, push, creación de PR
- Build: Instalación de dependencias, compilación
- Test: Pruebas unitarias, de integración, E2E
- Deploy: Despliegue a staging y producción
- Monitor: Health checks, monitoreo de errores
Ejemplo de GitHub Actions
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run lint
- run: npm test
- run: npm run build
Estrategias de Despliegue
| Estrategia | Descripción |
|---|---|
| Rolling Update | Reemplazo secuencial |
| Blue-Green | Cambio entre 2 entornos |
| Canary | Solo parte del tráfico con nueva versión |
Resumen
CI/CD es una práctica esencial en el desarrollo de software moderno. A través de la automatización, se reducen los errores humanos y se obtiene retroalimentación rápida.
← Volver a la lista