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

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

实现过程

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

理解

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

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

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

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

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

总结

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

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

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

相关推荐
Irissgwe1 分钟前
C++ STL unordered系列关联式容器详解
开发语言·c++·stl·关联式容器
m0_547486663 分钟前
华南农业大学《C语言程序设计》期末试卷及答案2018-2025年PDF
c语言·开发语言·pdf·c语言程序设计
共创splendid--与您携手1 小时前
AI读取前端项目生成skill.md
前端·人工智能·ai
San813_LDD2 小时前
[C语言]《Dev-C++ 报错解决手册(Day0607 精华版)》
java·前端·javascript
xiaofeichaichai8 小时前
Webpack
前端·webpack·node.js
fqbqrr8 小时前
2606C++,C++构的多态
开发语言·c++
问心无愧05138 小时前
ctf show web入门111
android·前端·笔记
唐某人丶8 小时前
模型越来越强,我们还需要 Agent 工程吗?—— 从价值重估到 Harness 实践
前端·agent·ai编程
智码看视界9 小时前
现代Web开发基础:全栈工程师的起航点
前端·后端·c5全栈