一种灰度发布方法、规则引擎、系统、终端和存储介质与流程

文档序号:15557471发布日期:2018-09-29 01:27阅读:204来源:国知局

本发明实施例涉及网络信息技术,尤其涉及一种灰度发布方法、规则引擎、系统、终端和存储介质。



背景技术:

随着互联网的发展,应用软件需要具有越来越多智能化和人性化的新功能,以满足用户日益增长的需求。

在应用系统发布过程中,通常利用灰度发布来实现旧版本平滑切换至新版本的过程,即先允许一部分用户使用新版本,没有问题后再逐步增加使用新版本的用户数量,直至所有用户使用新版本,从而实现平滑切换。

现有技术中,灰度发布是根据固定编码的灰度规则来确定使用新版本的灰度用户。然而当变更灰度规则时,需要重新修改灰度规则后发布版本,使得变更效率下降,并且因新版本出现问题需要回滚时,新版本中未用于灰度发布的新功能也将被回滚,从而降低了用户体验。



技术实现要素:

本发明实施例提供一种灰度发布方法、规则引擎、系统、终端和存储介质,以实现灰度规则的实时动态配置,提高发布效率。

第一方面,本发明实施例提供了一种灰度发布方法,包括:

规则引擎接收目标业务方发送的用户信息和目标灰度规则标识;

所述规则引擎根据所述用户信息、所述目标灰度规则标识以及预设的至少一个灰度规则确定所述用户信息对应的用户标识;

所述规则引擎将所述用户标识发送至所述目标业务方,以使所述目标业务方根据所述用户标识确定所述用户信息对应的灰度发布对象。

第二方面,本发明实施例还提供了一种规则引擎,包括:

用户信息接收模块,用于接收目标业务方发送的用户信息和目标灰度规则标识;

用户标识确定模块,用于根据所述用户信息、所述目标灰度规则标识以及预设的至少一个灰度规则确定所述用户信息对应的用户标识;

用户标识发送模块,用于将所述用户标识发送至所述目标业务方,以使所述目标业务方根据所述用户标识确定所述用户信息对应的灰度发布对象。

第三方面,本发明实施例还提供了一种灰度发布系统,所述系统包括规则引擎、至少一个业务方和规则配置平台;其中,

所述规则引擎用于实现如本发明任意实施例所述的灰度发布方法;

所述业务方与所述规则引擎连接,用于将用户信息和灰度规则标识发送至所述规则引擎,并根据接收的用户标识确定所述用户信息对应的灰度发布对象;

所述规则配置平台与所述规则引擎连接,用于配置各所述业务方对应的灰度规则。

第四方面,本发明实施例还提供了一种终端,所述终端包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的灰度发布方法。

第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的灰度发布方法。

本发明实施例通过规则引擎接收目标业务方发送的用户信息和目标灰度规则标识;规则引擎根据用户信息、目标灰度规则标识以及预设的至少一个灰度规则确定用户信息对应的用户标识;规则引擎将用户标识发送至目标业务方,以使目标业务方根据用户标识确定用户信息对应的灰度发布对象。本实施例中灰度规则可以在线动态配置进而实现灰度发布,避免了现有技术中灰度规则每次变更都需要重新发布新版本的缺陷,从而提高了发布效率。

附图说明

图1是本发明实施例一提供的一种灰度发布方法的流程图;

图2是本发明实施例二提供的一种规则引擎的结构示意图;

图3是本发明实施例三提供的一种灰度发布系统的结构示意图;

图4是本发明实施例四提供的一种终端的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种灰度发布方法的流程图,本实施例可适用于对软件新功能进行灰度发布的情况,该方法可以由灰度发布系统中的规则引擎来执行,具体包括如下步骤:

s110、规则引擎接收目标业务方发送的用户信息和目标灰度规则标识。

其中,业务方是指需要利用灰度发布逐步进行新功能上线的业务后台应用程序,比如淘宝的某后台应用程序。本实施例中的规则引擎可以同时接入多个业务方。目标业务方是指当前向规则引擎发送用户信息和目标灰度规则标识的任意一个业务方。每个业务方均预先存储每个待灰度发布的新功能对应的灰度规则标识。当目标业务方接收到用户终端发送的用户请求时,根据用户请求中的请求类型确定与该请求类型对应的目标灰度规则标识,其中请求类型可以包括但不限于交易请求、登陆请求和评论请求。可选的,若用户请求中的请求类型对应的是待灰度发布的新功能,则确定与该请求类型对应的目标灰度规则标识,此时目标业务方将用户请求中的用户信息和确定的目标灰度规则标识发送至规则引擎中;若用户请求中的请求类型对应的不是待灰度发布的新功能,则确定该用户请求不存在对应的目标灰度规则标识,此时该业务方也不会将用户请求中的用户信息发送至规则引擎中。

s120、规则引擎根据用户信息、目标灰度规则标识以及预设的至少一个灰度规则确定用户信息对应的用户标识;

其中,灰度规则是根据用户对灰度发布的需求在预设数据库中预先配置的,用于限制灰度用户的范围和数量,其中灰度用户是指可以使用待灰度发布新功能的用户。每个灰度规则均对应一个灰度规则标识,以区分不同的待灰度发布新功能对应的灰度规则。

可选的,s120包括:

规则引擎根据目标灰度规则标识和预设的至少一个灰度规则确定目标灰度规则,其中,目标灰度规则包括至少一个规则表达式和/或灰度用户范围;规则引擎根据用户信息和目标灰度规则确定用户信息对应的用户标识。

其中,规则引擎根据接收的目标灰度规则标识从至少一个灰度规则中确定目标灰度规则。规则表达式是指用户信息需要满足的表达式。示例性的,规则表达式可以为:用户手机尾号为9,也可以为:用户ip地址来自北京。也就是说若用户信息中的手机尾号为9,则表示该用户为灰度用户;若用户信息中用户ip地址来自北京,则表示该用户为灰度用户。灰度用户范围是指批量的灰度用户信息。示例性的,灰度用户范围可以为30万个用户id,也可以为30万个用户手机号。本实施例中的灰度用户范围可以以列表的形式存在。可选的,用户标识可以包括灰度标识和非灰度标识,其中灰度标识表示该用户为灰度用户,非灰度标识表示该用户为非灰度用户。本实施例中的用户标识可以利用逻辑位“0”或“1”表示,示例性的,“1”代表灰度标识,“0”代表非灰度标识。

可选的,规则引擎根据用户信息和目标灰度规则确定用户信息对应的用户标识,包括:规则引擎遍历目标灰度规则中的至少一个规则表达式,确定用户信息是否满足规则表达式;若用户信息满足规则表达式的数量大于或等于预设数量,则确定用户标识为灰度标识;若用户信息满足规则表达式的数量小于预设数量,则确定用户标识为非灰度标识。

其中,当目标灰度规则包括至少一个规则表达式时,规则引擎可以预先将至少一个规则表达式从预设数据库中载入规则引擎的内存中,以加快灰度规则的计算速度,提高灰度发布的决策效率。具体的,本实施例中的决策效率可以达到毫秒级。规则引擎根据每个规则表达式,判断用户信息是否满足该规则表达式。判断结果可以利用布尔值进行表示。示例性的,true表示用户信息满足该规则表达式,false表示用户信息不满足该规则表达式。本实施例中的预设数量可以为一个也可以为多个。示例性的,当预设数量为一个时,则规则引擎只要有一个判断结果为ture,则该用户信息对应的用户标识确定为灰度标识,若判断结果均为false,则该用户信息对应的用户标识确定为非灰度标识。

可选的,规则引擎根据用户信息和目标灰度规则确定用户信息对应的用户标识,包括:规则引擎将用户信息在灰度用户范围中进行匹配;若匹配成功,则确定用户标识为灰度标识,否则确定用户标识为非灰度标识。

其中,当目标灰度规则包括灰度用户范围时,灰度用户范围中的批量数据占用内存较大,不便于预先存储至规则引擎的内存中,以防止因剩余内存过小使得运行速度降低,以及避免撑爆规则引擎的内存。规则引擎可以根据目标灰度规则标识,实时获取预设数据库中的灰度用户范围。其中,预设数据库可以为预先设置的缓存数据库。可选的,每个灰度用户范围对应一个预设缓存时间,当到达某个灰度用户范围对应的预设缓存时间后,将该灰度用户范围中的批量灰度用户信息进行删除,以释放内存空间,提高运行速度以及决策效率。其中,预设缓存时间可以是根据业务方的实际需求预先设置的。规则引擎将用户信息在灰度用户范围中的批量灰度用户信息进行查找和匹配。示例性的,若灰度用户范围为30万个用户id,则将用户信息中的用户id在该灰度用户范围中进行查找。若匹配成功,则表示该用户信息对应的用户为灰度用户,此时确定该用户信息对应的用户标识为灰度标识;若匹配失败,则表示该用户信息不在灰度用户范围内,即该用户信息对应的用户为非灰度用户,此时确定该用户信息对应的用户标识为非灰度标识。

可选的,当目标灰度规则包括至少一个规则表达式和灰度用户范围时,若用户信息满足规则表达式的数量大于或等于预设数量,和/或用户信息在灰度用户范围中匹配成功,则确定用户标识为灰度标识,否则确定用户标识为非灰度标识。

s130、规则引擎将用户标识发送至目标业务方,以使目标业务方根据用户标识确定用户信息对应的灰度发布对象。

其中,规则引擎确定接收的用户信息对应的用户标识后,将该用户标识返回至目标业务方。目标业务方根据接收的用户标识可以确定用户请求中的用户信息对应的用户是否为灰度用户,从而确定该用户请求对应的灰度发布对象,从而实现灰度发布。本实施例中的灰度发布对象可以包括测试功能代码和原始功能代码,其中测试功能代码是指待灰度发布功能对应的新功能代码,原始功能代码是指待灰度发布功能对应的现有功能代码。示例性的,若登录功能为待灰度发布功能,现有的登录功能版本为1.0,升级后新的登录功能版本为2.0,则版本2.0对应的登录功能代码为测试功能代码,版本1.0对应的登录功能代码为原始功能代码。

可选的,目标业务方根据用户标识确定用户信息对应的灰度发布对象,包括:

若用户标识为灰度标识,则确定用户信息对应的灰度发布对象为测试功能代码;若用户标识为非灰度标识,则确定用户信息对应的灰度发布对象为原始功能代码。

其中,若用户标识为灰度标识,则表明目标业务方接收的用户请求对应的用户为灰度用户,此时该用户终端执行测试功能代码,使得该用户使用新功能。若用户标识为非灰度标识,则表明业务方接收的用户请求对应的用户为非灰度用户,此时该用户终端执行原始功能代码,使得该用户使用原功能。从而实现功能的灰度发布。

需要注意的是,当业务方接收到的用户请求中的请求类型对应的不是待灰度发布功能,则表明该业务方没有对该请求类型对应的功能进行灰度发布,此时该用户终端直接执行该请求类型对应的功能代码。需要注意的是,若请求类型对应的功能进行了升级,但无需进行灰度发布,则用户终端执行的是升级后的新功能代码,若请求类型对应的功能没有进行升级,则用户终端执行的是原始功能代码。可见,本实施例中只对待灰度发布新功能进行了灰度限制,对其他的新功能并没有进行灰度限制,所以当待灰度发布新功能出现问题需要回滚至原始功能时,仅需在规则配置平台中变更灰度规则的状态为无效状态,即可实现待灰度发布新功能的回滚,并且未用于灰度发布的新功能不会被回滚,避免了现有技术中新版本回滚时所有的新功能均被回滚的问题,从而优化了灰度发布过程,并且提升了用户体验。

可选的,该方法还包括:

规则引擎接收灰度规则变更指令,根据灰度规则变更指令确定待变更灰度规则标识,其中,灰度规则变更指令由规则配置平台根据预设数据库中的灰度规则发生变更时发送;规则引擎根据待变更灰度规则标识和预设数据库中变更的灰度规则,更新规则引擎中对应的灰度规则。

其中,在灰度发布过程中,需要逐步增加使用待灰度发布新功能的灰度用户数量,直到所有用户均使用该项新功能,所以在实现旧版本平滑切换至新版本的过程,控制灰度用户数量的灰度规则需要逐步进行变更。在规则配置平台中根据业务方需求在线变更预设数据库中的灰度规则,从而更改灰度用户的数量。本实施例中的规则配置平台和规则引擎使用同一个预设数据库。当预设数据库中的灰度规则发送变更时,规则配置平台根据变更的灰度规则标识生成灰度规则变更指令,并将该灰度规则变更指令发送至规则引擎中,以通知规则引擎重新载入灰度规则,更新规则引擎内存中对应的灰度规则,进而使得规则引擎根据变更后的灰度规则确定用户信息对应的用户标识。本实施例中灰度规则的变更无需修改功能代码和发布版本,从而提高了灰度发布效率。

当发现测试功能代码执行错误或者待灰度发布新功能在使用过程中出现问题时,可以通过变更灰度规则使得所有用户信息对应的用户标识均为非灰度标识,从而所有用户终端均执行原始功能代码,实现了该功能的回滚。在回滚版本的过程中,未用于灰度发布的新功能不会被回滚,避免了现有技术中新版本回滚时所有的新功能均被回滚的问题。本实施例中的灰度发布系统可以支持在线变更,在线回滚,并且灰度规则变更可以实时生效,从而优化了灰度发布过程。

本发明实施例通过规则引擎接收目标业务方发送的用户信息和目标灰度规则标识;规则引擎根据用户信息、目标灰度规则标识以及预设的至少一个灰度规则确定用户信息对应的用户标识;规则引擎将用户标识发送至目标业务方,以使目标业务方根据用户标识确定用户信息对应的灰度发布对象。本实施例中灰度规则可以在线动态配置进而实现灰度发布,避免了现有技术中灰度规则每次变更都需要重新发布新版本的缺陷,从而提高了发布效率。

实施例二

图2为本发明实施例二提供的一种规则引擎的结构示意图,本实施例可适用于对软件新功能进行灰度发布的情况。该规则引擎包括:用户信息接收模块210、用户标识确定模块220和用户标识发送模块230。

其中,用户信息接收模块210,用于接收目标业务方发送的用户信息和目标灰度规则标识;用户标识确定模块220,用于根据用户信息、目标灰度规则标识以及预设的至少一个灰度规则确定用户信息对应的用户标识;用户标识发送模块230,用于将用户标识发送至目标业务方,以使目标业务方根据用户标识确定用户信息对应的灰度发布对象。

可选的,用户标识确定模块220包括:

目标灰度规则确定单元,用于根据目标灰度规则标识和预设的至少一个灰度规则确定目标灰度规则,其中,目标灰度规则包括至少一个规则表达式和/或灰度用户范围;

用户标识确定单元,用于根据用户信息和目标灰度规则确定用户信息对应的用户标识。

可选的,用户标识确定单元,具体用于:

遍历目标灰度规则中的至少一个规则表达式,确定用户信息是否满足规则表达式;若用户信息满足规则表达式的数量大于或等于预设数量,则确定用户标识为灰度标识;若用户信息满足规则表达式的数量小于预设数量,则确定用户标识为非灰度标识。

可选的,用户标识确定单元,还具体用于:

将用户信息在灰度用户范围中进行匹配;若匹配成功,则确定用户标识为灰度标识,否则确定用户标识为非灰度标识。

可选的,目标业务方用于:

若用户标识为灰度标识,则确定用户信息对应的灰度发布对象为测试功能代码;若用户标识为非灰度标识,则确定用户信息对应的灰度发布对象为原始功能代码。

可选的,该方法还包括:

灰度规则变更指令接收模块,用于接收灰度规则变更指令,根据灰度规则变更指令确定待变更灰度规则标识,其中,灰度规则变更指令由规则配置平台根据预设数据库中的灰度规则发生变更时发送;

灰度规则更新模块,用于根据待变更灰度规则标识和预设数据库中变更的灰度规则,更新规则引擎中对应的灰度规则。

上述规则引擎可执行本发明任意实施例所述的灰度发布方法,具备执行灰度发布方法相应的功能模块和有益效果。

实施例三

图3为本发明实施例三提供的一种灰度发布系统的结构示意图,如图3所述,该系统包括:包括规则引擎310、至少一个业务方320和规则配置平台330。

其中,规则引擎310用于实现本发明任意实施例所述的灰度发布方法;每个业务方320均与规则引擎310连接,用于将用户信息和灰度规则标识发送至规则引擎310,并根据接收的用户标识确定用户信息对应的灰度发布对象;规则配置平台330与规则引擎310连接,用于配置各业务方320对应的灰度规则。

本实施例中的灰度发布系统的工作过程如下:

当任一个业务方320接收到用户请求时,该业务方320根据用户请求中的请求类型确定与该请求类型对应的目标灰度规则标识,并将用户请求中的用户信息和目标灰度规则标识发送至规则引擎310。规则引擎320根据接收到用户信息和目标灰度规则标识以及预设的至少一个灰度规则确定用户信息对应的用户标识,并将该用户标识发送至业务方320。业务方320根据接收的用户标识确定用户请求中用户信息对应的灰度发布对象,从而实现灰度发布。当变更预设数据库中的各业务方320对应的灰度规则时,规则配置平台330根据待变更灰度规则标识生成灰度规则变更指令,并将该灰度规则变更指令发送至规则引擎310。规则引擎320根据接收的灰度规则变更指令确定待变更灰度规则标识,并重新载入预设数据库中的与待变更灰度规则标识对应的灰度规则,以使规则引擎320根据更新后的灰度规则确定用户信息对应的用户标识。

可选的,业务方320具体用于:

若用户标识为灰度标识,则确定用户信息对应的灰度发布对象为测试功能代码;若用户标识为非灰度标识,则确定用户信息对应的灰度发布对象为原始功能代码。

在本实施例中,若规则引擎310在已有业务方的基础上,接入新的业务方,则向新的业务方分配每个待灰度发布新功能对应的灰度规则标识,并利用规则配置平台330在预设数据库中增加每个新的灰度规则标识对应的灰度规则,从而对新的业务方进行灰度发布。

本实施例中的灰度发布系统,通过规则配置平台在线动态配置灰度规则,并于灰度规则变更时通知规则引擎更新灰度规则,使得该系统可以支持灵活多变的灰度规则,优化了灰度发布过程,从而提高了系统性能和灰度发布效率。

实施例四

图4为本发明实施例四提供的一种终端的结构示意图。参见图4,该终端包括:

一个或多个处理器410;

存储器420,用于存储一个或多个程序;

当一个或多个程序被一个或多个处理器410执行,使得一个或多个处理器410实现如上述实施例中任意实施例提出的灰度发布方法。

图4中以一个处理器410为例;终端中的处理器410和存储器420可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器420作为一种终端可读存储介质,可用于存储软件程序、终端可执行程序以及模块,如本发明实施例中的灰度发布方法对应的程序指令/模块(例如,规则引擎中的用户信息接收模块210、用户标识确定模块220和用户标识发送模块230)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行终端的各种功能应用以及数据处理,即实现上述的灰度发布方法。

存储器420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本实施例提出的终端与上述实施例提出的灰度发布方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行灰度发布方法相同的有益效果。

实施例五

本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的灰度发布方法。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1