blue/green deployment

introducción

blue/green despliega dos versiones de la app: una activa (blue) y otra nueva (green). el balanceador enruta tráfico a una u otra; si algo falla, vuelves a blue instantáneamente.

ventaja: cero downtime, rollback fácil y una forma segura de validar la versión nueva con tráfico real antes de convertirla en la productiva.

Blue/Green Deployment: cambios sin dolor
idea — cambios sin dolor.

ambas versiones desplegadas

Balanceador apuntando a blue y green
blue = en producción; green = candidata.

paso de green a blue

green recibe tráfico de forma controlada. si todo está ok, se convierte en la versión activa.

Decisión: ¿green está bien? entonces conmutar
si falla, green nunca se vuelve productiva y blue sigue activo.

canary: mueve el % de tráfico

prueba la versión green con una pequeña fracción del tráfico antes de conmutar totalmente.

balanceador de carga (canary)
Blue (actual)
Blue 90%Green 10%
Green (candidata)
mueve el slider para redirigir una fracción del tráfico hacia green.
interacción — balanceador con división de tráfico Blue↔Green y requests simulados.

“ejemplo real” por etapas

Etapa 1 - balanceador con blue y se prepara green
1) se prepara la nueva release (green).
Etapa 2 - dev team verifica logs, conexiones y pruebas
2) equipo revisa logs, conexiones y hace pruebas de humo.
Etapa 3 - decisión de conmutar
3) ¿todo correcto? se aprueba el switch.
Etapa 4 - se apaga la versión anterior
4) green toma el tráfico; blue se apaga o queda como hot-standby.

beneficios

  • cero downtime: el balanceador decide a qué versión enviar tráfico.
  • rollback en segundos: vuelve a la versión previa (blue).
  • ideal para staging con usuarios reales (canary/traffic shifting opcional).
Checklist: sin downtime, rollback fácil, staging real
resumen — por qué elegir blue/green.

tips prácticos

  • inmutabilidad: cada release es una imagen nueva (infra + app).
  • estado fuera del pod: DBs/colas gestionadas; usa migraciones backward-compatible.
  • feature flags: habilita capacidades de forma gradual.
  • observabilidad: compara métricas de blue vs. green antes de conmutar.