互联网产品发布方案

蓝绿发布

概念

蓝绿部署是一种以可预测的方式发布应用的技术,目的是减少发布过程中服务停止的时间。

需要准备两个相同的环境(基础架构),在蓝色环境运行当前生产环境中的应用,也就是旧版本应用,如图中App1 version1、App2 version1、App3 version3。
蓝绿发布1.png
当你想要升级App2到version2,在蓝色环境中进行操作,即部署新版本应用,并进行测试。如果测试没问题,就可以把负载均衡器/反向代理/路由指向蓝色环境了。
蓝绿发布1.png

简单来说,不停止老版本,额外搞一套新版本,等测试发现新版本OK后,删除老版本。

实现方式

蓝绿发布技术架构图.png

滚动发布

从老版本服务器中挑选一批,停止老版本的服务,并更新为新版本,进行验证,通过后再分批增量更新剩余服务器。

灰度发布

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

总结

指标/发布方式 蓝绿发布 滚动发布 灰度发布
优点 1.升级切换和回退速度快
2.风险较小
节约资源 用户体验影响小,灰度发布过程出现问题只影响少量用户
缺点 1.切换是全量的,如果新版本有问题,影响面较大
2.需要两倍机器资源
1.没有一个确定OK的环境
2.回滚困难
1.发布自动化程度不够,发布期间可引发服务中断
2.实现方式复杂,成本较高
适用场景 1.对用户体验有一定容忍度的场景
2.机器资源有富余或者可以按需分配
1.回滚机制成熟
2.机器资源不充裕或不能按需分配
成熟型组织采用的主流发布方式
坚持原创技术分享,您的支持将鼓励我继续创作!