基于开发平台和框架实现灰度发布的方法和系统技术方案

技术编号:32551548 阅读:19 留言:0更新日期:2022-03-05 11:51
本发明专利技术提供了一种基于开发平台和框架实现灰度发布的方法和系统,包括:步骤1:基于HTTP和反向代理web服务器和脚本语言,构建web平台,并对web平台、API网关和容器云平台应用进行部署;步骤2:配置web平台和web服务器的代理;步骤3:设置web数据的交互方式,通过设置的请求接口以cookie形式将数据注入浏览器;步骤4:通过API网关配置代理/分流,拦截从客户端到服务器端的请求消息中的cookie;步骤5:保持cookie状态进行灰度测试和灰度发布。本发明专利技术从整个互联网应用部署架构角度出发,解决了服务端环境配置部署压力过重的问题。端环境配置部署压力过重的问题。端环境配置部署压力过重的问题。

【技术实现步骤摘要】
基于开发平台和框架实现灰度发布的方法和系统


[0001]本专利技术涉及计算机
,具体地,涉及一种基于开发平台和框架实现灰度发布的方法和系统。

技术介绍

[0002]一个产品如果需要快速迭代开发上线,同时又要保证质量,保证刚上线的系统提供的功能是经过生产验证过功能完备且不会影响产品的使用和体验,就需要设计一套灰度发布系统。灰度发布系统的作用在于产品开发者可以根据自己的配置,将选定用户的流量导到新上线的系统上,来快速验证新的功能修改,而新系统出现的问题也不会影响老系统的功能使用。
[0003]专利文献CN111580846B(申请号:CN202010413471.0)公开了一种基于混合框架的微服务灰度发布方法,设置灰度配置模块,在服务网关中集成灰度识别模块和灰度路由组件,在非服务网关的每个服务中集成灰度路由组件;所述灰度配置模块用于配置灰度用户列表,确定哪些用户使用灰度版本,哪些用户使用正式版本;所述灰度识别模块用于对外来请求进行识别,确定是否是灰度请求,并进行灰度标记;所述灰度路由组件用于进行灰度路由,根据灰度标记,将请求路由到对应的服务;所述灰度路由组件主要由基于不同微服务框架的至少两个请求拦截器、至少两个调用拦截器和至少两个路由器组成。
[0004]在现有技术中,微服务集群部署后,传统的微服务中间件提供随机调用某台服务器的寻找功能,但是并没有提供根据需求灰度发布和流量引导到具体某几台微服务器的功能,并且服务端环境配置部署压力过重。

技术实现思路

[0005]针对现有技术中的缺陷,本专利技术的目的是提供一种基于开发平台和框架实现灰度发布的方法和系统。
[0006]根据本专利技术提供的基于开发平台和框架实现灰度发布的方法,包括:
[0007]步骤1:基于HTTP和反向代理web服务器和脚本语言,构建web平台,并对web平台、API网关和容器云平台应用进行部署;
[0008]步骤2:配置web平台和web服务器的代理;
[0009]步骤3:设置web数据的交互方式,通过设置的请求接口以cookie形式将数据注入浏览器;
[0010]步骤4:通过API网关配置代理/分流,拦截从客户端到服务器端的请求消息中的cookie;
[0011]步骤5:保持cookie状态进行灰度测试和灰度发布。
[0012]优选的,根据生产部署架构部署web平台和API网关,利用容器云平台多租户特性部署多套环境,每套环境包括应用服务器和数据库,根据域名区分不同环境。
[0013]优选的,所述web服务器把请求发给后端服务器进行服务处理,管理从外部网络到
内部网络的连接或请求,并配置指向容器云平台对外的网关服务地址ip。
[0014]优选的,设置ajax请求接口,通过浏览器页面请求接口将cookie的环境设定值EnvSetting置为灰度环境pre,在浏览器中将cookie保存,之后每次进行从客户端到服务器端的消息请求时都将cookie发送给服务器端。
[0015]优选的,若通过请求接口注入的cookie的环境设定值为灰度,则将流量指向部署的灰度发布环境,否则为生产环境;同时保证cookie在未清理的情况下通过原功能链接进行灰度环境测试。
[0016]根据本专利技术提供的基于开发平台和框架实现灰度发布的系统,包括:
[0017]模块M1:基于HTTP和反向代理web服务器和脚本语言,构建web平台,并对web平台、API网关和容器云平台应用进行部署;
[0018]模块M2:配置web平台和web服务器的代理;
[0019]模块M3:设置web数据的交互方式,通过设置的请求接口以cookie形式将数据注入浏览器;
[0020]模块M4:通过API网关配置代理/分流,拦截从客户端到服务器端的请求消息中的cookie;
[0021]模块M5:保持cookie状态进行灰度测试和灰度发布。
[0022]优选的,根据生产部署架构部署web平台和API网关,利用容器云平台多租户特性部署多套环境,每套环境包括应用服务器和数据库,根据域名区分不同环境。
[0023]优选的,所述web服务器把请求发给后端服务器进行服务处理,管理从外部网络到内部网络的连接或请求,并配置指向容器云平台对外的网关服务地址ip。
[0024]优选的,设置ajax请求接口,通过浏览器页面请求接口将cookie的环境设定值EnvSetting置为灰度环境pre,在浏览器中将cookie保存,之后每次进行从客户端到服务器端的消息请求时都将cookie发送给服务器端。
[0025]优选的,若通过请求接口注入的cookie的环境设定值为灰度,则将流量指向部署的灰度发布环境,否则为生产环境;同时保证cookie在未清理的情况下通过原功能链接进行灰度环境测试。
[0026]与现有技术相比,本专利技术具有如下的有益效果:
[0027](1)本专利技术从整个互联网应用部署架构角度出发,基于浏览器cookie并结合openshift容器平台多租户及openresty动态分流的特性,解决了服务端环境配置部署压力过重的问题;
[0028](2)本专利技术将符合条件的请求指定发送到目标微服务的一个或多个服务器,实现新版本流量可精确控制,从而解决现有方法在发布上线应用时可能对用户操作产生较大影响的问题。
附图说明
[0029]通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:
[0030]图1为本申请实施例提供的一种应用的灰度发布方法的流程图;
[0031]图2为本申请实施例提供的对灰度发布的流量切换修改流程图;
[0032]图3为本申请实施例提供的回归测试示意图。
具体实施方式
[0033]下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。
[0034]实施例:
[0035]本专利技术提供了一种基于开发平台和框架实现灰度发布的系统,包括如下组件:
[0036]nginx:是一款轻量级的Web服务器/反向代理服务器。
[0037]openresty:基于nginx和lua的高性能web平台,集成大量Lua库、第三方模块以及大多数的依赖项。
[0038]orange:基于openresty的api网关。除nginx基本功能外。可用于api监控、访问控制(鉴权、代理分流、WAF)、流量筛选、访问限速、动态分流等,提供一套默认的dashboard用于动态管理各种功能和配置。
[0039]openshift:是一个开源的容器云平台,底层基于当前容器的事实标准编排系统Kubernetes和docker引擎。
[0040]C本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于开发平台和框架实现灰度发布的方法,其特征在于,包括:步骤1:基于HTTP和反向代理web服务器和脚本语言,构建web平台,并对web平台、API网关和容器云平台应用进行部署;步骤2:配置web平台和web服务器的代理;步骤3:设置web数据的交互方式,通过设置的请求接口以cookie形式将数据注入浏览器;步骤4:通过API网关配置代理/分流,拦截从客户端到服务器端的请求消息中的cookie;步骤5:保持cookie状态进行灰度测试和灰度发布。2.根据权利要求1所述的基于开发平台和框架实现灰度发布的方法,其特征在于,根据生产部署架构部署web平台和API网关,利用容器云平台多租户特性部署多套环境,每套环境包括应用服务器和数据库,根据域名区分不同环境。3.根据权利要求1所述的基于开发平台和框架实现灰度发布的方法,其特征在于,所述web服务器把请求发给后端服务器进行服务处理,管理从外部网络到内部网络的连接或请求,并配置指向容器云平台对外的网关服务地址ip。4.根据权利要求1所述的基于开发平台和框架实现灰度发布的方法,其特征在于,设置ajax请求接口,通过浏览器页面请求接口将cookie的环境设定值EnvSetting置为灰度环境pre,在浏览器中将cookie保存,之后每次进行从客户端到服务器端的消息请求时都将cookie发送给服务器端。5.根据权利要求1所述的基于开发平台和框架实现灰度发布的方法,其特征在于,若通过请求接口注入的cookie的环境设定值为灰度,则将流量指向部署的灰度发布环境,否则为生产环境;同时保证cookie在未清理的情况下通过原功能链接进行灰度环境测试。6.一种基于开发平台...

【专利技术属性】
技术研发人员:袁健
申请(专利权)人:兴业银行股份有限公司
类型:发明
国别省市:

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

1