这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
一、发布阶段
- 各种发布模式
-
蛮力模式: 简单粗暴,直接用新版本覆盖老版本
- 优点: 简单、成本低
- 缺点: 发布过程中服务会中断,出了问题会影响全部用户
- 适用: 测试环境部署、小公司或者非核心的业务服务
-
金丝雀发布:
- 优点: 相对简单、能够用少量用户验证新版本功能
- 缺点: 发布过程中服务会中断、发现不了随用户量增大才会暴露的问题
- 适用: 测试环境部署、小公司或者非核心的业务服务
-
滚动发布: 每个实例都通过金丝雀的方式逐步放大流量,对用户影响小,体验平滑。
- 优点: 发布过程中用户体验不会中断、可以充分验证服务功能
- 缺点:
- 流程较复杂,对发布系统有比较高的要求
- 发布速度较慢
- 新老版本不兼容的情况不能使用
- 适用:
- 发布系统能力较强,可以平滑切换流量
- 发布自动化程度高,可以自动滚动
-
蓝绿发布:
把服务分成蓝绿两组,先把蓝组流量摘掉然后升级,只用绿组提供服务,之后切换全部流量,只用蓝组提供服 务,然后升级绿组服务,最终两组全部升级。
- 优点: 发布速度快、流程相对简单
- 缺点: 需要有一半机器承担所有流量的能力、出问题会影响全部用户
- 适用: 服务器资源丰富、新老版本不能兼容的情况,需要一次性升级到新版
-
红黑发布:
和蓝绿发布类似,但是发布时会动态扩容出一组新的服务,而不需要常备两组服务。
- 优点: 发布速度快、流程相对简单
- 缺点:对机器数量仍然有要求,需要能扩容一倍、出问题会影响全部用户
- 适用: 服务器资源丰富、新老版本不能兼容的情况,需要一次性升级到新版
-
没有强大发布系统和服务器资源不足的公司一般使用蛮力发布或者金丝雀发布
有强大的发布工具和服务器资源充足的公司一般使用滚动发布和蓝绿发布