v1.8 entra en producción “en canario”: 10% de las solicitudes a través de Ingress ponderado. El equipo celebra. Dos horas más tarde, el soporte informó tiempos de espera, pero solo para ciertos clientes. Nadie ha configurado un panel que compare el p95 canary y la versión estable. El retroceso manual lleva cuarenta minutos porque nadie sabe cuánto peso se aplicó.
Una liberación canary no es un porcentaje mágico. Es un contrato de medición: una pequeña parte del tráfico real, métricas que se comparan y una reversión automatizada o programada en menos de unos minutos.
Fases: interna, canary, ramp-up
Una implementación canary madura sigue una ruta explícita:
- Dogfood: equipo interno o encabezado
X-Canary: 1para evaluadores. - Canary: Del 1 al 5% del tráfico real, métricas comerciales y técnicas en paralelo.
- Aumento: 25 → 50 → 100% si se cumplen los objetivos de nivel de servicio.
- Abandono: peso al 0% más detener instancias canarias.
Cada fase tiene una duración mínima, por ejemplo treinta minutos al 5% con suficiente tráfico. De lo contrario, el canario está estadísticamente vacío y no valida nada.
El cinco por ciento del tráfico un domingo a las 3 de la madrugada no valida ninguna regresión visible durante la semana.
Métricas y barandillas
| Señal | Ejemplo de umbral | Acción |
|---|---|---|
| Tasa de error HTTP 5xx | > 2× la línea base | Reversión automática |
| Latencia p95 | + 30% frente a estable | Romper con la subida |
| Éxito en el pago | − 5 % frente a estable | Abandono |
| Saturación de CPU canaria | Estrangulamiento | Investigación antes del ascenso |
Prometheus y Alertmanager, o herramientas Argo Rollouts/Flagger. Defina antes de la implementación que recibe el buscapersonas y qué umbrales desencadenan el apagado, no después del primer ticket de soporte.
Enrutamiento: malla, ingreso, indicadores de características
Malla de servicio: granularidad fina, cifrado mutuo, observabilidad, con mayor costo operativo.
Ingress nginx o Traefik ponderado: simple para HTTP sin estado, a menudo suficiente para un primer canario.
Marcas de características (LaunchDarkly, soluciones de código abierto): canario lógico sin división de infraestructura: útil para la interfaz, menos para un cambio profundo de protocolo.
Comience con un encabezado o cohorte de cookies en un entorno cercano a la producción, luego tráfico aleatorio en porcentaje.
Para conocer las métricas que alimentan las barreras de seguridad, consulte Prometheus: elegir métricas útil para el diagnóstico.
Versión y compatibilidad de datos
El canario requiere dos versiones simultáneamente en producción. Un cambio de API incompatible prohíbe el canary sin una puerta de enlace de versión o clientes consistentes.
Migraciones de bases de datos: esquema de “solo expansión” durante canary; contracción después del 100% de estabilización. Sesiones, claves de caché, serialización: verifique la compatibilidad cruzada entre versiones.
La cumbre: falso canario, despliegue real sin red
Esto es lo que esconde la etiqueta “canario” cuando faltan salvaguardias.
Barandillas = métricas comparadas + reversión probada + ventana de rampa explícita: no es un control deslizante de Ingress olvidado en una wiki.
Decide y avanza sin puntos ciegos
Antes de la próxima implementación a “pequeña escala”, bloquee el proceso:
- Elija una señal de reversión principal (errores, latencia p95 o conversión de pago).
- Abandono de Automato o script: peso a cero en menos de dos minutos, probado en puesta en escena.
- Verifique que las migraciones de esquemas sigan siendo compatibles con las versiones antiguas y nuevas.
- Escriba un runbook de una página: pedidos de peso, enlace al panel, umbrales, toma de decisiones.
- Repetir el día del juego: simule una degradación canaria y mida el tiempo de reversión.
- Compare las ofertas de malla, Kubernetes administrado y balanceador de carga a través del directorio si escala.
Criterio de madurez: abandono canario de la puesta en escena en menos de dos minutos sin reunión; de lo contrario, no estás listo para la producción.
Preguntas frecuentes
¿Canario o azul verdoso?
El canario avanza por fracciones; el azul verdoso cambia de repente. El canario limita el radio de impacto; azul-verde simplifica la reversión binaria completa.
¿Qué métricas desencadenan una reversión automática?
Tasa de error, latencia p95, conversión o pago, en comparación con la línea de base estable, con umbrales establecidos antes de la implementación.
¿Cómo encaminar el tráfico canario?
Ingreso ponderado, malla de servicio o indicadores de características: siempre medidos y reproducibles, nunca “ponemos el diez por ciento a mano”.
¿Deberíamos realizar canary en la base de datos?
El esquema debe seguir siendo compatible con ambas versiones durante la fase. Aplicar expandir/contraer; no implemente un canario que rompa la versión anterior en silencio.
Un canario maduro termina con números, no con un "no vimos ninguna reseña en Slack".
