El Canary Deployment (también conocido como despliegue canario) es una técnica de despliegue de software utilizada para implementar nuevas versiones de una aplicación en un entorno de producción en forma gradual. Esto significa que una nueva versión se puede desplegar en varios entornos diferentes al mismo tiempo, comenzando con una pequeña parte de los usuarios, y luego aumentando la escala gradualmente para asegurarse de que la nueva versión funcione correctamente. Esta técnica se hace habitualmente con el fin de asegurar el funcionamiento correcto de la nueva versión antes de implementarla para todos los usuarios.
El canary deployment se utiliza a menudo en entornos de producción en los que el tiempo de inactividad no es una opción, como por ejemplo en aplicaciones en tiempo real o servicios críticos. Esto permite a los desarrolladores realizar pruebas en una parte limitada de usuarios, para luego pasar al resto de usuarios una vez que la nueva versión se haya verificado como segura. Si la nueva versión presenta problemas, los desarrolladores pueden detener el despliegue y solucionar el problema sin afectar a todos los usuarios.
El canary deployment también se puede usar para probar características nuevas antes de lanzarlas al público en general. Esto es especialmente útil para probar nuevas funcionalidades directamente con usuarios reales, para luego usar esta información para perfeccionar la característica antes de lanzarla.
El despliegue canario es un proceso relativamente sencillo. El primer paso es crear una nueva versión de la aplicación. Esta versión se puede desplegar en uno o varios servidores de acuerdo a la necesidad. Una vez que la nueva versión esté lista para su uso, se puede configurar una regla para que una parte limitada de usuarios reciba la nueva versión. Esta parte puede variar desde el 5% hasta el 25%, según el criterio del desarrollador. Una vez que la nueva versión se haya probado con los usuarios seleccionados, se puede incrementar gradualmente la porción de usuarios que reciben la nueva versión, hasta llegar a todos los usuarios.
En resumen, el canary deployment es una técnica de despliegue de software que permite a los desarrolladores implementar gradualmente nuevas versiones de una aplicación en un entorno de producción. Esto se hace para asegurarse de que la nueva versión funcione correctamente antes de lanzarla a todos los usuarios. Esta técnica también se puede usar para probar características nuevas directamente con usuarios reales, para luego mejorar la característica antes de lanzarla. El despliegue canario es un proceso relativamente sencillo que permite a los desarrolladores implementar nuevas versiones en forma gradual para asegurar el mejor funcionamiento de la aplicación.