对于灰度发布(金丝雀发布)的了解

灰度是使用在版本更新或者一个新的软件的推出,通俗叫内测版本,通过内测玩家的反馈及时对新功能进行一个调整,如果反馈良好就可以将新功能按照一定的百分比逐步开放给用户,确保实现旧功能到新功能的平滑过渡。跟灰度发布相反的时候全量发布,全量发布就是把功能一次性全部发送给用户。灰度和全量的区别是,灰量在上线之后可以持续的得到用户的反馈,但是全量只依靠上线前的测试,在上线之后遇到问题容易崩。

实现过程

  1. 在开发环境中已经全部测试完毕,能够正常运行,然后投入生产环境中,在此阶段就需要制定好了详细的灰度发布计划
  2. 引入生产环境之后依旧不对所有用户开放,首先需要看新功能在生产环境中正常运行且不影响其他功能
  3. 如果在生产环境中能够正常运行且不影响其他功能,那么可以选择对一部分用户进行开放,持续获得用户反馈以及持续改进
  4. 如果得到了部分用户的良好反馈,那么可以逐步提高曝光比例,逐渐覆盖大部分用户,在这个循序渐进的过程中,也需要持续关注用户反馈,及时做出改正和回滚
  5. 如果持续推进中用户反馈良好,那么可以将其全面发布,同时要确保旧版本和新版本的平滑过渡,避免对用户造成影响

理解

通过逻辑兼容,数据双写,数据分流来进行新老功能的切换

例如:我现在有一个表格里面有一个字段为user_id,现在我想改成userId该怎么进行

逻辑兼容:在后端中可同时接收这俩个字段,前端获取到的id传给后端的user_id和userId,使功能能够正常进行

数据双写:现在在后端中另开一个表,新表和旧表之间的区别就是这个字段,然后用户上传数据的时候分别都上传到俩个表中

数据分流:在前端的时候埋下一个点,并进行标记,测试用户更加偏向于哪个字段点击多一点。关于这个埋点和监控,埋点就是在更新的功能中做一个记号,监听用户的使用,主要就是关注这个新功能在用户中的体验如何。

总结

整个灰度需要开发小组的一个配合,作为前端开发成员在灰度发布中需要对所选中体验新功能的用户进行一个标记,然后分流到不同的系统中进行体验,并且要实时监控新接口的调用成功率,并做出及时反馈。

作为前端开发人员,需要仔细揣摩怎么进行灰度,遇到情况能不能退回到旧版本,或者说有没有备用方案进行保障,要站在用户的角度思考,怎么使用是最舒适的,遇到问题怎么解决是最快捷的。

期待大家的友好交流和经验分享👍👍👍

相关推荐
kyriewen8 小时前
Anthropic 估值逼近万亿美元,Claude Sonnet 5 + Claude Science 一天两连发
前端·ai编程·claude
小徐_23339 小时前
Wot UI 2.2.0 发布:Button 新增 subtle,VideoPreview 预览体验继续增强
前端·微信小程序·uni-app
天蓝色的鱼鱼11 小时前
关于 CSS 你可能不知道的属性,但关键时刻很有用
前端·css
泯泷12 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
妙码生花12 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
泯泷12 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
团团崽_七分甜12 小时前
Spring Boot 核心知识点总结
前端
lichenyang45313 小时前
从一个按钮开始,理解 ASCF 框架到底在做什么
前端
古夕13 小时前
第三方 SSO 接入实践:redirect_uri 编码、回调一致性与跨项目联调
前端·vue.js