Implementación azul-verde
Una implementación azul-verde, del inglés blue-green implementation, es un modelo de lanzamiento de aplicaciones que transfiere poco a poco el tráfico de usuarios de cierta versión anterior de una aplicación o microservicio a una versión nueva casi idéntica, cuando ambas se encuentran en producción.
La versión anterior se denomina entorno azul, mientras que la versión nueva se conoce como entorno verde. Cuando el tráfico de producción se transfiere por completo del entorno azul al verde, la versión azul puede conservarse en caso de que sea necesaria una restauración, o puede extraerse de la producción y actualizarse para convertirse en la plantilla a partir de la cual se realizará la próxima actualización.
Sin embargo, este modelo de implementación continua tiene sus desventajas. No todos los entornos tienen los mismos requisitos de tiempo de actividad ni los recursos para realizar correctamente los procesos de CI/CD como el azul-verde. Sin embargo, muchas aplicaciones evolucionan para admitir esta distribución continua a medida que las empresas que las respaldan realizan una transformación digital.
¿Cómo funciona la implementación azul-verde?
Piénselo de esta manera. Imagínese que desarrolló una aplicación nativa de la nube sencilla, por ejemplo, un juego para dispositivos móviles en el que los usuarios acumulan puntos al tocar globos de varios colores que vuelan por la pantalla. Una serie de microservicios basados en contenedores se encargan del backend del juego, como los logros, la puntuación, la mecánica, la comunicación y la identificación del jugador.
Cientos de usuarios comienzan a jugar después del lanzamiento inicial y registran miles de operaciones por minuto. Dado que el equipo de DevOps le ha solicitado realizar lanzamientos tempranos y con frecuencia, está a punto de realizar una actualización menor en el microservicio de mecánica que aumenta el tamaño y la velocidad del globo rojo.
En lugar de esperar hasta la medianoche para enviar la actualización al entorno de producción (cuando la cantidad de usuarios activos es menor), utilizará el modelo de implementación azul-verde para actualizar la aplicación durante el momento de mayor uso. Y lo hará sin experimentar downtime.
Esto es posible gracias a que lo que hace es tomar el microservicio de mecánica del entorno de producción (azul) y copiarlo en un contenedor idéntico, pero que se encuentra separado (verde). Después de aumentar el tamaño y la velocidad de los globos rojos en el entorno verde, esta actualización pasa por los entornos de control de calidad y ensayo (los cuales probablemente se automatizaron con un proyecto open source de prueba de rendimiento, como Jenkins) antes de enviarla al de producción, junto con el entorno azul activo.
El equipo de operaciones puede usar un equilibrador de carga para redirigir las siguientes operaciones de los usuarios del entorno azul al verde. Una vez que todo el tráfico de producción se encuentre en el entorno verde, el azul se desconecta. Sin embargo, este último puede conservarse como una opción para la recuperación ante desastres, o bien puede usarse como contenedor para una nueva actualización.
Recursos de Red Hat
Implementación azul-verde y Kubernetes
Kubernetes se adapta naturalmente a todos los elementos asociados al proceso de implementación azul-verde, lo cual incluye las aplicaciones desarrolladas en la nube, los microservicios, los contenedores, la SRE, DevOps y la integración, la distribución y la implementación continuas. Dado que se trata de una plataforma open source que automatiza las operaciones de contenedores de Linux®, Kubernetes no solo ayuda a organizar los contenedores que empaquetan los microservicios de las aplicaciones nativas de la nube, sino que también es compatible con un conjunto de patrones arquitectónicos que los desarrolladores pueden volver a utilizar, en lugar de tener que crear arquitecturas de aplicaciones desde cero.
Uno de esos patrones de Kubernetes se conoce como "patrón de implementación declarativo". Como los microservicios son pequeños por naturaleza, pueden multiplicarse en número muy rápidamente. El patrón de implementación declarativo reduce el esfuerzo manual que se necesita para implementar nuevos pods, la unidad en la arquitectura de Kubernetes más pequeña y sencilla.
¿Por qué conviene elegir Red Hat?
Porque hemos reforzado la plataforma empresarial de Kubernetes líder, Red Hat® OpenShift, con las funciones de CI/CD como base. Ya hemos documentado las peticiones y los argumentos de las líneas de comando paso por paso, para que pueda realizar implementaciones azul-verde dentro de su entorno de Red Hat OpenShift.
Además, si utiliza la tecnología de open source en la plataforma de Kubernetes de su empresa, tendrá el control sobre toda la plataforma y todo lo que depende de ella. Esto posibilitará el funcionamiento de sus aplicaciones y servicios, independientemente del lugar en el que se encuentren o de los elementos con los que sean compatibles.
Así que, adelante: revise, modifique y mejore el código fuente de nuestras tecnologías. Más del 90 % de las empresas de la lista Fortune 500* confía en nuestros productos, porque casi no hay límites para una infraestructura diseñada con los productos y las tecnologías de Red Hat.
Blogs de Red Hat
Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.