Чтобы создать сине-зеленое развертывание, как публиковать трафик веб-сокетов с живого сервера горячей замены

13

Развертывание сине-зеленого цвета включает в себя перекачку потоков данных в реальном времени (синий) в среду без поддержки горячего обмена (зеленый) в рамках подготовки к развертыванию в действующей зеленой среде, так что зеленый имеет полную синхронизацию данных с предыдущей средой второго продукта.

Мне интересно, что люди используют для прямого копирования текущего трафика веб-сокетов с синего на зеленый, пишу ли я самостоятельно или есть библиотека веб-сокетов публикации / подписки или, возможно, другой подход к сине-зеленому?

Мое приложение имеет REST-серверы nodejs, которые также управляют трафиком веб-сокетов с мобильных устройств ... сервером mongodb и т. Д. ... каждый в контейнерах на GCE / AWS

Я понимаю, что могу просто синхронизировать mongodb с синего на зеленый, однако это не приведет к тому, что зеленые серверы nodejs будут использовать живой трафик, что является хорошей проверкой работоспособности регрессии, которую я ищу

Возможно, если я просто перейду через HTTP-трафик, базовая веб-розетка, работающая поверх HTTP, просто позаботится о себе и не потребует особых настроек сине-зеленого

Скотт Стенсленд
источник
1
Можете ли вы подтвердить, если вы развертываете серверы БД или HTTP-серверы?
Purefan
Соответствующий вопрос и ответ на SO stackoverflow.com/questions/10257770/…
Евгений

Ответы:

5

С помощью минимально сконструированного серверного кода (например, приложения Google AppEngine) можно дублировать и пересылать входящий HTTP-трафик, полученный производственным сервером, на тестовый сервер (или наоборот) для сравнения их ответов. См. Https://stackoverflow.com/questions/38799566/can-i-asynchronously-duplicate-a-webapp2-requesthandler-request-to-a-different-u .

Дэн Корнилеску
источник
Веб-сокеты - это не совсем обычный HTTP-трафик.
Coderanger
5

Веб-сокеты на самом деле не имеют никакой обработки для этого per se. Вы можете создать свою собственную систему, но, как правило, идея HA заключается в том, что если что-то случится, вы настроите клиент на автоматическое переподключение. Во время сине-зеленого свопа будет некоторое ненулевое время простоя, но если ваше приложение хорошо построено, оно должно справиться с этим уже.

Если вы хотите что-то более гладкое, вы можете встроить сообщение в свой протокол, чтобы подключиться к новому серверу, а затем сбросить исходное соединение.

coderanger
источник