蓝绿部署
把正在提供服务的系统标记为绿色,准备发布的系统标记为蓝色。
蓝绿发布流程:采购两套完整的机器,一套作为热备,一套对外提供服务。服务发布时将新版本服务发布到热备机器上,测试没问题之后将流量切换到新的服务上,旧版本服务保留,有问题可以再切换回去
红黑部署
和蓝绿部署类似,通过两套环境完成服务升级。正在提供服务的系统被标记为红色,新版本服务被标记为黑色。
流程是申请一套新的机器部署新版本服务,然后进行测试,测试完成后将流量切到新版本服务集群,然后下掉旧版本服务。
滚动发布
发布新版本时采用渐进式的发布方式,先启动一台机器发布新服务,再停止一台旧服务机器,再发布一台新服务,再停止一台旧服务,直到集群中所有服务都升级完成。
灰度发布
灰度发布, 也叫金丝雀发布。是指在黑与白之间,能够平滑过渡的一种发布方式。
在已有的集群中部署少量的新版本服务,进行验证测试,验证没问题后切换部分流量到新版本,观察日志,如果没问题逐步进行扩机器增加流量,直到把所有机器都升级为新版本。
灰度发布周期一般较长,一天到一周的时间逐步进行切换。
一般情况下我们的发布都是采用滚动发布的方式,如果有需要灰度发布的需要考虑到代码改造,但是灰度方式一般是代码和数据库表新旧版本兼容的情况下才能采用这种方式,如果差距过大的时候就要采用蓝绿发布,红黑发布的方式。
参考链接: