1 蓝绿发布

蓝绿发布可以减少发布过程中服务停止的时间,但是带来了另一个问题,就是需要的机器数量需要翻倍。发布时候,首先流量都是打在绿色的版本上面的,蓝色版本是一个新版本,在部署前还可以进行相应的测试。

当一切准备就绪后,通过配置将流量都打到蓝色版本,如果蓝色版本运行稳定那么发布就顺利完成,如果蓝色版本出现故障,立刻将流量拨回到绿色版本,继续为用户提供服务。

2 灰度发布

灰度发布同样是一种发布版本的方式,它采用的策略不像蓝绿发布一样,在发布时瞬间将所有流量都打到另外一个版本上,而是采用先打部分流量比例过去,如果少部分流量运行没有问题,那么则慢慢加大流量比例,直到最终流量全部打到新版本上。这种发布方式由于在老版本和新版本之前都有流量同时存在,就像一黑一白,合在一起便是灰色。

3 A/B 测试

A/B 测试和灰度发布有些类似,它同样是只切部分流量到新功能上面,但是这里切一部分用户过去可以有多种做法,比如说做成一个新特新的开关,想体验新功能的用户就打开这个开关,那么用户的数据就会走新功能的代码。又或者是用户本身就有标签,比如说有 beta 用户标签,那么 beta 用户就走新功能的逻辑,别的用户就走原来的逻辑。

参考文章

  1. 蓝绿部署、A/B 测试以及灰度发布