掌桥专利:专业的专利平台
掌桥专利
首页

一种用于灰度发布的智能分流引擎

文献发布时间:2023-06-19 18:29:06


一种用于灰度发布的智能分流引擎

技术领域

本发明涉及灰度发布技术领域,具体涉及一种用于灰度发布的智能分流引擎。

背景技术

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。在灰度发布中使用A/B测试,即让一部分用户继续使用产品特性A为旧的版本,另一部分处于灰度策略中的白名单用户开始使用产品特性B为灰度服务器中的新版本,如果用户对B没有意见,则逐渐扩大范围,把所有用户都迁移至B上面。灰度发布根据已选定的策略筛选用户,再通过部署系统对用户行为进行分析,不断将产品进行完善。

但是,目前市面上的平台产品,在进行灰度发布的情况下,无法同时解决微服务前端版本管理、微服务版本管理、微服务间调用的版本管理、版本兼容管理等问题,其中任意一个环节出问题,将会引起系统运行异常。用户在使用应用程序时,由于不能及时完成新旧版本的更新替换而产生不好的用户体验,且版本不兼容的问题使不同用户在使用不同的版本收发信息时,产生了极大的阻碍。因此需要一种用户灰度发布的智能分流引擎,来将用户使用的应用程序进行灰度分流,用以增加用户的使用体验。

发明内容

本发明提供,以解决现有技术中存在的上述问题。

一种用于灰度发布的智能分流引擎,其特征在于,包括:

灰度发布插件:通过用户分流的方式,平滑过渡不同版本的应用程序;

网关请求模块:通过所述应用程序向前端发出转发请求,前端将版本信息转发到指定版本的微服务中;

前端版本管理模块:用于管理应用程序中不同版本的前端版本信息;

微服务版本管理模块:将所述前端版本信息映射到独立部署的对应版本的微服务中;

版本兼容管理模块:用于将应用程序中的新版本兼容旧版本。

优选的,所述灰度发布插件,包括:

灰度匹配组件:接收来自客户端发来的访问请求,查看所述访问请求中是否带有灰度标识,若含有灰度标识,则对客户端发来的访问请求施行灰度策略匹配;

所述访问请求中包含当前用户使用的应用程序版本信息列表;

获取所述访问请求中与应用程序版本信息有对应关系的版本配置信息;

根据所述应用程序版本信息列表与有对应关系的版本配置信息匹配所述前端版本管理模块中的前端版本信息。

优选的,所述灰度策略匹配,包括:

获取客户端发来的带有灰度标识的访问请求,并提取所述应用程序版本信息列表、版本配置信息;

根据所述应用程序版本信息列表、版本配置信息判断当前用户是否符合带有灰度标识的条件,并得出判断结果;

所述带有灰度标识的条件为当前应用程序版本不为最新版本;

若所述判断结果符合客户端带有灰度标识的条件,则将判断结果返回至客户端,对客户端施行灰度策略匹配。

优选的,所述网关请求模块,包括:

网关均衡拦截组件:拦截客户端发来的访问请求,并查看所述访问请求是否带有灰度标识,若有,则从灰度标识中获取客户端访问URL地址,若没有则对访问请求进行拦截;

请求转发器:根据所述URL地址以及用户信息确定所述灰度策略的白名单,并将所述白名单转发至所述微服务版本管理模块内部预设的微服务中;

请求限流器:当所述客户端的访问请求数量过大时,则在网关中按照所述微服务版本管理模块能够接收的预设速度进行放行请求。

优选的,所述URL地址以及用户信息确定所述灰度策略的白名单,包括:

对所述白名单用户进行预处理,包括用户身份认证以及用户权项鉴别;

当白名单用户通过预处理的操作时,将白名单用户进行重新注册作为新版本的实例,将所述重新注册的用户作为新的身份标识发送至所述前端版本管理模块中,并由前端版本管理模块转发至微服务版本管理模块进行灰度策略请求。

优选的,所述前端版本管理模块,包括:

数据库:用于接收由网关请求模块发来的转发请求,将所述转发请求中白名单用户的身份标识信息保存在数据库中;

版本信息管理单元:用于存放所述应用程序的各种版本信息,并在应用程序更新时,定期向客户端发送版本更新消息;

异常管理单元:将所述数据库中的身份标识信息进行统计,当转发请求数量大于设定值时,则设定为异常情况,并对转发请求进行拦截。

优选的,所述微服务版本管理模块,包括:

灰度分流子模块:将前端版本管理模块转发过来的信息进行灰度分流,所述灰度分流用于将所述灰度策略中白名单中的用户,根据需求分流至不同版本的应用程序中;

灰度微服务器:用于接收由所述灰度分流中灰度策略匹配到的前端版本信息;请求微服务管理模块发布版本资源包,并解析所述白名单用户需求版本的资源包。

优选的,所述版本兼容管理模块,包括:

从所述微服务器版本管理模块中获取客户端发来的访问请求为目标版本;

将所述目标版本中的信息格式以及有同一类型的所述信息格式作为第一目标格式;

所述灰度微服务器中的版本信息格式为第二目标格式;

将所述第一目标格式中的信息格式发送至灰度微服务器中,并转换成灰度服务器中所述第二目标格式对应的版本信息格式。

优选的,本发明提供,一种灰度发布的智能分流引擎,其特征在于,还包括:

列表监测变更发送单元:获取应用程序版本列表信息,并监测所述版本信息列表是否发生变更;若发生变更,则按照预先设定的变更策略向客户端发送变更信息,提醒用户进行版本变更升级;

版本信息变更判断单元:定期获取客户端当前使用的版本信息,并与所述监测单元获取的应用程序版本列表信息进行比较,判断所述版本信息是否发生变更,并将变更结果返回至所述前端版本管理模块。

优选的,所述预先设定的变更策略,包括:

判定当前客户端使用的版本信息是否为旧版本;

若判定结果为是,则统计当前使用旧版本的用户数量,向所述微服务版本管理模块发出灰度分流请求;微服务器根据客户端发来的灰度分流请求中带有灰度标识的用户进行灰度分流;

若判定结果为否,则统计当前使用所述灰度服务器中版本的用户数量,使得请求访问灰度服务器中新版本用户数量与旧版本用户数量的比例达到预先设定的阈值。

与现有技术相比,本发明具有以下优点:通过灰度发布的智能分流引擎,设计了灰度发布插件,通过对网关请求转发到指定的微服务版本,在相同微服务版本访问相同版本的前端资源,解决了前端版本管理、微服务版本管理、版本兼容管理问题,保证了整体系统的稳定性,在系统初始的时候就可以及时发现和调整问题,以保证其影响度。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例中一种用于灰度发布的智能分流引擎模块构成图;

图2为本发明实施例中网关请求模块的工作流程图;

图3为本发明实施例中灰度发布智能分流过程图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

参照图1,本发明实施例提供了一种用户灰度发布的智能分流引擎,其特征在于,包括:

灰度发布插件:通过用户分流的方式,平滑过渡不同版本的应用程序;

网关请求模块:所述应用程序向前端发出转发请求,前端将版本信息转发到指定版本的微服务器中;

前端版本管理模块:用于管理应用程序中不同版本的前端版本信息;

微服务版本管理模块:将所述前端版本信息映射到独立部署的对应版本的微服务器中;

版本兼容管理模块:用于将应用程序中的新版本兼容旧版本。

上述技术方案的工作原理为:本实施例采用的方案是,首先由灰度发布插件来统计带有灰度标识的用户,所述灰度发布插件中包含网关请求模块、前端版本管理模块、微服务版本管理模块以及版本兼容管理模块,网所述关请求模块用来获取用户的访问请求,并查看是否带有灰度标识,若有,则将所述访问请求发送至前端版本管理模块中去,当所述前端版本管理模块中收到所述网关请求模块中发来的访问请求时,找到与所述访问请求对应的前端版本信息,并将所述版本信息转发至微服务版本管理模块中,所述前端版本信息映射至对应版本的微服务器中,生成用户所需的版本内容。

上述技术方案的有益效果为:采用本实施例提供的方案,设计灰度发布插件,通过对网关请求转发到指定的微服务版本,在相同微服务版本访问相同版本的前端资源,解决了前端版本管理、微服务版本管理、版本兼容管理问题,保证了整体系统的稳定性,在系统初始的时候就可以及时发现和调整问题,以保证其影响度。

在另一实施例中,所述灰度发布插件,包括:

灰度匹配组件:接收来自客户端发来的访问请求,查看所述访问请求中是否带有灰度标识,若含有灰度标识,则对客户端发来的访问请求施行灰度策略匹配;

所述访问请求中包含当前用户使用的应用程序版本信息列表;

获取所述访问请求中与应用程序版本信息有对应关系的版本配置信息;

根据所述应用程序版本信息列表与有对应关系的版本配置信息匹配所述前端版本管理模块中的前端版本信息。

上述技术方案的工作原理为:本实施例采用的方案是,所述灰度发布插件用来对客户进行灰度策略匹配,接通过收客户端发来的访问请求,所述灰度策略为指定灰度发布的白名单,获取灰度策略白名单用户中的程序版本信息列表、与应用程序版本信息有对应关系的版本配置信息,所述灰度策略存放在redis缓存中,当系统进行更新时,从redis中获取灰度发布策略的配置信息,将白名单中用户的程序版本信息与对应的灰度发布策略进行匹配。

上述技术方案的有益效果为:采用本实施例提供的方案,通过获取程序版本信息以及与程序版本信息有对应关系的版本配置信息,可以方便灰度发布策略更容易的进行,使用redis缓存灰度发布策略的配置信息,可以减少代码的编写,无需在每次更改灰度发布策略后修改代码,解决了灰度发布的效率问题。

在另一实施例中,所述灰度策略匹配,包括:

获取客户端发来的带有灰度标识的访问请求,并提取所述应用程序版本信息列表、版本配置信息;

根据所述应用程序版本信息列表、版本配置信息判断当前用户是否符合带有灰度标识的条件,并得出判断结果;

所述带有灰度标识的条件为当前应用程序版本不为最新版本;

若所述判断结果符合客户端带有灰度标识的条件,则将判断结果返回至客户端,对客户端施行灰度策略匹配。

上述技术方案的工作原理为:本实施例采用的方案是,通过判定客户端发来的灰度标识中带有的应用程序版本信息列表、版本配置信息判断当前用户使用的是否为最新版本,若是最新版本可继续将带有灰度标识的白名单用户施行灰度发布策略。

上述技术方案的有益效果为:采用本实施例提供的方案,通过判断当前带有灰度标识的用户是否为最新版本,可以提高采用灰度发布策略的效率。

在另一实施例中,参照图2,所述网关请求模块,包括:

网关均衡拦截组件:拦截客户端发来的访问请求,并查看所述访问请求是否带有灰度标识,若有,则从灰度标识中获取客户端访问URL地址,若没有则对访问请求进行拦截;

请求转发器:根据所述URL地址以及用户信息确定所述灰度策略的白名单,并将所述白名单转发至所述微服务版本管理模块内部预设的微服务中;

请求限流器:当所述客户端的访问请求数量过大时,则在网关中按照所述微服务版本管理模块能够接收的预设速度进行放行请求。

上述技术方案的工作原理为:本实施例采用的方案是,所述网关请求模块中的网关均衡拦截组件用于拦截客户端发来的访问请求,并查看所述访问请求中是否带有灰度标识,若带有灰度标识,则获取客户端访问URL地址以及用户信息,所述URL地址中包含用户的IP地址,根据IP地址确定可以施行灰度发布策略的用户白名单,当确定好用户白名单后将白名单发送至微服务版本管理模块内部预设的微服务中,该发送过程包含发送成功与发送失败,由请求限流器来判定当前白名单用户是否可以全部发送成功,当客户端的访问请求数量过大时,则停止对白名单中的用户进行发送,并等待客户端的请求访问速度降至微服务版本管理模块能够接收的预设速度。

所述网关均衡拦截组件通过随机函数生成一个随机数后用于选择客户端的集群节点,选择的机器无法预测,即满载服务器还是存在被选中的可能性,因此在随机算法的基础上,网关均衡拦截组件每个可用的服务器节点加上了权重,权重大的节点更容易被选中,在这种算法中可以很好的应对机器性能不会大幅度的改变系统,公式如下:

其中,假设系统中有N个处理机,这N个处理机平均完成一个时间步的时间为T

上述技术方案的有益效果为:采用本实施例提供的方案,通过网关均衡拦截组件的计算,可以很好的对应系统性能不会大幅度的改变系统,且系统消耗资源少。请求限流器将访问请求数量进行限流,使系统不至于负载过重,并方便网关请求模块的管理。

在另一实施例中,所述URL地址及用户信息确定所述灰度策略的白名单,包括:

对所述白名单用户进行预处理,包括用户身份认证以及用户权限鉴别;

当白名单用户通过预处理的操作时,将白名单用户进行重新注册作为新版本的实例,将所述重新注册的用户作为新的身份标识发送至所述前端版本管理模块中,并由前端版本管理模块转发至微服务版本管理模块进行灰度策略请求。

上述技术方案的工作原理为:本实施例采用的方案是,所述用户身份认证以及用户权项鉴别,首先按用户的id、设备类型,比如通过平时的埋点上报数得知用户的pv、uv、页面访问平均时长等数据,跟据用户活跃度让用户优先体验新版本,进而快速观察使用效果,然后按用户的地域、性别、年龄等形成用户画像,并通过用户的性别年龄做出新老版本的对比效果来看白名单用户在新版本的使用人群范围,做下一次白名单用户的参考。最后,根据白名单中的用户进行重新注册,用户则可以使用新版本。

上述技术方案的有益效果为:采用本实施例提供的方案,通过对白名单用户进行处理使灰度策略使用的效率更高,提高应用程序的迭代速度,为了应用程序更新提供了更好的验证条件,在一定程度上也给应用程序的开发提供了容错空间,并在灰度范围内大胆尝试创新,不断满足业务需求。

在另一实施例中,所述前端版本管理模块,包括:

数据库:用于接收由网关请求模块发来的转发请求,将所述转发请求中白名单用户的身份标识信息保存在数据库中;

版本信息管理单元:用于存放所述应用程序的各种版本信息,并在应用程序更信时,定期向客户端发送版本更新消息;

异常管理单元:将所述数据库中的身份标识信息进行统计,当转发请求数量大于设定值时,则设定为异常情况,并对转发请求进行拦截。

上述技术方案的工作原理为:本实施例采用的方案是,所述数据库用于存储白名单用户的身份标识信息,根据数据库中的身份标识信息进行数据统计,当应用程序更新时,则向客户端发出更新提醒,此时用户可以点击移动终端显示的灰度版本更新控件,从而触发版本更新的转发请求,并将转发请求传送至微服务器中,微服务器中包含用户白名单已经灰度标识,若所述转发请求的数量过多时,则所述异常管理单元判定当前为异常情况,对转发请求进行拦截。

在另一实施例中,参照图3,所述微服务版本管理模块,包括:

灰度分流子模块:将前端版本管理模块转发过来的信息进行灰度分流,所述灰度分流用于将所述灰度策略中白名单中的用户根据需求分流至不同版本的应用程序中;

灰度微服务器:用于接收由所述灰度分流中灰度策略匹配到的前端版本信息;请求微服务管理模块发布版本资源包,并解析所述白名单用户需求版本的资源包。

上述技术方案的工作原理为:本实施例采用的方案是,所述灰度分流是应用程序将客户端中的用户由旧版本过渡到新版本的过程,根据用户的需求,灰度策略选择白名单中的用户,并将白名单的用户分流至灰度微服务器中,所述灰度微服务器中包含新版本发布的资源包,通过在对应的微服务器中解析资源包,并转发至客户端中,使用户能够使用需求版本的灰度资源。

上述技术方案的有益效果为:采用本实施例提供的方案,可以更方便的管理白名单中的用户,将白名单用户的使用版本过渡至灰度服务器中,使用户快速体验新版本的使用。

在另一实施例中,所述版本兼容管理模块,包括:

从所述微服务器版本管理模块中获取客户端发来的访问请求为目标版本;

将所述目标版本中的信息格式以及有同一类型的所述信息格式作为第一目标格式;

所述灰度微服务器中的版本信息格式为第二目标格式;

将所述第一目标格式中的信息格式发送至灰度微服务器中,并转换成灰度服务器中所述第二目标格式对应的版本信息格式。

上述技术方案的工作原理为:本实施例采用的方案是,所述目标版本为当前用户使用的版本,所述目标版本的用户可以发送给其他版本的用户任意消息,包括文字消息、图片、视频等,所述同一类型为同一版本的信息格式。所述灰度服务器中版本信息则为新版本的信息格式,将所述第一目标格式转换为第二目标格式,也就是将旧版本的信息格式转换为与灰度微服务器中对应的格式信息,例如,当客户端在传送图片是,所述第一目标格式仅能传送jpg、png、jpeg格式,而第二目标格式中可发送图片格式包括jpg、png、tif、gif、pcx等,则将更新第一目标格式的发送方式,使其转换为第二目标格式的发送方式。

上述技术方案的有益效果为:采用本实施例提供的方案,解决了版本兼容的问题,而且避免了占用客户端的资源,也不会影响客户端的新功能的开发,很大程度上的提高了用户的体验。

在另一实施例中,一种灰度发布的智能分流引擎,其特征在于,还包括:

列表监测变更发送单元:获取应用程序版本列表信息,并监测所述版本信息列表是否发生变更;若发生变更,则按照预先设定的变更策略向客户端发送变更信息,提醒用户进行版本变更升级;

版本信息变更判断单元:定期获取客户端当前使用的版本信息,并与所述监测单元获取的应用程序版本列表信息进行比较,判断所述版本信息是否发生变更,并将变更结果返回至所述前端版本管理模块。

所述预先设定的变更策略,包括:

判定当前客户端使用的版本信息是否为旧版本;

若判定结果为是,则统计当前使用旧版本的用户数量,向所述微服务版本管理模块发出灰度分流请求;微服务器根据客户端发来的灰度分流请求中带有灰度标识的用户进行灰度分流;

若判定结果为否,则统计当前使用所述灰度服务器中版本的用户数量,使得请求访问灰度服务器中新版本用户数量与旧版本用户数量的比例达到预先设定的阈值。

上述技术方案的工作原理为:本实施例采用的方案是,通过监测单元跟踪用户的使用的版本信息,并向用户提醒版本更新信息,并通过半段单元判断当前版本信息是否发生改变,若微服务版本模块中出现新的版本,则产生版本变更信息,并将版本变更信息发送至前端版本管理模块,所述预先设定的策略为根据用户访问请求确定白名单的数量,并将白名单发送至灰度为服务器中。

根据灰度服务器的储存程度判断白名单的用户数量,公式如下:

其中,

上述技术方案的有益效果为:采用本实施例提供的方案,通过获取相应版本信息列表,监测版本信息是否发生变化,可以实时监测版本更新状况,并及时发送给用户,通过判断当前用户的版本信息判断是否为旧版本,并及时进行灰度分流,增加了用户使用体验。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种用于截流井的智能远程分流装置及其控制系统
  • 应用于搜索引擎优化的贸易统计可视化分布式发布系统
  • 一种动态策略灰度发布引擎实现请求精准分流方法及系统
  • 用于灰度发布的数据分流方法及装置、设备
技术分类

06120115581824