1. 蓝绿发布
通过两个相同的生产环境,来减少生产环境中停机等待的时间,线上环境基本能保证一直可用的状态。
绿色:新上线项目
蓝色:被替换项目
- 部署一个绿色集群,蓝色集群承担所有流量,等待被替换。
蓝色流量不变,向绿色引入流量。
- 引入少量流量,数据测试
- 引入全部流量,数据测试
- 切断蓝色流量,全部流量进入绿色集群/ 部分流量进绿色,部分进蓝色
- 监控系统运行,运行不正常,进行回滚,切回蓝色集群
2. 金丝雀发布(灰度发布)
先给一小部分用户使用新系统,先验证一小部分用户,没有问题再推广到全部用户,以降低生产环境引入新功能带来的风险。
- 将流量从待部署节点移出,更新该节点服务到待发布状态,将该节点称为金丝雀节点。
根据不同策略,将流量引入金丝雀节点。
策略可以根据情况指定:
- 随机样本策略(随机引入)
- 狗粮策略(就是内部用户或员工先尝鲜)
- 分区策略(不同区域用户使用不同版本)
- 用户特征策略(这种比较复杂,需要根据用户个人资料和特征进行分流,类似于千人千面)
- ...
- 金丝雀节点验证通过后,选取更多的节点称为金丝雀节点,重复步骤一和步骤二,直到所有节点全部更新.
3. AB测试
AB测试是线上同时运行多个版本的程序,他们底层逻辑相同,但是页面布局,交互方式,颜色有所区别,对两批用户进行对比,看看那个受认可程度高,用户反馈好。
- 划分用户进行体验
- 反馈好胜出,推广到全部用户