我们正常开发项目,都会经历到开发测试、测试机测试然后逐步转到线上环境里测试并验收,但是这上线过程可能存在很多不确定的因素,为了保证更完善稳定的上线项目和用户的体验,有了灰度测试,作为一种过渡手段。
灰度发布,又名金丝雀发布,或者灰度测试,是指在黑与白之间能够平滑过渡的一种发布方式。
灰度,就是存在于黑与白之间的一个平滑过渡的区域。对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。
什么是灰度发布?百度百科的解释是这样的:
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。 AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
灰度发布如果按照端来分的话,可以分为web前端、服务端灰度、客户端。
无论是哪种灰度,一般需要满足以下2点要求:
需要一个放量配置,给产品/运营等工作人员配置放量策略;
需要做到同一个用户始终访问的是同一个版本的代码,如果同个用户上个请求访问的是A版本,下个请求访问的是B版本,就可能会出问题。
流量策略一般分为以下几种:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xREGtk7D-1664552867102)(/uploads/article/20220923/632dd09834a55.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wqw9j4EA-1664552867103)(/uploads/article/20220923/632dd0ac26df1.png)]