本发明涉及应用发布,尤其是涉及一种移动端应用灰度发布方法、系统及介质。
背景技术:
1、现有技术中,在kubernetes环境下常用的一种灰度发布方案是使用负载均衡器(在kubernetes环境多为nginx ingress控制器/网关)进行流量转发,按照灰度策略将用户路由至基线版本或者灰度版本,但这种方案只适用于前端应用或者后端应用单独灰度的场景,无法实现前后端多版本应用联动。
2、而现有能够完整实现前后端全链路灰度方案仍有一些缺陷,这些方案需要将微服务业务网关前置,即在客户端发起请求时就进行灰度策略判断添加灰度标识,之后再请求前端应用,对业务改造大,且业务网关需要同时处理前端和后端的业务和灰度处理逻辑,并非系统架构的最佳实践,还会影响到系统性能。同时,这种方案往往还需要设置中间空白跳转页面去实现,导致用户访问等待页面加载时间较长,用户体感页面加载较慢,影响体验。此外,上述灰度发布方案对于百分比释放流量的灰度策略支持较差,会因为流量随机导致出现客户端版本不一致等问题。
技术实现思路
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、综上所述,与现有技术相比,本发明包括以下至少一种有益技术效果:
29、本发明提供的移动端应用灰度发布方法,通过在业务网关处判断客户请求是否满足灰度路由规则,对命中灰度规则的用户添加灰度标识信息,并将请求流量路由到灰度版本;对未命中灰度规则的用户,将请求流量路由到基本版本。与现有技术相比,该方法能够确保同一用户始终访问同一版本,避免用户在不同版本之间频繁跳变,提高了用户体验的一致性和稳定性,同时,外挂于业务网关实现灰度发布功能,无需改变系统架构,系统接入侵入少并且不受限于开发语言,具有较强的通用性。
1.一种移动端应用灰度发布方法,所述移动端应用包括客户端,前端应用以及后端应用,所述客户端与前端应用通过流量网关连接,所述前端应用与所述后端应用通过业务网关连接,其特征在于,所述发布方法包括:
2.根据权利要求1所述的移动端应用灰度发布方法,其特征在于,所述灰度路由规则包括按照白名单和/或基于流量百分比策略选取验证灰度功能的用户,所述灰度版本包括前端应用灰度版本和后端应用灰度版本。
3.根据权利要求2所述的移动端应用灰度发布方法,其特征在于,当所述灰度路由规则包括基于流量百分比策略选取灰度功能用户时,所述于业务网关处判断所述客户请求是否满足所述灰度路由规则,包括:
4.根据权利要求1所述的移动端应用灰度发布方法,其特征在于,所述对命中所述灰度规则的用户添加灰度标识信息,包括:
5.根据权利要求4所述的移动端应用灰度发布方法,其特征在于,所述于所述流量网关处识别该用户是否属于灰度用户,包括:
6.根据权利要求4所述的移动端应用灰度发布方法,其特征在于,所述于所述业务网关处识别该用户是否属于灰度用户,包括:
7.根据权利要求1所述的移动端应用灰度发布方法,其特征在于,所述命中所述灰度规则的用户添加灰度标识信息,还包括:
8.一种移动端应用灰度发布系统,其特征在于,所述系统包括:
9.根据权利要求8所述的移动端应用灰度发布系统,其特征在于,所述灰度功能处理模块还用于对所述客户端请求进行流量打标、流量染色和/或按标路由。
10.一种可读存储介质,其特征在于,所述可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-7中任一项所述的移动端应用灰度发布方法。
