So entwerfen Sie ein blaugrünes Deployment zum Veröffentlichen von Websocket-Verkehr vom Live- zum Hot-Swap-Server


13

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


1
Können Sie bitte bestätigen, ob Sie DB-Server oder HTTP-Server bereitstellen?
Purefan

Verwandte Frage und Antwort auf SO stackoverflow.com/questions/10257770/…
Evgeny

Antworten:



5

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.