灰度发布方法、装置、终端设备及存储介质与流程

未命名 07-15 阅读:136 评论:0


1.本技术涉及互联网技术领域,尤其涉及一种灰度发布方法、装置、终端设备及存储介质。


背景技术:

2.在互联网产品的版本更新过程中,一般不会直接向全部用户推送新版本,而是多采用灰度发布的方式,使原始版本和灰度版本同时存在。经过一段时间的验证之后,如果灰度版本满足预定的发布要求,就进一步用灰度版本在更大范围或者全部替换原始版本,以完成版本更新。
3.灰度发布需要在原始版本和灰度版本之间进行流量控制,目前灰度发布技术大多采取物理隔离的方式控制流量,即部署灰度版本对应的另一套完整系统,并通过网关控制流量。这种基于物理隔离的灰度发布技术存在可控性差的问题。


技术实现要素:

4.本技术的主要目的在于提供一种灰度发布方法、装置、终端设备及存储介质,旨在解决目前基于物理隔离的灰度发布技术可控性差的问题。
5.为实现上述目的,本技术提供一种灰度发布方法,所述灰度发布方法包括:
6.通过灰度入口接收客户端的请求信息;
7.基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。
8.可选地,所述通过灰度入口接收客户端的请求信息的步骤之前,还包括:
9.响应于用户的设置操作,设置所述灰度入口、所述灰度流量控制规则以及所述灰度泳道中的一种或者多种。
10.可选地,所述基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件的步骤包括:
11.基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量;
12.若否,则确定所述请求信息不满足所述灰度泳道的进入条件;
13.若是,则确定所述请求信息满足所述灰度泳道的进入条件。
14.可选地,所述确定所述请求信息满足所述灰度泳道的进入条件的步骤之后,还包括:
15.在所述请求信息的请求头添加灰度标识,得到携带灰度标识的请求信息,其中,所述携带灰度标识的请求信息根据对应的请求链路进入所述灰度泳道圈定的灰度版本实例和所述灰度泳道之外的原始版本实例中的一种或者多种。
16.可选地,所述基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量的步骤包括:
17.基于预设的第一类型灰度流量控制规则,分析所述灰度入口的流量比例信息,确定所述请求信息对应的流量类型是否为灰度版本流量。
18.可选地,所述基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量的步骤包括:
19.基于预设的第二类型灰度流量控制规则,分析所述请求信息的请求内容,确定所述请求信息对应的流量类型是否为灰度版本流量。
20.可选地,所述灰度发布方法还包括:
21.基于趋势图和拓扑图中的至少一种视图形式,显示灰度发布的过程信息。
22.本技术实施例还提出一种灰度发布装置,所述灰度发布装置包括:
23.接收模块,用于通过灰度入口接收客户端的请求信息;
24.流量控制模块,用于基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。
25.本技术实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的灰度发布程序,所述灰度发布程序被所述处理器执行时实现如上所述的灰度发布方法的步骤。
26.本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有灰度发布程序,所述灰度发布程序被处理器执行时实现如上所述的灰度发布方法的步骤。
27.本技术实施例提出的灰度发布方法、装置、终端设备及存储介质,通过灰度入口接收客户端的请求信息;基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。基于本技术方案,请求信息首先进入灰度入口,然后基于灰度流量控制规则确定请求信息是否可以进入灰度泳道,灰度泳道圈定了灰度版本实例,也就是说,结合灰度流量控制规则和灰度泳道,可以实现原始版本实例和灰度版本实例之间的流量控制,提高了灰度发布的可控性。
附图说明
28.图1为本技术灰度发布装置所属终端设备的功能模块示意图;
29.图2为本技术灰度发布方法第一示例性实施例流程示意图;
30.图3为本技术灰度发布方法涉及的灰度流量控制示意图;
31.图4为本技术灰度发布方法第二示例性实施例流程示意图;
32.图5为本技术灰度发布方法涉及的全链路灰度sdk配置热生效示意图;
33.图6为本技术灰度发布方法涉及的设置界面示意图;
34.图7为本技术灰度发布方法第三示例性实施例流程示意图;
35.图8为本技术灰度发布方法第四示例性实施例流程示意图;
36.图9为本技术灰度发布方法第五示例性实施例流程示意图;
37.图10为本技术灰度发布方法涉及的第一类型灰度流量控制规则示意图;
38.图11为本技术灰度发布方法第六示例性实施例流程示意图;
39.图12为本技术灰度发布方法涉及的第二类型灰度流量控制规则示意图;
40.图13为本技术灰度发布方法涉及的综合灰度流量控制规则示意图;
41.图14为本技术灰度发布方法涉及的灰度发布过程信息显示界面示意图。
42.本技术目的的实现、功能特点及优点将结合实施例,参照附图作进一步说明。
具体实施方式
43.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
44.本技术实施例的主要解决方案是:通过灰度入口接收客户端的请求信息;基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。基于本技术方案,请求信息首先进入灰度入口,然后基于灰度流量控制规则确定请求信息是否可以进入灰度泳道,灰度泳道圈定了灰度版本实例,也就是说,结合灰度流量控制规则和灰度泳道,可以实现原始版本实例和灰度版本实例之间的流量控制,提高了灰度发布的可控性。
45.具体地,参照图1,图1为本技术灰度发布装置所属终端设备的功能模块示意图。该灰度发布装置可以为独立于终端设备的、能够进行灰度发布的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
46.在本实施例中,该灰度发布装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
47.存储器130中存储有操作系统以及灰度发布程序,灰度发布装置可以将通过灰度入口接收的客户端的请求信息;预设的灰度流量控制规则;以及预设的灰度泳道等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括wifi模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
48.其中,存储器130中的灰度发布程序被处理器执行时实现以下步骤:
49.通过灰度入口接收客户端的请求信息;
50.基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。
51.进一步地,存储器130中的灰度发布程序被处理器执行时还实现以下步骤:
52.响应于用户的设置操作,设置所述灰度入口、所述灰度流量控制规则以及所述灰度泳道中的一种或者多种。
53.进一步地,存储器130中的灰度发布程序被处理器执行时还实现以下步骤:
54.基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量;
55.若否,则确定所述请求信息不满足所述灰度泳道的进入条件;
56.若是,则确定所述请求信息满足所述灰度泳道的进入条件。
57.进一步地,存储器130中的灰度发布程序被处理器执行时还实现以下步骤:
58.在所述请求信息的请求头添加灰度标识,得到携带灰度标识的请求信息,其中,所述携带灰度标识的请求信息根据对应的请求链路进入所述灰度泳道圈定的灰度版本实例和所述灰度泳道之外的原始版本实例中的一种或者多种。
59.进一步地,存储器130中的灰度发布程序被处理器执行时还实现以下步骤:
60.基于预设的第一类型灰度流量控制规则,分析所述灰度入口的流量比例信息,确
定所述请求信息对应的流量类型是否为灰度版本流量。
61.进一步地,存储器130中的灰度发布程序被处理器执行时还实现以下步骤:
62.基于预设的第二类型灰度流量控制规则,分析所述请求信息的请求内容,确定所述请求信息对应的流量类型是否为灰度版本流量。
63.进一步地,存储器130中的灰度发布程序被处理器执行时还实现以下步骤:
64.基于趋势图和拓扑图中的至少一种视图形式,显示灰度发布的过程信息。
65.本实施例通过上述方案,具体通过灰度入口接收客户端的请求信息;基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。本实施例中,请求信息首先进入灰度入口,然后基于灰度流量控制规则确定请求信息是否可以进入灰度泳道,灰度泳道圈定了灰度版本实例,也就是说,结合灰度流量控制规则和灰度泳道,可以实现原始版本实例和灰度版本实例之间的流量控制,提高了灰度发布的可控性。
66.参照图2,本技术灰度发布方法第一实施例提供一种流程示意图,所述灰度发布方法包括:
67.步骤s10,通过灰度入口接收客户端的请求信息。
68.具体地,灰度发布的过程涉及若干种实例,部分实例只有原始版本,而另一部分实例拥有原始版本和灰度版本。灰度发布过程的流量控制,实际上是在原始版本实例和灰度版本实例之间分配流量,以达到利用部分流量验证灰度版本的目的。
69.为了让客户端的请求信息在进入系统时实现分流,可以预先设置至少一个灰度入口,客户端的请求信息会首先被灰度入口接收。灰度入口可以是实例的形式,此种情况只需预先指定至少一个实例为灰度入口即可,被指定为灰度入口的实例负责提供对应的服务,分配原始版本流量以及灰度版本流量。
70.步骤s20,基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。
71.具体地,由于请求信息需要经过的实例可能为原始版本实例和灰度版本实例,为了将请求信息对应的流量类型划分为灰度版本流量和原始版本流量,可以预先设置灰度流量控制规则。灰度入口在接收到客户端的请求信息时,基于灰度流量控制规则进行计算分析,确定请求信息对应的流量类型为原始版本流量或者灰度版本流量。
72.当请求信息对应的流量类型为灰度版本流量时,满足灰度泳道的进入条件;当请求信息对应的流量类型为原始版本流量时,不满足灰度泳道的进入条件。灰度泳道需要预先设置,用于圈定灰度版本实例,只有进入灰度泳道的请求信息才能进入灰度版本实例,否则只能进入原始版本实例。可以理解的是,进入灰度泳道的请求信息还可以根据实际需求进入灰度泳道之外的原始版本实例,使请求信息在原始版本实例和灰度版本实例之间穿梭且不会出现断层,确保请求信息得到完整的响应。
73.本实施例以微服务形式的实例为例,对灰度发布的流量控制过程进行说明。如图3所示,图3为本技术灰度发布方法涉及的灰度流量控制示意图。微服务a被指定为灰度入口,微服务a接收客户端发送的http请求,然后计算灰度流量控制规则,确定客户端的http请求对应的流量类型。
74.如果客户端的http请求对应的流量类型为灰度版本流量,那么微服务a将客户端
的http请求转发,依次经过微服务b(灰度版本)、微服务c、微服务d(灰度版本)。
75.如果客户端的http请求对应的流量类型为原始版本流量,那么微服务a将客户端的http请求转发,依次经过微服务b(原始版本)、微服务c、微服务d(原始版本)。
76.可见,流量类型为原始版本流量的http请求不会进入灰度版本的微服务,而流量类型为灰度版本流量的http请求可以在灰度版本的微服务和原始版本的微服务之间穿梭。
77.同理,实例的类型也可以采取微服务之外的其他形式。
78.本实施例涉及的灰度发布可以是全链路灰度发布,全链路灰度发布的定义为:在当前微服务架构下,一个业务系统包含多个微服务,一次迭代上线也往往涉及调用链上多个微服务的更新,全链路灰度发布可以将线上的各个微服务的灰度版本实例隔离出一个单独的运行环境(即灰度泳道),使得通过流量入口进来的请求可以稳定访问调用链上的微服务的灰度版本实例。
79.全链路灰度发布主要分为四个步骤:

发布灰度版本实例;

创建灰度流量控制规则;

实例转正更新;

完成灰度发布。其中,灰度泳道的设置为前置条件,在灰度泳道划分好之后,可以进入步骤

,即发布灰度版本实例。在步骤

中,仍然可以新增实例到灰度泳道中。如果灰度版本实例尚未发布,或灰度版本实例已经删除,则可以将它从灰度泳道中移除。如果所有灰度版本实例的状态为停止或未发布,就可以终止全链路灰度发布任务。当灰度泳道中的所有灰度版本实例发布完成后,进入步骤

,即创建灰度流量控制规则,具体涉及灰度规则编辑、规则下发、流量情况观测,也可以回退到步骤

。当灰度版本实例经过充分验证之后,进入步骤

,即实例转正更新,在这里可以调整灰度版本实例的数量,也可以快速完成实例资源切换。如果未将流量全部导入灰度版本实例,则可以回退到步骤

。将流量全部导入灰度版本实例后,可以进入步骤

,停止原始版本(灰度转正式方案)或停止灰度版本(原地升级方案)的实例,清理灰度泳道、灰度流量控制规则,完成最终的灰度发布。在整个全链路灰度发布的过程中,每一步都是安全可控的,从而保证全链路灰度发布的成功执行。
80.本实施例通过上述方案,具体通过灰度入口接收客户端的请求信息;基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。本实施例中,请求信息首先进入灰度入口,然后基于灰度流量控制规则确定请求信息是否可以进入灰度泳道,灰度泳道圈定了灰度版本实例,也就是说,结合灰度流量控制规则和灰度泳道,可以实现原始版本实例和灰度版本实例之间的流量控制,提高了灰度发布的可控性。
81.进一步地,参照图4,本技术灰度发布方法第二实施例提供一种流程示意图,基于上述图2所示的实施例,步骤s10,通过灰度入口接收客户端的请求信息之前,还包括:
82.步骤s001,响应于用户的设置操作,设置所述灰度入口、所述灰度流量控制规则以及所述灰度泳道中的一种或者多种。
83.具体地,本实施例提供一种灰度发布的人机交互界面,灰度入口、灰度流量控制规则、灰度泳道均可由用户通过人机交互界面自定义设置。
84.①
灰度入口:用户可以指定一个或者多个实例作为灰度入口,被指定为灰度入口的实例负责提供对应的服务,分配控制原始版本流量以及灰度版本流量。
85.②
灰度流量控制规则:用户可以基于比例设置第一类型灰度流量控制规则,在第
一类型灰度流量控制规则的控制下,原始版本流量和灰度版本流量成对应的比例;用户也可以基于请求内容的设置第二类型灰度流量控制规则,在第二类型灰度流量控制规则的控制下,带有预设请求内容的请求信息才被划分为灰度版本流量。
86.③
灰度泳道:用户可以设置灰度泳道,将至少一个灰度版本实例圈进灰度泳道中,当请求信息进入灰度泳道时,就具备了进入灰度版本实例的条件。
87.另外,上述设置可配合全链路灰度sdk实现,全链路灰度sdk在实现层面预留了扩展,支持用户定制灰度规则提取以及规则逻辑判断。其中,用户需要在代码中实现自定义扩展灰度流量控制规则接口,自定义扩展灰度规则接口支持对spring mvc框架和webflux框架的请求信息进行规则提取和逻辑判断。
88.如图5所示,图5为本技术灰度发布方法涉及的全链路灰度sdk配置热生效示意图。用户设置的灰度入口、灰度流量控制规则、灰度泳道会形成相应的配置信息,配置信息进一步被存储到配置中心。全链路灰度sdk通过长轮询监听配置中心的配置信息是否出现变化,若是,则会重新获取配置信息,并根据最新的配置信息改变全链路灰度发布的行为。综上,全链路灰度sdk具有配置热生效的能力,是实现全链路灰度发布的关键点之一。
89.更为具体地,如图6所示,图6为本技术灰度发布方法涉及的设置界面示意图。在“创建灰度规则”页面,“位置”下拉菜单选择“自定义”,“标签值”填写代码实现的灰度流量控制规则类bean名(基于spring框架)。配置完成之后,可以观察灰度版本实例(微服务)的流量情况。
90.本实施例通过上述方案,具体通过响应于用户的设置操作,设置所述灰度入口、所述灰度流量控制规则以及所述灰度泳道中的一种或者多种。本实施例提供了关于灰度入口、灰度流量控制规则以及灰度泳道的设置功能,用户可以根据实际需求进行设置,提高了灰度发布过程的可控性。
91.进一步地,参照图7,本技术灰度发布方法第三实施例提供一种流程示意图,基于上述图2所示的实施例,步骤s20,基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件进一步细化,包括:
92.步骤s201,基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量。
93.具体地,灰度流量控制规则包括基于比例设置第一类型灰度流量控制规则和基于请求内容的设置第二类型灰度流量控制规则。
94.在第一类型灰度流量控制规则的控制下,原始版本流量和灰度版本流量成对应的比例;用户也可以基于请求内容的设置第二类型灰度流量控制规则,在第二类型灰度流量控制规则的控制下,带有预设请求内容的请求信息才被划分为灰度版本流量。也就是说,灰度入口根据第一类型灰度流量控制规则或者第二类型灰度流量控制规则进行分析计算,确定请求信息对应的流量类型是否为灰度版本流量。
95.步骤s202,若否,则确定所述请求信息不满足所述灰度泳道的进入条件。
96.具体地,灰度入口根据第一类型灰度流量控制规则或者第二类型灰度流量控制规则进行分析计算,确定请求信息对应的流量类型不是灰度版本流量,那么可以进一步确定该请求信息不满足灰度泳道的进入条件,无法进入灰度泳道。
97.步骤s203,若是,则确定所述请求信息满足所述灰度泳道的进入条件。
98.具体地,灰度入口根据第一类型灰度流量控制规则或者第二类型灰度流量控制规则进行分析计算,确定请求信息对应的流量类型是灰度版本流量,那么可以进一步确定该请求信息满足灰度泳道的进入条件,可以进入灰度泳道。
99.值得注意的是,第一类型灰度流量控制规则和第二类型灰度流量控制规则可以择一应用,也可以同时应用。
100.本实施例通过上述方案,具体通过基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量;若否,则确定所述请求信息不满足所述灰度泳道的进入条件;若是,则确定所述请求信息满足所述灰度泳道的进入条件。本实施例中,基于灰度流量控制规则可以实现原始版本流量和灰度版本流量的划分,进而实现灰度发布流量控制,提高了灰度发布过程的可控性。
101.进一步地,参照图8,本技术灰度发布方法第四实施例提供一种流程示意图,基于上述图7所示的实施例,步骤s203,确定所述请求信息满足所述灰度泳道的进入条件之后,还包括:
102.步骤s204,在所述请求信息的请求头添加灰度标识,得到携带灰度标识的请求信息,所述携带灰度标识的请求信息根据对应的请求链路进入所述灰度泳道圈定的灰度版本实例和所述灰度泳道之外的原始版本实例中的一种或者多种。
103.具体地,灰度入口在确定请求信息满足灰度泳道的进入条件之后,在请求信息的请求头添加灰度标识,得到携带灰度标识的请求信息。携带灰度标识的请求信息会根据请求链路从灰度入口向下传递,在进入下一个非灰度入口的实例之前,需要分析确定请求信息的上下文是否带有灰度标识。如果请求信息的带有灰度标识,那么该请求信息可以进入灰度版本实例;如果请求信息的不带有灰度标识,那么该请求信息只能进入原始版本实例。也就是说,灰度标识可以用于使携带灰度标识的请求信息进入灰度泳道圈定的灰度版本实例。
104.另外,如果携带灰度标识的请求信息对应的请求链路中存在灰度泳道之外的原始版本实例,那么携带灰度标识的请求信息也可以跳出灰度泳道,进而进入灰度泳道之外的原始版本实例。可以理解的是,携带灰度标识的请求信息可以在灰度泳道内外穿梭。
105.如图3所示的请求链路为:微服务a、微服务b、微服务c、微服务d。其中,微服务a和微服务c均为原始版本,无对应的灰度版本,可以将微服务a和微服务c视为灰度泳道之外的原始版本实例;而微服务b和微服务d均存在原始版本和灰度版本,也就是说,灰度版本的微服务b和微服务d可以视为灰度泳道圈定的灰度版本实例。http请求经过灰度入口微服务a的处理之后,成为携带灰度标识的http请求,携带灰度标识的http请求根据请求链路依次经过微服务a(原始版本)、微服务b(灰度版本)、微服务c(原始版本)、微服务d(灰度版本),实现了在灰度泳道内外穿梭,这种方式一方面确保了灰度发布正常进行,另一方面确保了请求链路的完整性。
106.本实施例通过上述方案,具体通过在所述请求信息的请求头添加灰度标识,得到携带灰度标识的请求信息,所述携带灰度标识的请求信息根据对应的请求链路进入所述灰度泳道圈定的灰度版本实例和所述灰度泳道之外的原始版本实例中的一种或者多种。本实施例中的携带灰度标识的请求信息持续向下流转,通过识别灰度标识的方式,使灰度版本流量和原始版本流量分离开来,进一步提高了灰度发布过程的可控性,并有效消减了实现
流量隔离所需的硬件建设成本,对灰度发布过程起到降本增效的作用。
107.进一步地,参照图9,本技术灰度发布方法第五实施例提供一种流程示意图,基于上述图7所示的实施例,步骤s201,基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量进一步细化,包括:
108.步骤s2011,基于预设的第一类型灰度流量控制规则,分析所述灰度入口的流量比例信息,确定所述请求信息对应的流量类型是否为灰度版本流量。
109.具体地,在第一类型灰度流量控制规则的控制下,原始版本流量和灰度版本流量成对应的比例,进而确定请求信息对应的流量类型是否为灰度版本流量。
110.如图10所示,图10为本技术灰度发布方法涉及的第一类型灰度流量控制规则示意图。微服务a作为灰度入口,根据第一类型灰度流量控制规则,将80%的请求信息对应的流量类型确定为原始版本流量,将20%的请求信息对应的流量类型确定为灰度版本流量。如此,80%的请求信息将进入微服务b(原始版本),20%的请求信息将进入微服务b(灰度版本)。
111.同理,原始版本流量和灰度版本流量的比例可根据实际需求作出相应调整,上述80%、20%的数值仅用于说明第一类型灰度流量控制规则的作用。
112.本实施例通过上述方案,具体通过基于预设的第一类型灰度流量控制规则,分析所述灰度入口的流量比例信息,确定所述请求信息对应的流量类型是否为灰度版本流量。本实施例采取第一类型灰度流量控制规则控制原始版本流量和灰度版本流量的比例,并且比例可灵活调整,提高了灰度发布过程的可控性。
113.进一步地,参照图11,本技术灰度发布方法第六实施例提供一种流程示意图,基于上述图7所示的实施例,步骤s201,基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量进一步细化,包括:
114.步骤s2012,基于预设的第二类型灰度流量控制规则,分析所述请求信息的请求内容,确定所述请求信息对应的流量类型是否为灰度版本流量。
115.具体地,在第二类型灰度流量控制规则的控制下,带有预设请求内容的请求信息才被划分为灰度版本流量,请求内容可以是一种标签。
116.如图12所示,图12为本技术灰度发布方法涉及的第二类型灰度流量控制规则示意图。微服务a作为灰度入口,根据第二类型灰度流量控制规则,分析请求信息的请求头host字段是否包含“gray.com”标签。若是,则确定该请求信息对应的流量类型为灰度版本流量,该请求信息将进入微服务b(灰度版本);若否,则确定该请求信息对应的流量类型不是灰度版本流量,该请求信息将进入微服务b(原始版本)。
117.同理,用于分析的请求内容可根据实际需求作出相应调整,上述“gray.com”标签仅用于说明第二类型灰度流量控制规则的作用。
118.更为具体地,本实施例支持创建多条第二类型灰度流量控制规则,多条第二类型灰度流量控制规则之间支持“或”和“与”逻辑。涉及的标签位置可以是请求头、请求路径、查询参数和rpc参数(在rpc调用场景下使用)。
119.本实施例通过上述方案,具体通过基于预设的第二类型灰度流量控制规则,分析所述请求信息的请求内容,确定所述请求信息对应的流量类型是否为灰度版本流量。本实施例采取第二类型灰度流量控制规则判断请求信息是否带有特定的内容,将带有特定内容
的请求信息引流至灰度环境,并且第二类型灰度流量控制规则可以灵活调整,提高了灰度发布过程的可控性。
120.进一步地,基于上述图9和图11所示的实施例提出本技术灰度发布方法第七实施例,所述灰度发布方法还包括:
121.基于预设的优先级,同时应用第一类型灰度流量控制规则和第二类型灰度流量控制规则。
122.具体地,当第一类型灰度流量控制规则和第二类型灰度流量控制规则同时应用时第二类型灰度流量控制规则的优先级高于第一类型灰度流量控制规则,即请求内容匹配过后,再按根据流量比例将请求信息路由至原始版本实例或者灰度版本实例。
123.如图13所示,图13为本技术灰度发布方法涉及的综合灰度流量控制规则示意图。同时应用第一类型灰度流量控制规则和第二类型灰度流量控制规则,此时会优先匹配请求头中携带host=gray.com的请求信息,再根据20%的权重,将匹配成功的请求信息路由到微服务b(灰度版本)。
124.本实施例采取了第一类型灰度流量控制规则和第二类型灰度流量控制规则结合的流量控制方式,并设置了优先级以协调两种规则之间的先后关系,使得流量控制可以满足更加丰富的应用需求,提高灰度发布过程的可控性。
125.进一步地,基于上述图2所示的实施例提出本技术灰度发布方法第八实施例,所述灰度发布方法还包括:
126.步骤s002,基于趋势图和拓扑图中的至少一种视图形式,显示灰度发布的过程信息。
127.具体地,本实施例的全链路灰度发布过程具备可观测特性,帮助用户实时掌握灰度流量情况,支持用户快速、直观判断全链路灰度发布是否成功。全链路灰度发布可观测具体提供了两种维度的观测视图,一种是趋势图,另一种是拓扑图。
128.以微服务实例为例:趋势图展示微服务系统中某个微服务的原始版本和灰度版本在一段时间范围内的流量数据的趋势情况,包括总请求量、平均响应时间、成功率、应用错误码等指标。拓扑图展示微服务之间的调用关系,同时包括原始版本和灰度版本的流量比例、总请求量、平均响应时间、成功率、应用错误码详情等。如图14所示,图14为本技术灰度发布方法涉及的灰度发布过程信息显示界面示意图,采用拓扑图的形式进行展示。
129.此外,还可以查看历史的灰度发布任务、完成状态、灰度发布任务的操作详情、操作审计等信息。
130.本实施例通过上述方案,具体通过基于趋势图和拓扑图中的至少一种视图形式,显示灰度发布的过程信息。本实施例采用趋势图和拓扑图的形式对灰度发布过程的相关信息进行展示,实现了灰度发布过程的可观测,增强了灰度发布过程的交互性以及可控性。
131.此外,本技术实施例还提出一种灰度发布装置,所述灰度发布装置包括:
132.接收模块,用于通过灰度入口接收客户端的请求信息;
133.流量控制模块,用于基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。
134.本实施例实现灰度发布的原理及实施过程,请参照上述各实施例,在此不再赘述。
135.此外,本技术实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存
储在所述存储器上并可在所述处理器上运行的灰度发布程序,所述灰度发布程序被所述处理器执行时实现如上所述的灰度发布方法的步骤。
136.由于本灰度发布程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
137.此外,本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有灰度发布程序,所述灰度发布程序被处理器执行时实现如上所述的灰度发布方法的步骤。
138.由于本灰度发布程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
139.相比现有技术,本技术实施例提出的灰度发布方法、装置、终端设备及存储介质,通过灰度入口接收客户端的请求信息;基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。基于本技术方案,请求信息首先进入灰度入口,然后基于灰度流量控制规则确定请求信息是否可以进入灰度泳道,灰度泳道圈定了灰度版本实例,也就是说,结合灰度流量控制规则和灰度泳道,可以实现原始版本实例和灰度版本实例之间的流量控制,提高了灰度发布的可控性。
140.需要说明的是,在本文中,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
141.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
142.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本技术每个实施例的方法。
143.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:
1.一种灰度发布方法,其特征在于,所述灰度发布方法包括:通过灰度入口接收客户端的请求信息;基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。2.如权利要求1所述的灰度发布方法,其特征在于,所述通过灰度入口接收客户端的请求信息的步骤之前,还包括:响应于用户的设置操作,设置所述灰度入口、所述灰度流量控制规则以及所述灰度泳道中的一种或者多种。3.如权利要求1所述的灰度发布方法,其特征在于,所述基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件的步骤包括:基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量;若否,则确定所述请求信息不满足所述灰度泳道的进入条件;若是,则确定所述请求信息满足所述灰度泳道的进入条件。4.如权利要求3所述的灰度发布方法,其特征在于,所述确定所述请求信息满足所述灰度泳道的进入条件的步骤之后,还包括:在所述请求信息的请求头添加灰度标识,得到携带灰度标识的请求信息,其中,所述携带灰度标识的请求信息根据对应的请求链路进入所述灰度泳道圈定的灰度版本实例和所述灰度泳道之外的原始版本实例中的一种或者多种。5.如权利要求3所述的灰度发布方法,其特征在于,所述基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量的步骤包括:基于预设的第一类型灰度流量控制规则,分析所述灰度入口的流量比例信息,确定所述请求信息对应的流量类型是否为灰度版本流量。6.如权利要求3所述的灰度发布方法,其特征在于,所述基于所述预设的灰度流量控制规则,确定所述请求信息对应的流量类型是否为灰度版本流量的步骤包括:基于预设的第二类型灰度流量控制规则,分析所述请求信息的请求内容,确定所述请求信息对应的流量类型是否为灰度版本流量。7.如权利要求1所述的灰度发布方法,其特征在于,所述灰度发布方法还包括:基于趋势图和拓扑图中的至少一种视图形式,显示灰度发布的过程信息。8.一种灰度发布装置,其特征在于,所述灰度发布装置包括:接收模块,用于通过灰度入口接收客户端的请求信息;流量控制模块,用于基于预设的灰度流量控制规则,确定所述请求信息是否满足灰度泳道的进入条件,所述灰度泳道用于圈定灰度版本实例。9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的灰度发布程序,所述灰度发布程序被所述处理器执行时实现如权利要求1-7中任一项所述的灰度发布方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有灰度发布程序,所述灰度发布程序被处理器执行时实现如权利要求1-7中任一项所述的灰度发布方法的步骤。

技术总结
本申请公开了一种灰度发布方法、装置、终端设备及存储介质,其灰度发布方法包括:通过灰度入口接收客户端的请求信息;基于预设的灰度流量控制规则,确定请求信息是否满足灰度泳道的进入条件,灰度泳道用于圈定灰度版本实例。基于本申请方案,结合灰度流量控制规则和灰度泳道,可以实现原始版本实例和灰度版本实例之间的流量控制,提高了灰度发布的可控性。提高了灰度发布的可控性。提高了灰度发布的可控性。


技术研发人员:刘磊 陈文奇 张志强
受保护的技术使用者:招商银行股份有限公司
技术研发日:2023.03.29
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐