Bei einer Blaugrün-Bereitstellung werden Live-Produktdatenflüsse (blau) in eine Hot-Swap-Umgebung ohne Produkt (grün) gepumpt, um die Bereitstellung für die grüne Umgebung zu ermöglichen, sodass das Grün über eine vollständige Datensynchronisierung mit der vorherigen Produktblau-Umgebung verfügt.
Ich frage mich, womit die Leute den laufenden Web-Socket-Verkehr von blau nach grün live kopieren. Schreibe ich meinen eigenen oder gibt es eine Publish / Subscribe-Web-Socket-Bibliothek oder möglicherweise eine andere Herangehensweise an blau-grün?
Meine App verfügt über NodeJS-REST-Server, die auch den Web-Socket-Verkehr von Mobilgeräten verwalten ... einen Mongodb-Server usw., jeweils in Containern auf GCE / AWS
Mir ist klar, dass ich den Mongodb einfach von blau nach grün synchron halten könnte, aber das würde die grünen Nodejs-Server nicht mit Live-Verkehr belasten, was eine nette Überprüfung der Regressions-Vernunft ist, nach der ich suche
Möglicherweise kümmert sich das zugrunde liegende Web-Socket, das auf HTTP ausgeführt wird, nur um sich selbst und erfordert kein spezielles blau-grünes Setup
quelle
Antworten:
Mit einem minimal entwickelten Servercode (im Beispiel eine Google AppEngine-Anwendung) ist es möglich, eingehenden HTTP-Verkehr, der von einem Produktionsserver empfangen wird, zu duplizieren und an einen Testserver weiterzuleiten (oder umgekehrt), um deren Antworten zu vergleichen. Siehe /programming/38799566/can-i-asynchronously-duplicate-a-webapp2-requesthandler-request-to-a-different-u .
quelle
Websockets haben an sich keine wirkliche Handhabung dafür. Sie könnten Ihr eigenes System erstellen, aber im Allgemeinen besteht die Idee für HA darin, dass Sie den Client so einrichten, dass er die Verbindung automatisch wiederherstellt, wenn etwas passiert. Während eines blaugrünen Austauschs kann es zu Ausfallzeiten ungleich Null kommen. Wenn Ihre App jedoch gut gebaut ist, sollte dies bereits behoben sein.
Wenn Sie etwas reibungsloseres wünschen, können Sie eine Nachricht in Ihr Protokoll einfügen, um eine Verbindung zu einem neuen Server herzustellen, und dann die ursprüngliche Verbindung trennen.
quelle