ENES

Canary release

Lanzar una versión nueva primero a pocos usuarios y ampliar solo si anda bien.

Un router manda el 95% de los usuarios a la versión actual y el 5% a la nueva, vigilada por un canario

Un canary release (o despliegue canario) es una forma de poner en producción una versión nueva de un software de a poco. En vez de pasar a todos los usuarios de una, mandás una parte chica del tráfico, por ejemplo el 1% o el 5%, a la versión nueva, mientras el resto sigue en la actual. Y mirás: tasa de errores, tiempos de respuesta, registros, lo que te diga que el sistema está sano.

Si los números dan tan bien como los de la versión vieja, vas ampliando la porción de a pasos, por ejemplo al 25%, después al 50% y después a todos. Si algo sale mal, mandás todo el tráfico de vuelta a la versión vieja, y el problema solo lo vio un grupo chico de usuarios. Muchos equipos automatizan todo el ciclo: una herramienta va moviendo el tráfico según un cronograma y vuelve atrás sola si una métrica pasa un umbral. En AWS, CodeDeploy y Lambda pueden mover tráfico así; en Kubernetes lo hacen herramientas como Argo Rollouts y Flagger.

El nombre viene de los canarios que los mineros llevaban bajo tierra: el pájaro reaccionaba al gas tóxico antes que las personas y les daba tiempo de salir. Comparado con un blue-green deployment, que pasa todo el tráfico de un entorno completo a otro, el canario limita a cuánta gente puede afectar un lanzamiento fallado. El costo es más complejidad: hay dos versiones corriendo a la vez, así que tienen que ser compatibles con los mismos datos, y hace falta buen monitoreo para saber si el canario está bien.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Cloud