Discusión sobre el lanzamiento en escala de grises

El llamado lanzamiento en escala de grises es un método de lanzamiento de software confiable y sostenible. La nueva versión funcional del software se lanza primero al área de escala de grises para su verificación dentro del rango controlable. Si los resultados de la verificación son buenos, se lanzará o implementará oficialmente. volver a las áreas en escala de grises no están publicadas.

La idea central del lanzamiento en escala de grises es verificar las funciones de la nueva versión y lanzarla sin afectar la disponibilidad de la versión actual del sistema de software.

La llamada zona gris es el entorno creado en el entorno de producción que es igual a la versión del entorno de producción donde se implementa la nueva versión a verificar.

Para los programas cliente front-end, la base de clientes que ha impulsado e instalado una nueva versión del programa cliente que necesita ser verificada constituye un área gris.

Crear una zona gris -> Control de tráfico -> Verificación de la zona gris -> Lanzamiento/reversión oficial

La zona gris se utiliza para verificar la implementación y la funcionalidad de la nueva versión. La clave para el lanzamiento gris es implementar la nueva versión en el entorno de producción y publicarla después de la verificación. Entonces, ¿cómo se implementa y verifica una nueva versión antes de su lanzamiento oficial? En realidad, este es un problema de creación de áreas grises, entonces, ¿cómo crear áreas grises?

Un enfoque típico es retirar primero los nodos del clúster que se ejecutan en producción y luego implementar una nueva versión para crear un área gris. No dirija el tráfico de producción a la zona gris hasta que comience la validación.

Los posibles métodos para seleccionar nodos fallidos en el clúster son:

1) Si solo hay un clúster, puede seleccionar una pequeña cantidad de nodos de servicios de aplicaciones en el clúster (al igual que canario selección de liberación canario Lo mismo que el nodo de pájaro).

2) Si hay varios clústeres (por ejemplo, un sistema multiactivo en IDC), puede seleccionar uno de ellos para eliminarlo.

En el mismo entorno de producción, implemente un conjunto de nodos de clúster totalmente redundantes, implemente una nueva versión y cree un área gris (similar a la versión azul-verde). Dependiendo de cómo se proporcionen los clústeres redundantes, desde máquinas físicas, máquinas virtuales hasta contenedores, sus costos se reducen gradualmente y su flexibilidad mejora gradualmente.

El principal método de verificación para la publicación en escala de grises es importar tráfico real. Entonces, ¿cómo desviar de forma controlable el tráfico real al área en escala de grises creada?

Dependiendo del tipo de enrutador/equilibrador de carga, hay diferentes métodos de emisión disponibles:

Utilice nombres de dominio en escala de grises para señalar las configuraciones de nombres de dominio en escala de grises a áreas en escala de grises. Este método de desvío de nombres de dominio requiere acceso a nombres de dominio grises, lo que aumenta los recursos de nombres de dominio y puede no ser aplicable a usuarios externos.

Las posibles formas de agregar información en escala de grises a las solicitudes HTTP son:

1) Utilice diferentes rutas URL, como hello.com.cn/canary/..., desventajas Ocupa la ruta URL recursos.

2) Agregue un campo gris en el encabezado HTTP o en la cadena de consulta URL para almacenar información gris.

3) Con base en la información de la solicitud HTTP original y ciertas estrategias de enrutamiento, realice el desvío del tráfico en escala de grises. Por ejemplo, en función de la información del usuario en las cookies, se pueden implementar estrategias de desvío de tráfico basadas en listas blancas de usuarios, áreas de usuarios u otros atributos del usuario.

De acuerdo con la información en escala de grises agregada por el método anterior, se configura una estrategia de desvío de tráfico basada en información en escala de grises en el balanceador de carga responsable del enrutamiento de siete capas para lograr el desvío del tráfico.

La escala de grises universal debe verificarse mediante la adaptabilidad ambiental, la funcionalidad, el rendimiento y los usuarios.

Si el programa implementado puede iniciarse normalmente y si el estado de ejecución es estable; si el uso de los recursos de la infraestructura (CPU, memoria, IO, red, etc.) es normal; como JVM) se está ejecutando normalmente, espere.

Monitorear los indicadores de respuesta a través de herramientas de seguimiento de indicadores de recursos de infraestructura como promethues.

Supervise y verifique el estado de la solicitud integrando herramientas APM como CAT, Zipkin, Pinpoint y Skywalking.

La funcionalidad básica del programa se verificó mediante pruebas de humo; UAT utilizado para nuevas funciones y corrección de errores; la funcionalidad del programa se verificó importando datos de tráfico reales.

Monitorear y verificar RT y TPS de las interfaces abiertas de aplicaciones/servicios.

Importar tráfico real, recopilar datos de comportamiento del usuario, analizar el comportamiento del usuario; monitorear los indicadores comerciales generados por el acceso del tráfico real de usuarios, etc. Seguimiento de la opinión pública, etc.

Cuando se completa la verificación, es necesario publicarlo oficialmente, y la forma de lanzamiento oficial depende de cómo se crea el área gris.

Si se trata de un modo de implementación de lanzamiento canario, primero restaure la estrategia de proceso del entorno de producción oficial al área gris y luego actualice los nodos de la versión anterior de manera continua sin pérdidas.

Si la zona gris está construida en modo de redundancia verde azulado, la configuración de enrutamiento se modifica para enrutar el flujo de producción total directamente a la zona gris, y la zona gris se convierte en un clúster de entorno de producción que maneja la producción. fluir.

Cuando se verifica la escala de grises y se decide cancelar la liberación, es necesario revertir el área de la escala de grises.

El modo de implementación Canary requiere revertir los nodos grises y restaurar la política de enrutamiento de tráfico formal.

Si el área gris está construida en modo de redundancia azul-verde, solo necesita desactivar el desvío del flujo de producción en el área gris.