¿Qué es la implementación azul-verde?

Copiar URL

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.

La CI/CD es uno de los seis pasos para llevar a cabo la transformación digital

 

Blue green deployment model

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

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.

Para obtener más detalles, consulte el capítulo tres de este ebook

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.

Artículos relacionados
Hub

Blogs de Red Hat

Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.

Todas las versiones de prueba de los productos de Red Hat

Con las versiones de prueba gratuitas de nuestros productos, podrás adquirir experiencia práctica, prepararte para obtener una certificación o evaluar las soluciones para saber si son adecuadas para tu empresa.

Más información

¿Qué es una plataforma interna para desarrolladores?

Una plataforma interna para desarrolladores (IDP) consiste en un conjunto de tecnologías y herramientas de autoservicio que los desarrolladores necesitan para crear e implementar código.

La ingeniería de plataformas

La ingeniería de plataformas es la disciplina del desarrollo de software que se centra en mejorar la productividad, la duración de los ciclos de las aplicaciones y el tiempo de comercialización.

¿Qué es la observabilidad? Conoce sus ventajas

La observabilidad se refiere a la capacidad de supervisar, medir y conocer el estado de un sistema o una aplicación mediante la evaluación de sus resultados, registros e indicadores de rendimiento.

DevOps: lecturas recomendadas