Hoy en día existe una gran variedad de estrategias de despliegue, y con el tiempo habrá aún más. Dicho esto, dos de las más utilizadas por algunas de las empresas más grandes del mundo son las estrategias de despliegue Canary y Blue-Green.
Al comparar el despliegue Blue-Green con el Canary, no se trata solo de velocidad o simplicidad. Uno de los factores más importantes a tener en cuenta al elegir entre estas estrategias es el tiempo de inactividad durante el despliegue.
Para minimizar ese tiempo de inactividad y garantizar una transición sin interrupciones al publicar actualizaciones o modificaciones, elegir entre el despliegue Canary y el Blue-Green de forma acertada es fundamental.
A continuación, analizamos qué ofrece cada estrategia, con una comparativa directa entre el despliegue Blue-Green y el Canary, y compartimos nuestra propia experiencia con ambas.
¿Qué es el despliegue Blue-Green y qué ofrece?
Con la estrategia de despliegue Blue-Green, una nueva versión de una aplicación puede publicarse en cuanto ha sido probada y validada. Esto es posible gracias a los dos entornos idénticos: el entorno azul y el verde, de ahí el nombre Blue-Green.
El mecanismo es sencillo: uno de estos entornos está activo y el otro, inactivo. Esto permite desplegar la nueva versión en el entorno inactivo (por ejemplo, el verde). Como ambos entornos son completamente idénticos en recursos, infraestructura y configuración, cualquier problema de la actualización puede detectarse y corregirse antes de que llegue a producción.
Una vez probada la actualización y confirmado que funciona correctamente, el tráfico en vivo se redirige al entorno inactivo. El entorno verde pasa a ser el activo, y el que antes estaba activo (el azul) queda inactivo.
El entorno azul, ahora inactivo, queda en espera y puede usarse para probar nuevas actualizaciones mientras el entorno verde sirve en producción la versión recién desplegada. De este modo, el tiempo de inactividad es prácticamente nulo, ya que el tráfico se redirige al instante.
Además, si la actualización presenta algún problema, la función de rollback permite volver a la versión anterior de la aplicación. Eso sí, si los desarrolladores ya han empezado a trabajar en una nueva actualización en el entorno inactivo, revertir a ese entorno deja de ser una opción viable, ya que la versión anterior ya no está disponible allí.
Aunque muchas empresas y organizaciones utilizan esta estrategia, un ejemplo claro es Spotify. Dado que sus servicios deben estar disponibles las 24 horas del día, los 7 días de la semana, Spotify siempre mantiene el entorno inactivo de respaldo listo para cuando se publican nuevas actualizaciones.
¿Qué es el despliegue Canary y qué ofrece?
La diferencia principal entre el despliegue Canary y el Blue-Green es que, en lugar de tener dos entornos donde las actualizaciones se publican de golpe para todos los usuarios, la estrategia Canary lanza primero la actualización a un grupo reducido de usuarios.
Si la actualización tiene algún problema, solo un pequeño porcentaje de usuarios se ve afectado y puede dar su opinión. Una vez resueltos los problemas, la actualización se lanza a un grupo mayor de usuarios, que también informan a los desarrolladores si encuentran algún fallo.
Este ciclo se repite con grupos de usuarios progresivamente más grandes hasta que la actualización se lanza al 100% de los usuarios con todos los problemas resueltos. Por ejemplo, la actualización podría lanzarse primero al 2%, luego al 25%, después al 75% y, finalmente, al 100% de los usuarios.
Este lanzamiento gradual del despliegue Canary, frente al Blue-Green, ofrece una publicación más controlada y flexible. Permite a los desarrolladores probar funcionalidades y actualizaciones en un entorno acotado donde solo una pequeña parte de los usuarios puede encontrarse con posibles problemas.
Por último, Canary también ofrece una función de rollback similar; sin embargo, dado que el despliegue se realiza de forma gradual y por etapas, la reversión en Canary también se lleva a cabo de forma gradual y por etapas hasta alcanzar una versión estable.
Un ejemplo conocido de esta estrategia es el uso que Netflix hace de Canary junto con una herramienta llamada Chaos Monkey, que introduce fallos deliberados en el sistema. Si un fallo afecta al entorno canary, el equipo de Netflix puede analizar cómo responde el sistema y hacer los ajustes necesarios. Así, Netflix verifica que la actualización sigue siendo estable y resistente incluso en condiciones adversas.
Despliegue Blue-Green vs. Canary
Ambas estrategias de despliegue tienen sus propias ventajas, pero también sus limitaciones. Por eso es importante valorar los pros y los contras del despliegue Blue-Green frente al Canary antes de tomar una decisión.
Si tras leer esta sección todavía no tienes claro cuál elegir, al final del artículo también he incluido nuestra experiencia con estas dos estrategias y lo que aprendimos al usarlas.
Reducción del tiempo de inactividad
Una de las principales preocupaciones y el eje central de este artículo es la reducción del tiempo de inactividad en el despliegue Blue-Green frente al Canary. Uno de los puntos fuertes del despliegue Blue-Green es su rapidez: puedes publicar la actualización o nueva funcionalidad de tu aplicación al instante gracias a sus dos entornos.
Por otro lado, el enfoque de despliegue gradual de Canary permite minimizar los tiempos de inactividad: no solo porque un subconjunto reducido de usuarios experimenta los problemas, sino también porque, al recibirse feedback en cada etapa, la resolución de incidencias es mucho más rápida y sin interrupciones del servicio.
Además, aunque ambos servicios ofrecen funciones de reversión, la de Blue-Green es instantánea, lo que da a los desarrolladores una copia de seguridad fiable ante cualquier problema grave. Dicho esto, como mencioné antes, no habrá una versión de respaldo disponible si se está trabajando en una versión más nueva en el entorno inactivo.
La reversión de Canary solo puede realizarse de forma gradual, igual que su proceso de despliegue. Sin embargo, siempre está disponible, ya que la versión estable anterior no depende del entorno en el que se prueban y desarrollan las actualizaciones más recientes.
En cuanto a la reducción del tiempo de inactividad, al comparar el despliegue Canary con el Blue-Green, Canary es superior en control de riesgos y control granular. Sin embargo, si el objetivo es únicamente reducir el tiempo de inactividad, Blue-Green es la mejor opción de las dos, ya que el cambio es instantáneo.
Dicho esto, al debatir entre Blue-Green y Canary, también es importante considerar factores más allá de la reducción del tiempo de inactividad.
Tipo de aplicación
En general, podemos dividir las aplicaciones en dos categorías: las orientadas a transacciones y las orientadas a contenidos. En las aplicaciones con alta carga de transacciones, Blue-Green es una opción mucho mejor, ya que la alta disponibilidad del servicio y el tiempo de inactividad mínimo son prioritarios. Por eso, el cambio instantáneo y la reversión inmediata de Blue-Green lo sitúan por delante de Canary.
Por otro lado, las aplicaciones orientadas a contenidos no dependen de transacciones en tiempo real. Dado que este tipo de aplicaciones se usan habitualmente en plataformas de redes sociales y servicios de interacción con usuarios, Canary es una estrategia mucho más adecuada, ya que permite desplegar actualizaciones de forma gradual y recopilar comentarios continuamente en cada etapa.
Costes de infraestructura
Otro factor clave al elegir entre Blue-Green y Canary son los costes. Lógicamente, en Blue-Green los costes serán más elevados, ya que es necesario mantener dos entornos independientes.
Por eso, el entorno de producción único de Canary es una opción bastante más económica, lo que lo convierte en una alternativa más adecuada para equipos pequeños o aplicaciones con menos demanda de recursos.
Escalabilidad y mantenimiento a largo plazo
Por último, aunque los despliegues Blue-Green permiten escalar, mantener dos entornos completos para aplicaciones a gran escala puede ser costoso en recursos y complejo de gestionar. Con el tiempo, administrar y mantener entornos duplicados puede generar una sobrecarga considerable, especialmente en aplicaciones con una infraestructura compleja.
Esto hace que la decisión entre Canary y Blue-Green en términos de escalabilidad y mantenimiento sea bastante sencilla. Con Canary, escalar suele ser más simple y rentable, ya que no requiere entornos duplicados.
En cambio, se centra en escalar dentro del entorno principal ampliando gradualmente la base de usuarios que recibe los nuevos cambios. Esta configuración es mucho más manejable a largo plazo, ya que reduce la complejidad de la infraestructura y simplifica el mantenimiento.
La experiencia de Cloudzy con el despliegue Blue-Green frente al despliegue Canary
Al ofrecer servicios de DevOps a nuestros clientes, sabemos que la satisfacción del cliente, la alta disponibilidad y el tiempo de inactividad mínimo son factores críticos para su éxito. En un caso concreto, un cliente nos contactó para ayudarle con una actualización importante de infraestructura. El equipo tenía que decidir entre un despliegue Blue-Green y uno Canary para su sistema.
Tras valorarlo detenidamente, decidimos probar primero con Blue-Green, ya que ofrecía prácticamente cero tiempo de inactividad. Configuramos un entorno green idéntico y nos preparamos para desplegar la actualización. La presión era considerable: con pulsar un botón, todo el tráfico pasaría al entorno green y, como saben los desarrolladores, por mucho que se hagan pruebas, siempre hay un componente de incertidumbre sobre cómo saldrá.
Por suerte, todo salió bien. La transición fue completamente fluida y apenas tuvimos incidencias. Con el tiempo, a medida que los servicios y la base de usuarios de nuestro cliente crecían, necesitamos desplegar nuevas funcionalidades, y el debate entre Blue-Green y Canary volvió a surgir.
Esta vez, sin embargo, no fue realmente un debate. Se trataba de funcionalidades relativamente menores, sin duda no comparables a aquella actualización de infraestructura. Así que, naturalmente, optamos por Canary, ya que podíamos desplegar las funciones a una pequeña parte de los usuarios de nuestro cliente y resolver los problemas a través de sus comentarios.
Y desde luego fue la decisión correcta: aunque no tuvimos problemas graves, empezaron a aparecer algunos problemas menores, detectados por el 5 % de los usuarios de nuestro cliente a los que ya se les había desplegado la funcionalidad.
En Cloudzy creemos en el valor de las soluciones a medida. Tanto si tu negocio necesita la fiabilidad del despliegue Blue-Green como la flexibilidad del Canary, nuestro equipo de DevOps tiene la experiencia y el conocimiento para implementar la estrategia más adecuada para tu infraestructura. Contáctanos aquí hoy mismo para saber cómo podemos optimizar tu proceso de despliegue y mantener tus operaciones funcionando sin interrupciones.
Hablando de VPS, ofrecemos algunas de las tarifas más competitivas del sector VPS, con características que incluyen más de 12 ubicaciones en todo el mundo, conexiones de internet dedicadas de hasta 10 Gbps, almacenamiento NVMe SSD empresarial, potentes procesadores AMD EPYC con velocidad turbo de 3,23 GHz y un tiempo de actividad del 99,95 %. Consulta nuestros precios de VPS para más detalles.
Conclusiones
Al fin y al cabo, al comparar Canary y Blue-Green no se puede decir que uno sea claramente mejor que el otro. Todo depende del caso de uso y de cuál se adapta mejor a tus necesidades concretas.
Preguntas frecuentes
¿Cuál es la diferencia principal entre los despliegues Blue-Green y Canary?
La principal diferencia entre las estrategias de despliegue Blue-Green y Canary está en cómo se publican las actualizaciones. Blue-Green utiliza dos entornos idénticos: las actualizaciones se aplican al entorno inactivo, lo que permite un cambio instantáneo con prácticamente cero tiempo de inactividad. Canary, en cambio, despliega las actualizaciones de forma gradual a un grupo reducido de usuarios primero, supervisando posibles problemas antes de extender el despliegue al resto de la base de usuarios.
¿Cuál reduce mejor el tiempo de inactividad: el despliegue Blue-Green o el Canary?
Blue-Green suele ser mejor para reducir el tiempo de inactividad, ya que permite un cambio instantáneo entre entornos, minimizando cualquier posible interrupción. Canary también busca minimizar el tiempo de inactividad, pero lo hace mediante un despliegue gradual que puede implicar problemas menores y localizados que afecten solo a un pequeño subconjunto de usuarios.
¿Qué consideraciones de coste hay que tener en cuenta al comparar los despliegues Blue-Green y Canary?
Los despliegues Blue-Green suelen ser más costosos, ya que requieren mantener dos entornos completos. Los despliegues Canary son más rentables porque no necesitan infraestructura duplicada: las actualizaciones se despliegan dentro del entorno principal, lo que lo convierte en una mejor opción para equipos pequeños o aplicaciones con menor demanda de recursos.