Estrategias de implementación
- 4 minutos
Las prácticas de DevOps incluyen ciclos de lanzamiento frecuentes que benefician a las organizaciones y a los usuarios finales de muchas maneras. Dado que las implementaciones individuales son más pequeñas, resultan más rápidas y menos estresantes, pero aun así se pueden producir errores. Para reducir la posibilidad de que se produzcan problemas, debe adoptar la estrategia de implementación que se adapte mejor a las necesidades de su organización.
Ya conoce el enfoque de "implementación de epopeya", también conocido como la estrategia del "big bang". Como ya sabe, este método no funciona bien con las aplicaciones modernas. Existen otras estrategias de implementación que se han popularizado en el contexto de las operaciones modernas, cada una de ellas con sus propias ventajas y debilidades, en función de la situación.
Estrategia de implementación gradual
La estrategia de implementación gradual adopta un enfoque gradual para introducir nuevas versiones de código. La nueva versión se escalona a lo largo de un período de tiempo, para lo que aumenta gradualmente las instancias de código nuevo, al mismo tiempo que reduce las instancias del antiguo. Esto significa que las instancias antiguas y nuevas coexistirán en la organización. Por ejemplo, puede actualizar el software en un servidor, máquina virtual o contenedor a la vez.
Una ventaja de esta estrategia es que puede supervisar el nuevo código en el entorno de producción para asegurarse de que cumple los requisitos de rendimiento, seguridad, confiabilidad y otros estándares antes de implementarlo de forma generalizada.
Estrategia de implementación azul-verde
La estrategia de implementación azul-verde usa dos entornos independientes que son idénticos entre sí. Uno es un entorno de prueba que contiene la nueva versión del software, mientras que el otro es el entorno de producción actual. Cuando considere que el software funciona correctamente y cumple los estándares, puede realizar el cambio completo del entorno de producción actual al nuevo, de modo que pase a controlar todo el tráfico de producción.
El entorno azul es el entorno de producción actual y el entorno verde es un duplicado exacto de este. Implemente primero la nueva versión del software en el entorno verde y, cuando esté listo, enrute el tráfico de la aplicación del entorno azul al verde, que es ahora el entorno de producción.
Una ventaja de esta estrategia es que puede realizar el cambio de forma casi instantánea, sin tiempo de inactividad. Además, es fácil cambiar de nuevo al entorno azul si se produce un problema después de activar el entorno verde.
Estrategia de implementación de valores controlados
La estrategia de implementación de valores controlados combina algunos elementos de la implementación gradual y de la implementación azul-verde. El cambio no se realiza a la vez, sino que se implementa la nueva versión en una parte limitada del entorno de producción y, luego, se traslada gradualmente todo el tráfico a la nueva versión. El software se implementa en pasos incrementales en un número limitado de instancias o usuarios hasta que se haya comprobado que funciona correctamente y, luego, se implementa en el resto de la infraestructura.
El nombre se debe al control que se ejerce sobre la implementación. En una implementación de valores controlados, puede realizar pruebas automatizadas y usar la supervisión y el análisis para obtener una advertencia anticipada de cualquier problema relacionado con la nueva versión en un subconjunto de instancias o usuarios. De este modo, todo el entorno de producción no se ve afectado.
Marcas de característica
El concepto de "marca de característica" es otra estrategia que requiere un poco más de sofisticación por parte de los desarrolladores. En lugar de tener dos versiones independientes del mismo software, una antigua y una nueva (supuestamente con características nuevas), se incluye una versión del software que contiene el software antiguo con los nuevos cambios (características, etc.). Los nuevos cambios están inactivos de forma predeterminada y no se ven mientras no se activa la "marca de característica" del cambio. Esta marca puede adoptar diversas formas, como una línea en un archivo de configuración, un argumento de la línea de comandos, una respuesta especial de un servidor en línea que el software consulta al iniciarse, etc.
Una gran ventaja de este enfoque es la facilidad con la que se puede revertir si hay algún problema o con la que se pueden implementar los cambios lentamente. No hace falta enviar una nueva versión (con todos sus bits) a los servidores o a los clientes; tan solo hay que activar o desactivar la marca adecuada para realizar el cambio a una versión anterior o a una actualización.
Procedimientos recomendados de implementación
Independientemente de la estrategia de implementación que use, existen algunas prácticas recomendadas que le ayudarán a minimizar el riesgo al implementar software nuevo o una versión nueva del software existente:
Use las herramientas adecuadas, como Azure Pipelines, para crear una canalización de implementación e integración continua.
Integre las pruebas automatizadas.
Utilice canales de comunicación para notificar a las partes adecuadas los resultados de las pruebas; es decir, alerte a los equipos si se produce un error en las implementaciones, se producen problemas, etc.
Supervise los problemas inmediatamente después de la implementación.
Disponga de un plan para la reversión en caso de que una nueva implementación de versión no supere las comprobaciones de mantenimiento o no funcione correctamente.