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

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

实现过程

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

理解

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

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

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

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

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

总结

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

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

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

相关推荐
上天_去_做颗惺星 EVE_BLUE3 分钟前
Docker高效使用指南:从基础到实战模板
开发语言·ubuntu·docker·容器·mac·虚拟环境
2401_857683544 分钟前
C++中的原型模式
开发语言·c++·算法
s1hiyu13 分钟前
C++动态链接库开发
开发语言·c++·算法
Amumu1213813 分钟前
Vuex介绍
前端·javascript·vue.js
(❁´◡`❁)Jimmy(❁´◡`❁)14 分钟前
CF2188 C. Restricted Sorting
c语言·开发语言·算法
We་ct14 分钟前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript
星火开发设计19 分钟前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
许泽宇的技术分享21 分钟前
第 1 章:认识 Claude Code
开发语言·人工智能·python
AIFQuant35 分钟前
如何利用免费股票 API 构建量化交易策略:实战分享
开发语言·python·websocket·金融·restful
Hx_Ma1636 分钟前
SpringMVC返回值
java·开发语言·servlet