灰度发布方法技术

技术编号:39486427 阅读:13 留言:0更新日期:2023-11-24 11:06
本申请提供了一种灰度发布方法

【技术实现步骤摘要】
灰度发布方法、装置、计算机设备和存储介质


[0001]本申请涉及应用发布
,尤其涉及一种灰度发布方法

装置

计算机设备和存储介质


技术介绍

[0002]在应用程序的实际使用过程中如有需求变更,并不会直接更新线上服务,最通常的做法便是:切出线上的小部分流量进行体验测试,经过测试后无问题则全面的上线

这样做的好处也是非常明显,一旦出现了
BUG
,能够保证大部分的客户端正常使用

传统的做法是对新代码部署一套全栈式的服务

在网关层接收到用户流量后,将部分流量到新的服务上去

但由于每个灰度发布需要部署一整套服务栈,而有时候可能只是其中一个模块做了修改,但部署一整套服务栈需要占用全套的服务器资源,存在对硬件资源的浪费的问题


技术实现思路

[0003]本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中灰度发布存在硬件资源浪费的问题

[0004]第一方面,本申请实施例提供了一种灰度发布方法,用于发布包括多个功能模块的应用程序,灰度发布方法包括:
[0005]响应于针对任意功能模块的灰度发布指令,部署灰度发布指令对应灰度版本的功能模块,并在流量分配规则表中新增与灰度发布指令对应灰度版本的功能模块相关的流量分配规则;流量分配规则与流量分配链路对应,流量分配链路用于指示所启用的功能模块及其版本;
[0006]在接收到请求时,将与请求匹配的流量分配规则确定为目标流量分配规则,根据目标流量分配规则对应的流量分配链路,启动流量分配链路上的各功能模块处理请求;
[0007]根据灰度版本的功能模块的请求处理结果,将灰度版本的功能模块进行回滚或转为正式版本

[0008]在其中一个实施例中,流量分配规则包括分流优先级,在流量分配规则表中新增与灰度发布指令对应灰度版本的功能模块相关的流量分配规则,包括:
[0009]根据分流优先级确定新的流量分配规则在流量分配规则表中的位次;
[0010]根据位次,将流量分配规则加入流量分配规则表

[0011]在其中一个实施例中,请求包括一个以上的标签,流量分配规则包括标签匹配条件,在接收到请求时,将与请求匹配的流量分配规则确定为目标流量分配规则,包括:
[0012]读取请求中的标签;
[0013]将标签按照位次由高到低的顺序依次与流量分配规则表中的各流量分配规则对应标签匹配条件进行匹配,直至确定出标签所满足的标签匹配条件,将确定出的标签匹配条件对应的流量分配规则,确定为目标流量分配规则

[0014]在其中一个实施例中,标签匹配条件中所包含的声明项越多,则对应的分流优先
级越高;声明项与请求中的一种标签对应,用于指示对该种标签的要求

[0015]在其中一个实施例中,将灰度版本的功能模块进行回滚,包括:
[0016]从流量分配规则表中,将与需要回滚的灰度版本的功能模块相关的流量分配规则删除;
[0017]将需要回滚的灰度版本的功能模块下线

[0018]在其中一个实施例中,将灰度版本的功能模块转为正式版本,包括:
[0019]将与需要晋升的灰度版本的功能模块相关的流量分配规则删除;
[0020]从流量分配规则表中,找出与当前正式版本的功能模块相关的流量分配规则;
[0021]将所找出的流量分配规则对应的流量分配链路中,与当前正式版本的功能模块相关的部分,修改为需要晋升的灰度版本的功能模块;
[0022]将当前正式版本的功能模块下线

[0023]在其中一个实施例中,部署灰度发布指令对应灰度版本的功能模块,还包括:
[0024]根据灰度发布指令的发布日期和功能改进方向,确定将要部署的功能模块的版本号

[0025]在其中一个实施例中,灰度发布指令包括灰度发布指令对应灰度版本的功能模块的配置信息,部署灰度发布指令对应灰度版本的功能模块,包括:
[0026]将配置信息写入配置中心,以部署灰度发布指令对应灰度版本的功能模块

[0027]第二方面,本申请实施例提供了一种灰度发布装置,用于发布包括多个功能模块的应用程序,灰度发布装置包括:
[0028]第一响应模块,用于响应于针对任意一个功能模块的灰度发布指令,部署灰度发布指令对应灰度版本的功能模块,并在流量分配规则表中新增与灰度发布指令对应灰度版本相关的功能模块的流量分配规则;流量分配规则与流量分配链路对应,流量分配链路用于指示所启用的功能模块及其版本;
[0029]第二响应模块,用于在接收到请求时,将与请求匹配的流量分配规则确定为目标流量分配规则,根据目标流量分配规则对应的流量分配链路,启动流量分配链路上的各功能模块处理请求;
[0030]决策模块,用于根据灰度版本的功能模块的请求处理结果,将灰度版本的功能模块进行回滚或转为正式版本

[0031]第三方面,本申请实施例提供了一种计算机设备,包括一个或多个处理器,以及存储器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,执行上述任一实施例中的灰度发布方法的步骤

[0032]第四方面,本申请实施例提供了一种存储介质,存储介质中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例中的灰度发布方法的步骤

[0033]从以上技术方案可以看出,本申请实施例具有以下优点:
[0034]基于本实施例中的灰度发布方法,当开发人员对任意功能模块有灰度发布需求时,向服务器发送灰度发布指令,即可仅部署经过修改的功能模块到服务器中,而无需对应用程序的所有功能模块进行部署

并且,在部署灰度版本的功能模块时,为了保证未来的流量将分配到新部署的功能模块中,以对灰度版本的功能模块进行测试,还需要在流量分配
规则表中新增与灰度发布指令对应灰度版本的功能模块相关的流量分配规则

服务器在接收到请求时,将会以流量分配规则表为依据,选择相应的流量分配链路,对该请求进行处理

基于灰度版本的功能模块的请求处理结果,即可确定如何对灰度版本的功能模块做进一步处理

该灰度发布方法可以根据开发情况以功能模块为单位进行灵活地灰度发布,无需在有修改需求时每次都发布整个应用程序,节省了灰度发布时的硬件资源,也提高了灰度发布的灵活性

附图说明
[0035]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种灰度发布方法,其特征在于,用于发布包括多个功能模块的应用程序,所述灰度发布方法包括:响应于针对任意所述功能模块的灰度发布指令,部署所述灰度发布指令对应灰度版本的所述功能模块,并在流量分配规则表中新增与所述灰度发布指令对应灰度版本的所述功能模块相关的流量分配规则;所述流量分配规则与流量分配链路对应,所述流量分配链路用于指示所启用的所述功能模块及其版本;在接收到请求时,将与所述请求匹配的所述流量分配规则确定为目标流量分配规则,根据所述目标流量分配规则对应的所述流量分配链路,启动所述流量分配链路上的各所述功能模块处理所述请求;根据灰度版本的所述功能模块的请求处理结果,将所述灰度版本的所述功能模块进行回滚或转为正式版本
。2.
根据权利要求1所述的灰度发布方法,其特征在于,所述流量分配规则包括分流优先级,所述在流量分配规则表中新增与所述灰度发布指令对应灰度版本的所述功能模块相关的流量分配规则,包括:根据所述分流优先级确定新的所述流量分配规则在所述流量分配规则表中的位次;根据所述位次,将所述流量分配规则加入所述流量分配规则表
。3.
根据权利要求2所述的灰度发布方法,其特征在于,所述请求包括一个以上的标签,所述流量分配规则包括标签匹配条件,所述在接收到请求时,将与所述请求匹配的所述流量分配规则确定为目标流量分配规则,包括:读取所述请求中的标签;将所述标签按照所述位次由高到低的顺序依次与所述流量分配规则表中的各所述流量分配规则对应所述标签匹配条件进行匹配,直至确定出所述标签所满足的所述标签匹配条件,将确定出的所述标签匹配条件对应的所述流量分配规则确定为所述目标流量分配规则
。4.
根据权利要求3所述的灰度发布方法,其特征在于,所述标签匹配条件中所包含的声明项越多,则对应的所述分流优先级越高;所述声明项与所述请求中的一种所述标签对应,用于指示对该种所述标签的要求
。5.
根据权利要求1所述的灰度发布方法,其特征在于,所述将所述灰度版本的所述功能模块进行回滚,包括:从所述流量分配规则表中,将与需要回滚的所述灰度版本的所述功能模块相关的所述流量分配规则删除;将需要回滚的所述灰度版本的所述功能模块下线
。6.
根据权利要求1所述的灰度发布方法,其特征在于,所述将所述灰度版本的所述功能模块转...

【专利技术属性】
技术研发人员:王一炜
申请(专利权)人:广州文远知行科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1