灰度发布定义
灰色是介于黑色和白色之间的颜色,灰度发布就是介于未发布和完全发布之间的一种发布方式,也叫金丝雀发布。
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式,灰度发布是迭代的软件产品在生产环境安全上线的一种重要手段。
为什么要进行灰度发布
我们通过灰度发布,将一部分经过筛选后的用户纳入测试范围,主要的目的是:检验了用户对于新版本的接受度。
规避了因为产品决策冒失、冒进所…带来的风险,同时也可以检验产品质量,是否存在bug。
灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
灰度发布流程
灰度发布方式:让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。
完整的灰度发布流程,如下图所示:
首先,选择一小部分用户作为第一批灰度用户,这部分用户应该具有代表性。
其次,通过日志、用户反馈、监控工具…等手段来监控。
实时监控新版本的表现,重点关注错误率、性能指标等。
再次,接着扩大范围发布。
在初步发布无重大问题的情况下,逐步扩大灰度发布的用户范围,直至…覆盖所有用户。
然后,在扩展过程中,持续监控系统性能和用户反馈,确保稳定性。
最后,在灰度发布阶段确认新版本稳定后,准备全面发布。
灰度发布策略
流量策略一般分为以下几种:
1. 按流量百分比
先到先得的方式比如限制10%的用户体验的是新版本,90%的用户体验的是老版本。先访问网站的用户就优先命中新版本,直到流量用完为止。
2. 按人群划分
按用户id、用户ip、设备类型比如可通过平时的埋点上报数据得知用户的pv、uv、页面平均访问时长等数据,根据用户活跃度来让用户优先体验新版本,进而快速观察使用效果。
按地域、性别、年龄等用户画像比如可通过用户的性别、年龄等做下新老版本的对比效果来看看目标用户在新版本的使用年龄段,性别范围是多少。
3. 按渠道划分
比如根据用户的注册来源来放量。