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.
| Estrategia | Como funciona | Riesgo | Complejidad |
|---|---|---|---|
| Recreate | Apagar todo, desplegar nuevo | Alto (downtime) | Baja |
| Rolling | Actualizar pods uno a uno | Medio | Media |
| Blue-Green | Dos entornos, switch de trafico | Bajo | Media-Alta |
| Canary | % de trafico al nuevo, incrementar | Muy bajo | Alta |
| A/B Testing | Segmentar por usuario/region | Muy bajo | Muy 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.
La estrategia correcta depende de tu tolerancia al riesgo y la madurez de tu plataforma.