常见发布方式:
1. 蓝绿发布:
可"零停服",应用平滑切换上线,为新旧版本准备蓝与绿两套环境
优势:
1.升级与回滚速度较快;
2.无须停服,风险较小
劣势:
1.需要考虑好升级切换与回滚的边界;
2.资源消耗是线上应用的两倍,因为需要做冗余;
3.两个版本的业务一致性问题
2. 滚动发布:
将急群众的少量节点更新上线,再更新其他节点,直到全部更新完毕。
优势:用户感知较小
劣势:
1.发布过程较长
2.对发布工具要求较高
3. 灰度发布(Gray Deployment):
在线上环境部署新版本应用,引入小部分流量进入,如无问题就切换上线,该方式对于测试应用在线上环境的实际表现及其有效,可在灰度阶段发现问题进行调整,用户无感知,目前分为两种:
A/B测试:
与蓝绿发布区别在于前者关注新版本发布,后者关注测试过程,逐渐改进B版本,知道用户接受再替换A版本
优势:用户感知较小
劣势:搭建复杂度较高
金丝雀部署(Canary Deployment):
背景“矿井中的金丝雀”,一般在集群中部署一台实例作为“金丝雀”,引入一小部分流量,收集问题,及时调整,待达到上线标准再替换集群中其他实例。
优势:用户体验影响小,灰度发布过程中出现问题只影响少量用户
劣势:发布自动化程度不够,发布旗舰可印发服务中断