En ingeniería de software , la implementación azul-verde (también azul/verde ) es un método para instalar cambios en un servidor web, de aplicación o de base de datos mediante el intercambio de servidores de producción y de prueba alternos.
En las implementaciones azul-verde, se mantienen dos servidores: un servidor "azul" y un servidor "verde". En un momento dado, sólo un servidor maneja las solicitudes (por ejemplo, siendo señalado por el DNS ). Por ejemplo, las solicitudes públicas pueden enrutarse al servidor azul, convirtiéndolo en el servidor de producción y el servidor verde en el servidor de prueba, al que solo se puede acceder en una red privada. Los cambios se instalan en el servidor no activo, que luego se prueba a través de la red privada para verificar que los cambios funcionen como se esperaba. Una vez verificado, el servidor no activo se intercambia con el servidor activo, lo que efectivamente hace que los cambios implementados estén activos. [1]
El uso de este método de implementación de software ofrece la posibilidad de retroceder rápidamente a un estado anterior si algo sale mal. Esta reversión se logra simplemente enrutando el tráfico al servidor activo anterior, que aún no tiene los cambios implementados. [2] Un beneficio adicional del método de implementación azul-verde es la reducción del tiempo de inactividad del servidor. Debido a que las solicitudes se enrutan instantáneamente de un servidor a otro, lo ideal es que no haya ningún período en el que las solicitudes queden sin atender. [3]
La técnica de implementación azul-verde a menudo se contrasta con la técnica de implementación de versión canary [3] y tiene similitudes con las pruebas A/B .
Dan North y Jez Humble encontraron diferencias entre sus entornos de prueba y el entorno de producción mientras ejecutaban Oracle WebLogic Server para un cliente alrededor de 2005. [4] Para garantizar una implementación segura, introdujeron un método en el que la nueva versión de la aplicación se implementaba junto con el sistema en vivo. . Este enfoque permitió realizar pruebas exhaustivas y una fácil reversión en caso de problemas. Inicialmente, el equipo consideró nombrar estos entornos A y B, pero decidió no hacerlo para evitar la percepción de jerarquía. En su lugar, eligieron nombres basados en colores como azul, verde, naranja y amarillo, y finalmente usaron sólo azul y verde ya que "tener dos era suficiente". [5] Esta convención de nomenclatura se adoptó mientras se trabajaba en el libro original de Entrega continua publicado en 2010 [6] y posteriormente se convirtió en un término común en la industria.