¿Qué son los canary releases?
Canary release es una estrategia de despliegue donde una nueva versión se despliega primero para un pequeño subconjunto de usuarios antes de llegar a todos. Si todo funciona bien, se aumenta gradualmente el tráfico.
Estrategias de enrutamiento
- Porcentaje de tráfico: 5% → 25% → 50% → 100%.
- Por usuarios internos: primero el equipo de QA, luego empleados, luego 1% de usuarios, etc.
- Por segmento: usuarios en región específica, con cierto plan, etc.
- Por feature flag: combina canary con feature flags para control granular.
Implementación con Kubernetes
apiVersion: v1
kind: Service
metadata:
name: myapp
spec:
selector:
app: myapp
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-canary
annotations:
rollme: "v2"
spec:
replicas: 1 # 10% comparado con 9 de stable
selector:
matchLabels:
app: myapp
track: canary
Monitoreo durante canary
Compara métricas entre canary y stable: latencia, tasa de error, throughput, uso de CPU/memoria. Si las métricas empeoran, haz rollback automático.
Canary vs Blue-Green
Blue-green: dos entornos completos, switch instantáneo. Canary: gradual, requiere más monitoreo pero permite detectar problemas con impacto limitado.
Beneficios
- Impacto limitado si la versión tiene bugs.
- Validación en producción con tráfico real.
- Rollback instantáneo sin downtime.
- Confianza en despliegues frecuentes.
¿Quieres canary releases en tu infraestructura? En Vynta implementamos despliegues graduales seguros.