Un despliegue verde azul implica bombear flujos de datos de producción en vivo (azul) en un entorno sin producción de intercambio en caliente (verde) en preparación para implementar para vivir el entorno verde, de modo que el verde tenga una sincronización completa de datos con el entorno azul de producción anterior.
Me pregunto qué usa la gente para copiar en vivo el tráfico continuo de WebSocket de azul a verde. ¿Escribo el mío o hay una biblioteca de WebSocket de publicación / suscripción o posiblemente un enfoque diferente para el verde azul?
Mi aplicación tiene servidores REST de nodejs que también gestionan el tráfico websocket desde dispositivos móviles ... un servidor mongodb, etc. cada uno en contenedores en GCE / AWS
Me doy cuenta de que podría mantener el mongodb sincronizado de azul a verde, sin embargo, eso no ejercitaría los servidores verdes de nodejs con tráfico en vivo, lo cual es un buen control de cordura de regresión que estoy buscando
Posiblemente si solo vivo hacia adelante el tráfico HTTP, el WebSocket subyacente que se ejecuta sobre HTTP solo se ocupará de sí mismo y no exigirá una configuración verde azul específica
fuente
Respuestas:
Con un código de servidor mínimamente diseñado (una aplicación Google AppEngine en el ejemplo) es posible duplicar y reenviar el tráfico HTTP entrante recibido por un servidor de producción a un servidor de prueba (o viceversa) con el fin de comparar sus respuestas. Ver /programming/38799566/can-i-asynchronously-duplicate-a-webapp2-requesthandler-request-to-a-different-u .
fuente
Websockets realmente no tiene ningún manejo para esto per se. Puede construir su propio sistema, pero en general la idea de HA es que, si sucede algo, configurará al cliente para que se vuelva a conectar automáticamente. Habrá un tiempo de inactividad distinto de cero durante un intercambio azul-verde, pero si su aplicación está bien construida, ya debería manejarlo.
Si desea algo más sencillo, puede crear un mensaje en su protocolo para conectarse a un nuevo servidor y luego desconectar la conexión original.
fuente