Estrategias de deploy: blue-green, canary, rolling
Dedicated & VPS
23

Deployar es más que subir archivos

Cuando tu aplicación ya tiene tráfico real, la pregunta deja de ser "¿cómo subo el código?" y pasa a ser "¿cómo lo sustituyo sin cortar el servicio ni arriesgar una catástrofe?". Existen varias estrategias probadas, cada una con un equilibrio distinto entre complejidad, coste y seguridad. Conocerlas te permite elegir conscientemente en lugar de depender siempre de la misma receta.

Blue-green: dos entornos, un interruptor

Mantienes dos entornos idénticos en producción, llamados tradicionalmente blue y green. En cualquier momento, solo uno sirve tráfico real. El despliegue funciona así:

  1. Mientras blue atiende a los usuarios, instalas la versión nueva en green.
  2. Haces pruebas contra green en privado (smoke tests, health checks).
  3. Cuando estás conforme, el balanceador conmuta todo el tráfico de blue a green.
  4. Blue queda como respaldo. Si algo sale mal, vuelves a conmutar en segundos.

Ventajas

  • Rollback instantáneo: volver atrás es un cambio de switch, no un redeploy.
  • Zero downtime: los usuarios no perciben el cambio.
  • Testeo previo real: pruebas contra infraestructura de producción antes de abrir la puerta.

Desventajas

  • Coste doble: mantienes dos entornos funcionando a la vez.
  • Migraciones de base de datos: si hay cambios de esquema, ambos entornos deben convivir con él. Requiere planificación.

Rolling update: reemplazo gradual

En lugar de duplicar infraestructura, reemplazas instancias una por una. Si tienes diez servidores, actualizas uno, esperas a que pase los health checks, sigues con el siguiente. Durante el proceso conviven dos versiones en producción. Es la estrategia por defecto en Kubernetes y en la mayoría de orquestadores modernos.

Ventajas

  • Sin doblar recursos: usas la infraestructura que ya tienes.
  • Automatización natural: los orquestadores lo implementan de serie.
  • Buen punto medio: si un nodo falla al arrancar la versión nueva, el despliegue se detiene antes de tocar al resto.

Desventajas

  • Compatibilidad entre versiones: durante el rolling, clientes y servidores viejos y nuevos coexisten. Tus APIs deben tolerarlo.
  • Rollback más lento: revertir requiere otro rolling, no un switch.

Canary: suelta al canario primero

El nombre viene de los canarios que los mineros llevaban a las minas para detectar gases tóxicos. La idea es análoga: envías un porcentaje pequeño del tráfico (por ejemplo, el 5%) a la versión nueva, observas métricas y solo sigues escalando si todo va bien. Si el error rate sube o la latencia empeora, retiras el canary antes de que el impacto sea general.

Ventajas

  • Detección temprana: bugs que solo aparecen bajo carga real se ven con pocos usuarios afectados.
  • Control fino: puedes segmentar por región, tipo de usuario o dispositivo.
  • Menor blast radius: un fallo grave impacta al 5%, no al 100%.

Desventajas

  • Requiere observabilidad seria: si no mides bien, no sabes si tu canary va bien o mal.
  • Infraestructura más compleja: el balanceador debe saber enrutar por porcentajes.

Cuál elegir según tu contexto

No hay una estrategia universalmente mejor. Depende de tres factores: tamaño del equipo, tolerancia al riesgo y presupuesto de infraestructura.

  • Equipo pequeño, proyecto medio: rolling update suele ser suficiente. Lo obtienes gratis con cualquier orquestador moderno.
  • Equipo que necesita rollback instantáneo: blue-green. La seguridad compensa el coste duplicado.
  • Equipo con tráfico alto y observabilidad madura: canary. Es la estrategia más segura, pero exige métricas, alertas y automatización avanzada.

Muchos equipos combinan estrategias: canary para la primera oleada y luego rolling para el resto. Lo importante es que la decisión sea consciente y documentada, no una costumbre heredada. Cada despliegue es una oportunidad de cerrar la puerta al siguiente incidente.