Continuous Integration y Continuous Delivery/Deployment — prácticas que automatizan la integración de código, testing y entrega a producción. Fundamento de la ingeniería de software moderna.
CI/CD son dos prácticas complementarias que automatizan el camino del código desde el commit hasta producción. Juntas eliminan el «integration hell» y permiten releases frecuentes con confianza.
Integrar código frecuentemente (mínimo diario) a una rama compartida, con verificación automática.
commit → build → lint → unit tests → integration tests → artifact
# Ejemplo GitHub Actions
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- run: pnpm lint
- run: pnpm test
- run: pnpm buildDos conceptos distintos que a menudo se confunden:
El código puede ir a producción en cualquier momento — el deploy es manual pero el proceso está automatizado.
CI → staging auto → aprobación manual → producción
El código va a producción automáticamente si pasa todos los checks — sin intervención humana.
CI → staging auto → producción auto
| Aspecto | Delivery | Deployment |
|---|---|---|
| Deploy a producción | Manual (botón) | Automático |
| Frecuencia típica | Diaria/semanal | Múltiples veces al día |
| Requiere | Tests confiables | Tests + feature flags + monitoring |
| Riesgo | Menor | Requiere madurez |
┌─────────────────────────────────────────────────────────────────┐
│ CI/CD Pipeline │
├─────────┬─────────┬─────────┬─────────┬─────────┬──────────────┤
│ Build │ Test │ Scan │ Package │ Deploy │ Monitor │
├─────────┼─────────┼─────────┼─────────┼─────────┼──────────────┤
│ compile │ unit │ SAST │ docker │ staging │ logs │
│ lint │ integ │ DAST │ helm │ canary │ metrics │
│ deps │ e2e │ secrets │ artifact│ prod │ alerts │
└─────────┴─────────┴─────────┴─────────┴─────────┴──────────────┘
Dos entornos idénticos. Cambiar tráfico instantáneamente.
┌─────────┐
Users ───┤ Router ├──► Blue (v1) ← activo
└────┬────┘
└──────► Green (v2) ← standby/nuevo
Rollback: cambiar router de vuelta a Blue.
Enviar porcentaje pequeño de tráfico a la nueva versión.
Users ──┬── 95% ──► v1 (estable)
└── 5% ──► v2 (canary)
Incrementar gradualmente si métricas son buenas.
Actualizar instancias una por una.
[v1] [v1] [v1] [v1] → [v2] [v1] [v1] [v1] → [v2] [v2] [v2] [v2]
Las cuatro métricas de DevOps Research and Assessment:
| Métrica | Elite | High | Medium | Low |
|---|---|---|---|---|
| Deployment frequency | On-demand (múltiples/día) | Diario-semanal | Semanal-mensual | Mensual+ |
| Lead time for changes | < 1 hora | 1 día - 1 semana | 1 semana - 1 mes | 1 mes+ |
| Change failure rate | 0-15% | 16-30% | 31-45% | 46%+ |
| Time to restore | < 1 hora | < 1 día | < 1 semana | 1 semana+ |
| Categoría | Herramientas |
|---|---|
| CI/CD Platforms | GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis CI |
| Artifact Registry | Docker Hub, GitHub Packages, AWS ECR, Google Artifact Registry |
| Infrastructure | Terraform, Pulumi, AWS CDK, CloudFormation |
| Kubernetes | ArgoCD, Flux, Helm, Kustomize |
| Testing | Jest, Playwright, Cypress, k6 |
| Security | Snyk, Trivy, SonarQube, OWASP ZAP |
| Monitoring | Datadog, Grafana, Prometheus, New Relic |
CI/CD es el multiplicador de velocidad más importante en ingeniería de software. Sin CI, los bugs se acumulan y los merges son dolorosos. Sin CD, el código aprobado espera días o semanas para llegar a producción. Las métricas DORA demuestran consistentemente que los equipos con CI/CD maduro entregan más rápido y con mayor estabilidad.
Plataforma de desarrollo colaborativo construida sobre Git. Más que hosting de repositorios — es el hub central para code review, CI/CD, gestión de proyectos y colaboración open source.
Modelo de branching minimalista diseñado para continuous deployment. Solo dos elementos — main y feature branches — con PRs como punto de integración y deploy inmediato tras merge.
Cultura y conjunto de prácticas que unifican desarrollo (Dev) y operaciones (Ops) para entregar software con mayor velocidad, calidad y confiabilidad. No es un rol — es una forma de trabajar.
Enfoque de desarrollo que aprovecha las ventajas de la nube: contenedores, microservicios, infraestructura inmutable y automatización declarativa para sistemas escalables y resilientes.
Prácticas, herramientas y métricas para mantener código legible, mantenible, testeable y libre de defectos a lo largo del tiempo.
Repositorios para almacenar, versionar y distribuir imágenes de contenedores, desde registros públicos como Docker Hub hasta registros privados como ECR.
GitHub App serverless que auto-aprueba pull requests después de que CI pasa, con revisión de código opcional vía Amazon Bedrock. Cinco repositorios: app TypeScript/Probot, módulo Terraform AWS (Lambda + API Gateway + Secrets Manager + SQS DLQ), módulo Terraform GitHub (webhooks), infra de despliegue y repo de pruebas.
Sistema de tres agentes que automatiza el ciclo de vida de contenido MDX bilingüe: auditoría QA determinística, correcciones quirúrgicas y upgrades completos — todo orquestado con Strands Agents, Claude Sonnet 4 en Amazon Bedrock y GitHub Actions con patrón diamante.
Proceso automatizado de identificar vulnerabilidades conocidas en código, dependencias, contenedores e infraestructura antes de que lleguen a producción.
Enfoques y niveles de testing para validar que el software funciona correctamente, desde unit tests hasta tests end-to-end y testing en producción.
Herramienta de Infrastructure as Code de HashiCorp que permite definir, provisionar y gestionar infraestructura multi-cloud mediante archivos declarativos en HCL.
Herramientas automatizadas que verifican estilo, detectan errores potenciales y formatean código consistentemente, eliminando debates de estilo y mejorando la calidad.
Práctica de definir y gestionar infraestructura mediante archivos de configuración versionados en lugar de procesos manuales. Fundamento de la automatización moderna de operaciones.
Caminos recomendados y pre-configurados para tareas comunes de desarrollo que incorporan mejores prácticas, reduciendo la carga cognitiva de los equipos.
Práctica operacional que usa Git como fuente única de verdad para infraestructura y configuración, con reconciliación automática entre el estado deseado y el real.
Plataforma de CI/CD nativa de GitHub. Workflows declarativos en YAML que automatizan build, test, deploy y cualquier tarea del ciclo de desarrollo — directamente desde el repositorio.
Técnica que permite activar o desactivar funcionalidades en producción sin desplegar código nuevo, habilitando releases progresivos y experimentación.
Integración de prácticas de seguridad en todo el ciclo de vida del desarrollo de software, automatizando controles de seguridad en el pipeline de CI/CD.
Conjunto de prácticas técnicas y culturales que implementan los principios DevOps — desde Infrastructure as Code hasta blameless post-mortems. El «cómo» detrás de la filosofía.
Disciplina enfocada en optimizar la productividad, satisfacción y efectividad de los desarrolladores mediante herramientas, procesos y entornos bien diseñados.
Especificación para definir entornos de desarrollo reproducibles en contenedores, eliminando el problema de 'funciona en mi máquina' y acelerando el onboarding.
Framework open-source de AWS para construir aplicaciones serverless con una sintaxis simplificada de CloudFormation, CLI para desarrollo local y despliegue integrado.
Práctica de diseñar y desarrollar productos digitales que puedan ser usados por todas las personas, incluyendo aquellas con discapacidades visuales, auditivas, motoras o cognitivas.