Volver al curso

DevOps Moderno: CI/CD, Docker y Kubernetes

leccion
5 / 12
advanced
30 horas
CI/CD: Pipelines de Integracion y Despliegue Continuo

Estrategias de Deployment: Blue-Green, Canary y Rolling

Lectura
45 min~2 min lectura

Estrategias de Deployment para Zero Downtime

El deployment es el momento mas critico del ciclo de desarrollo. Un mal deployment puede tumbar tu servicio y afectar a miles de usuarios. Las estrategias avanzadas de deployment permiten actualizar tu aplicacion sin tiempo de inactividad y con la capacidad de hacer rollback instantaneo.

EstrategiaComo funcionaRiesgoComplejidad
RecreateApagar todo, desplegar nuevoAlto (downtime)Baja
RollingActualizar pods uno a unoMedioMedia
Blue-GreenDos entornos, switch de traficoBajoMedia-Alta
Canary% de trafico al nuevo, incrementarMuy bajoAlta
A/B TestingSegmentar por usuario/regionMuy bajoMuy alta

Blue-Green Deployment

Mantienes dos entornos identicos (Blue y Green). Uno esta en produccion (Blue) mientras despliegas la nueva version en el otro (Green). Cuando Green esta listo y testeado, cambias el trafico.

# Kubernetes Blue-Green con Services
# 1. Deploy nueva version (green)
kubectl apply -f deployment-green.yml

# 2. Verificar que green esta healthy
kubectl rollout status deployment/app-green

# 3. Switch de trafico (cambiar selector del Service)
kubectl patch service app-service \
  -p '{"spec":{"selector":{"version":"green"}}}'

# 4. Si hay problemas, rollback instantaneo
kubectl patch service app-service \
  -p '{"spec":{"selector":{"version":"blue"}}}'

Canary Deployment

Envias un pequeno porcentaje de trafico (1-5%) a la nueva version. Si las metricas son buenas, incrementas gradualmente hasta 100%.

# Canary con Nginx Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-canary
  annotations:
    nginx.ingress.kubernetes.io/canary: 'true'
    nginx.ingress.kubernetes.io/canary-weight: '10'
spec:
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: app-canary
                port:
                  number: 80

🚀 Dato Clave

Para startups LATAM, empieza con Rolling Updates (default en Kubernetes). Migra a Blue-Green cuando tengas SLAs estrictos. Canary solo cuando tengas metricas y observabilidad avanzada.

Deployment strategies

La estrategia correcta depende de tu tolerancia al riesgo y la madurez de tu plataforma.