Pour concevoir un déploiement bleu-vert, comment publier le trafic Websocket du serveur en direct vers le serveur remplaçable à chaud

13

Un déploiement bleu vert implique de pomper des flux de données de prod en direct (bleu) dans un environnement non prod remplaçable à chaud (vert) en préparation pour déployer pour vivre l'environnement vert, de sorte que le vert ait une synchronisation complète des données avec l'environnement bleu prod précédent.

Je me demande ce que les gens utilisent pour copier en direct le trafic Websocket en cours du bleu au vert. Est-ce que j'écris le mien ou existe-t-il une bibliothèque Websocket de publication / abonnement ou peut-être une approche différente du bleu vert?

Mon application dispose de serveurs REST nodejs qui gèrent également le trafic websocket à partir d'appareils mobiles ... un serveur mongodb, etc ... chacun dans des conteneurs sur GCE / AWS

Je me rends compte que je pourrais simplement garder la mongodb synchronisée du bleu au vert, mais cela n'exercerait pas les serveurs nodejs verts avec du trafic en direct, ce qui est une belle vérification de la régression que je recherche

Peut-être que si je ne fais que transmettre le trafic HTTP, la prise Web sous-jacente qui s'exécute au-dessus de HTTP se chargera d'elle-même et ne demandera pas de configuration bleu-vert spécifique

Scott Stensland
la source
1
Pouvez-vous confirmer si vous déployez des serveurs DB ou des serveurs HTTP?
Purefan
Questions et réponses connexes sur SO stackoverflow.com/questions/10257770/…
Evgeny

Réponses:

5

Les Websockets n'ont pas vraiment de manipulation pour cela en soi. Vous pouvez créer votre propre système, mais l'idée générale de HA est que si quelque chose se produit, vous configurerez le client pour qu'il se reconnecte automatiquement. Il y aura un temps d'arrêt non nul lors d'un échange bleu-vert, mais si votre application est bien conçue, elle devrait déjà le gérer.

Si vous vouliez quelque chose de plus fluide, vous pouvez créer un message dans votre protocole pour vous connecter à un nouveau serveur, puis supprimer la connexion d'origine.

coderanger
la source