Estrategias de Despliegue en Kubernetes (Deployment Strategies) 🚀

Notas de estudio para la certificación CKA/CKAD.

1. Rolling Update (El Estándar) 🔄

  • Comportamiento: Actualización incremental. Kubernetes crea Pods de la nueva versión (v2) y elimina los de la vieja (v1) poco a poco.
  • Pros: Sin tiempo de inactividad (Zero Downtime).
  • Contras: Durante el proceso conviven dos versiones de la app (v1 y v2) al mismo tiempo.
  • Uso: La estrategia por defecto de los Deployments.

2. Canary Deployment (El Canario en la Mina) 🐤

  • Comportamiento: Despliegas la nueva versión (v2) para un subconjunto muy pequeño de usuarios (o tráfico) mientras el resto sigue en la v1.
  • Objetivo: Validar logs positivos y métricas (“si el canario sobrevive”) antes de propagar la actualización al 100% de los clientes.
  • Pros: Minimiza el impacto si la nueva versión tiene errores.
  • Implementación: Se suele hacer con un Service Mesh (Istio/Linkerd) o controlando réplicas manuales.

3. Blue/Green Deployment (Azul/Verde) 🔵🟢

  • Comportamiento: Tienes dos ambientes idénticos.
    • Blue (Activo): Tiene la v1 recibiendo todo el tráfico.
    • Green (Inactivo): Despliegas la v2 completa aquí.
  • El Switch: Cuando Green está listo y probado, cambias el balanceador para que apunte al 100% a Green. Luego apagas Blue.
  • Pros: Rollback instantáneo (solo regresas el switch).
  • Contras: Costoso (necesitas el doble de recursos/hardware temporalmente).

4. Recreate (El Interruptor) 🔌

  • Comportamiento: Apaga todos los Pods viejos (v1) Espera Enciende los nuevos (v2).
  • Pros: Estado limpio. Nunca conviven dos versiones.
  • Contras: Downtime (Tiempo de inactividad). El servicio se cae mientras se hace el cambio.
  • Uso: Solo cuando la app no soporta correr dos versiones a la vez (ej. migraciones de DB conflictivas).