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
la source
Réponses:
Avec un code de serveur minimalement conçu (une application Google AppEngine dans l'exemple), il est possible de dupliquer et de transmettre le trafic HTTP entrant reçu par un serveur de production à un serveur de test (ou vice versa) afin de comparer leurs réponses. Voir /programming/38799566/can-i-asynchronously-duplicate-a-webapp2-requesthandler-request-to-a-different-u .
la source
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.
la source