蓝绿发布,金丝雀发布,AB测试

246 阅读2分钟

蓝绿发布,金丝雀发布,AB测试

随着微服务的普及,线上运行的服务越来越多,部署也会变的越来越频繁;随着一些列运维工具的发展使用,部署方式也越来越多样化,蓝绿发布,金丝雀发布,AB测试等等。这些都能极大的帮我们改善产品。

1. 蓝绿发布

通过两个相同的生产环境,来减少生产环境中停机等待的时间,线上环境基本能保证一直可用的状态。

绿色:新上线项目

蓝色:被替换项目

  • 部署一个绿色集群,蓝色集群承担所有流量,等待被替换。

  • 蓝色流量不变,向绿色引入流量。

    • 引入少量流量,数据测试
    • 引入全部流量,数据测试
  • 切断蓝色流量,全部流量进入绿色集群/ 部分流量进绿色,部分进蓝色

  • 监控系统运行,运行不正常,进行回滚,切回蓝色集群

2. 金丝雀发布(灰度发布)

先给一小部分用户使用新系统,先验证一小部分用户,没有问题再推广到全部用户,以降低生产环境引入新功能带来的风险。

  • 将流量从待部署节点移出,更新该节点服务到待发布状态,将该节点称为金丝雀节点。

  • 根据不同策略,将流量引入金丝雀节点。

    策略可以根据情况指定:

    • 随机样本策略(随机引入)
    • 狗粮策略(就是内部用户或员工先尝鲜)
    • 分区策略(不同区域用户使用不同版本)
    • 用户特征策略(这种比较复杂,需要根据用户个人资料和特征进行分流,类似于千人千面)
    • ...
  • 金丝雀节点验证通过后,选取更多的节点称为金丝雀节点,重复步骤一和步骤二,直到所有节点全部更新.

3. AB测试

AB测试是线上同时运行多个版本的程序,他们底层逻辑相同,但是页面布局,交互方式,颜色有所区别,对两批用户进行对比,看看那个受认可程度高,用户反馈好。

  • 划分用户进行体验
  • 反馈好胜出,推广到全部用户