蓝绿色部署涉及将活动产品数据流(蓝色)泵入热交换非产品环境(绿色),以准备部署到绿色环境中,从而使绿色与先前的产品蓝色环境具有完全的数据同步。

我想知道人们使用什么来将持续不断的Websocket流量从蓝色实时复制到绿色,我应该编写自己的消息吗?或者是否有发布/订阅Websocket库,或者可能有不同的方法来实现蓝绿色? />
我的应用程序具有nodejs REST服务器,该服务器还管理来自移动设备的websocket通信... mongodb服务器等...每个都位于GCE / AWS上的容器中。

我意识到我可以只需将mongodb从蓝色同步到绿色即可,但是这不会使绿色的nodejs服务器具有实时流量,这是一个很好的回归合理性检查,我正在寻找

如果我只是实时转发HTTP流量,在HTTP之上运行的底层Websocket只会照顾自己,而不需要特定的蓝绿色设置

评论

您能确认要部署数据库服务器还是HTTP服务器吗?

有关SOstackoverflow.com/questions/10257770/…的相关问答。

#1 楼

使用最少设计的服务器代码(示例中为Google AppEngine应用程序),就可以将生产服务器接收的传入HTTP通信复制并转发到测试服务器(反之亦然),以比较它们的响应。参见https://stackoverflow.com/questions/38799566/can-i-asynchronously-duplicate-a-webapp2-requesthandler-request-to-a-different-u。

评论


Websocket并不是真正的正常HTTP通信。

–coderanger
17-2-28在23:38

#2 楼

Websockets本身对此并没有任何处理。您可以构建自己的系统,但是通常HA的想法是,如果发生任何事情,您将设置客户端自动重新连接。蓝绿色交换期间会有一些非零的停机时间,但是如果您的应用程序构建良好,它应该已经可以解决。

如果您想要更平滑的方法,则可以向您的系统中添加一条消息协议以连接到新服务器,然后删除原始连接。