DevOps蓝绿部署

蓝绿部署

蓝绿部署(blue-green deployment)强调在生产环境同时有两套版本,一个叫做“蓝环境”一个叫做“绿环境”。当需要发布新版本应用时,发布部署的机制是一次只发布新的软件版本到一个系统环境中,比如说把新的软件版本发布到蓝环境中,让新版本的应用程序先热一下身,至于热身的时限可以由应用所在的行业或企业自行决定。由于只在蓝环境做新版本的发布,绿环境不会受到影响。我们可以在蓝环境上运行“冒烟测试”,来检查蓝环境的正常情况。如果情况正常,通过网络的路由设置来切换原先在绿环境的用户流量到蓝环境。这样,蓝环境就成了主要承载生产运营和用户访问流量的生产环境,如果蓝环境突发异常情况,路由设置会再次自动启动,把原先在蓝环境的用户流量瞬间再切回到之前的绿环境版本。通过蓝绿部署的机制来确保业务连续性的需求能够长期被满足。

另外,在蓝绿部署中还要有一个需要处理的问题,即在两个环境切换时,针对正在进行的业务交易事务处理,应该如何保证业务数据交易的前后一致性的问题。一般来说,蓝绿环境的切换不是在瞬间完成的。我们可以基本遵循一般操作就是在切换过程中所遇到的全新的业务交易请求直接被导向到新版本的环境,不再允许访问旧版本的环境。对于那些在切换发生时尚未返回结果的旧的请求,旧版本的环境允许其访问完成,之后不再接收新的请求即可。

以下是关于蓝绿发布的示意图:

DevOps蓝绿部署