灰度是使用在版本更新或者一个新的软件的推出,通俗叫内测版本,通过内测玩家的反馈及时对新功能进行一个调整,如果反馈良好就可以将新功能按照一定的百分比逐步开放给用户,确保实现旧功能到新功能的平滑过渡。跟灰度发布相反的时候全量发布,全量发布就是把功能一次性全部发送给用户。灰度和全量的区别是,灰量在上线之后可以持续的得到用户的反馈,但是全量只依靠上线前的测试,在上线之后遇到问题容易崩。
实现过程
- 在开发环境中已经全部测试完毕,能够正常运行,然后投入生产环境中,在此阶段就需要制定好了详细的灰度发布计划
- 引入生产环境之后依旧不对所有用户开放,首先需要看新功能在生产环境中正常运行且不影响其他功能
- 如果在生产环境中能够正常运行且不影响其他功能,那么可以选择对一部分用户进行开放,持续获得用户反馈以及持续改进
- 如果得到了部分用户的良好反馈,那么可以逐步提高曝光比例,逐渐覆盖大部分用户,在这个循序渐进的过程中,也需要持续关注用户反馈,及时做出改正和回滚
- 如果持续推进中用户反馈良好,那么可以将其全面发布,同时要确保旧版本和新版本的平滑过渡,避免对用户造成影响
理解
通过逻辑兼容,数据双写,数据分流来进行新老功能的切换
例如:我现在有一个表格里面有一个字段为user_id,现在我想改成userId该怎么进行
逻辑兼容:在后端中可同时接收这俩个字段,前端获取到的id传给后端的user_id和userId,使功能能够正常进行
数据双写:现在在后端中另开一个表,新表和旧表之间的区别就是这个字段,然后用户上传数据的时候分别都上传到俩个表中
数据分流:在前端的时候埋下一个点,并进行标记,测试用户更加偏向于哪个字段点击多一点。关于这个埋点和监控,埋点就是在更新的功能中做一个记号,监听用户的使用,主要就是关注这个新功能在用户中的体验如何。
总结
整个灰度需要开发小组的一个配合,作为前端开发成员在灰度发布中需要对所选中体验新功能的用户进行一个标记,然后分流到不同的系统中进行体验,并且要实时监控新接口的调用成功率,并做出及时反馈。
作为前端开发人员,需要仔细揣摩怎么进行灰度,遇到情况能不能退回到旧版本,或者说有没有备用方案进行保障,要站在用户的角度思考,怎么使用是最舒适的,遇到问题怎么解决是最快捷的。
期待大家的友好交流和经验分享👍👍👍