蓝绿发布、滚动发布、灰度发布等部署方案对比与总结

2019-09-29  本文已影响0人  iOS小洁

前言

待过的公司有每次版本发布都要加班到很晚,也有大白天就发步的。对他们的发布方式很好奇,所以查了查资料。这里是我了解的蓝绿发布、滚动发布、灰度发布等部署方案对比与总结

蓝绿部署

1、定义

蓝绿部署是不停老版本,同时部署新版本,然后进行测试,确认OK,将流量切到新版本

2、特点
3、缺点
4、注意事项

当你切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。如果你的数据库后端无法处理,会是一个比较麻烦的问题;

滚动发布

1、定义

滚动发布:一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本。

2、特点
3、部署过程:
4、注意事项:

灰度发布/金丝雀部署

1、定义

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,而我们平常所说的金丝雀部署也就是灰度发布的一种方式。

2、灰度发布/金丝雀发布由以下几个步骤组成:

除此之外灰度发布还可以设置路由权重,动态调整不同的权重来进行新老版本的验证。

3、总结

在新版本应用发布时,为了服务器不停机升级,使用灰度发布策略,在灰度发布开始时,使用HTTP Header 匹配指定测试人员的流量到新版本上,然后当新版本内部测试通过后,可以再按百分比,将用户流量一点一点导入到新版本中,比如先导入10%观察一下运行情况,然后再导入20%,如此累加,直到将流量全部导入到新版本上,最后完成升级,如果期间发现问题,就立即取消升级,将流量切回到老版本。

上一篇 下一篇

猜你喜欢

热点阅读