一种灰度发布系统及其发布方法与流程

文档序号:11234699阅读:3477来源:国知局
一种灰度发布系统及其发布方法与流程

本发明属于互联网技术领域,尤其涉及一种灰度发布系统及其发布方法。



背景技术:

在现有的数据更新或系统更新中主要采用灰度发布和非灰度发布两种。其中,灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式,以abtest为例,当需要进行更新时,先让一部分用户继续用a,一部分用户开始用b,如果用户对b没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到b上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

但是现有灰度发布方案存在以下缺点:服务对象多为网站和手机应用,缺乏面向服务端分布式环境的灰度发布方案;灰度发布操作粒度多为站点或程序模块,需要专业it技术背景人员操作;目前运用灰度发布方案的产品多面向普通消费,不能满足大型企业或机构对可靠性、稳定性和安全性的要求。总之,现有已知的灰度发布方案不能满足不同的使用场景和客户需要,也不适应服务运营的需要。



技术实现要素:

本发明提供一种灰度发布系统及其发布方法,旨在解决现有技术中的发布系统不能满足不同的使用场景和客户需要的问题。

本发明是这样实现的,一种灰度发布系统,包括若干接口客户端组件和若干接口服务器;

所述接口客户端组件,包括服务调用接口,用于通过所述服务调用接口接收使用方发送的服务调用指令,确定所述服务调用指令指向的接口服务器,根据所述服务调用指令中包含的目标数据类型生成数据调用指令,将所述数据调用指令发送给所述服务调用指令指向的接口服务器;

所述服务调用指令指向的接口服务器,用于根据所述数据调用指令中的目标数据类型,从预置数据库中获取所述目标数据类型对应的目标数据,并将所述目标数据发送给所述接口客户端组件;

所述接口客户端组件,还用于通过所述服务调用接口将所述目标数据发送给所述使用方,以使所述使用方根据所述目标数据进行更新。

进一步地,所述灰度发布系统还包括配置服务器;

所述配置服务器,用于当检测到所述使用方发送的服务调用指令后,获取所述使用方的身份识别信息,从预置的接口服务器对应列表中查找所述身份识别信息对应的接口服务器信息,并将所述接口服务器信息发送给所述接口客户端组件,所述接口服务器对应列表中包含身份识别信息和接口服务器的对应关系;

则所述接口客户端组件具体用于:

接收所述接口服务器信息,根据所述服务调用指令中包含的目标数据类型生成数据调用指令,将所述数据调用指令发送给所述接口服务器信息所对应的接口服务器。

进一步地,所述灰度发布系统还包括发布管理平台;

所述发布管理平台,用于接收包含身份识别信息和接口服务器的配置指令,并将所述配置指令发送给所述配置服务器;还用于接收接口服务器的启动指令/停止指令,并将所述启动指令/停止指令发送给接口服务器;

所述配置服务器,还用于根据所述配置指令对所述接口服务器对应列表进行更新,所述更新包括新增、删除或变更接口服务器与身份识别信息的对应关系;

所述接口服务器,还用于在接收到所述启动指令/停止指令,进行启动或停止。

进一步地,所述若干接口服务器中的部分具有相同的版本;

若当前传输目标数据的接口服务器检测到不满足数据传输的条件时,所述当前传输目标数据的接口服务器向具有相同版本的接口服务器发送续传指令,所述续传指令用于指示接收到续传指令的接口服务器进行所述目标数据续传;

或:

所述配置服务器检测到当前传输目标数据的接口服务器出现不满足数据传输的情况时,发送续传指令给具有相同版本的接口服务器,以控制接收到所述续传指令的接口服务器进行所述目标数据的续传。

进一步地,所述接口客户端组件和所述接口服务器均采用谷歌远程过程调用协议进行数据交互,所述接口客户端组件和所述接口服务器采供单工通信模式进行通信,所述接口客户端组件和所述配置服务器采用双工通信模式进行通信,所述目标数据采用protobuffer的数据格式。

本发明还提供了一种灰度发布方法,包括:

当接口客户端组件通过服务调用接口接收到使用方发送的服务调用指令时,确定所述服务调用指令中指向的接口服务器,根据所述服务调用指令中的目标数据类型生成数据调用指令,并将所述服务调用指令发送给指向的接口服务器;

所述接口服务器根据所述数据调用指令中的目标数据类型,从预置数据库中获取所述目标数据类型对应的目标数据,并将所述目标数据发送给所述接口客户端组件,以通过所述接口客户端组件将所述目标数据发送给所述使用方,以使所述使用方根据所述目标数据进行更新。

进一步地,所述当接口客户端组件通过服务调用接口接收到使用方发送的服务调用指令时,确定所述服务调用指令中指向的接口服务器包括:

当接口客户端组件通过服务调用接口接收到使用方发送的服务调用指令时,配置服务器获取所述使用方的身份识别信息,从预置的接口服务器对应列表中查找所述身份识别信息对应的接口服务器信息,并将所述接口服务器信息发送给所述接口客户端组件;

所述接口客户端组件根据所述服务调用指令中包含的目标数据类型生成数据调用指令,将所述数据调用指令发送给所述接口服务器信息包含的接口服务器。

进一步地,所述灰度发布方法还包括:

发布管理平台接收包含身份识别信息和接口服务器的配置指令,并将所述配置指令发送给所述配置服务器;

配置服务器根据所述配置指令对所述接口服务器对应列表进行更新,所述更新包括新增、删除或变更接口服务器与身份识别信息的对应关系。

进一步地,所述将所述目标数据发送给所述接口客户端组件,以通过所述接口客户端组件将所述目标数据发送给所述使用方,以使所述使用方根据所述目标数据进行更新之后,还包括:

当检测到所述接口服务器不满足数据传输的条件时,所述配置服务器根据预置切换策略,向目标切换接口服务器发送切换指令,所述切换指令用以控制当前发送所述目标数据的接口服务器停止发送所述目标数据,并切换至所述目标切换接口服务器进行所述目标数据续传,所述预置切换策略包括查找并激活与当前发送所述目标数据的接口服务器相同权限的目标切换接口服务器。

进一步地,所述将所述目标数据发送给所述接口客户端组件,以通过所述接口客户端组件将所述目标数据发送给所述使用方,以使所述使用方根据所述目标数据进行更新之后,还包括:

若检测到不满足数据传输的条件时,当前发送所述目标数据的接口服务器在预先获取的接口服务器对应列表中,查找所述身份识别信息对应的其他接口服务器,向查找到的接口服务器发送数据传输切换指令,所述数据传输切换指令包括所述目标数据的传输情况,并指示所述查找的接口服务器根据所述目标数据的传输情况进行续传。

本发明与现有技术相比,有益效果在于:本发明实施例提供的灰度发布系统能够使使用方通过接口客户端组件连接到接口服务器,接口服务器根据使用方的更新需要发送对应的目标数据,使使用方根据该目标数据进行更新。本发明实施例提供的灰度发布系统能够限定适用范围,根据使用方提供对应的目标数据,接口客户端组件向使用方(网站、app或其它接口)提供接口调用服务,使用方可以像使用本地组件一样,使用接口客户端组件,无需考虑接口服务器选择、接口数据标准、传输协议、安全机制等问题,方便快捷。

附图说明

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

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

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

图4是本发明另一实施例提供的一种灰度发布系统的具体结构示意图;

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

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示出了本发明实施例提供的一种灰度发布系统,包括若干接口客户端组件101和若干接口服务器102;

接口客户端组件101,包括服务调用接口,用于通过所述服务调用接口接收使用方发送的服务调用指令,确定所述服务调用指令指向的接口服务器102,根据所述服务调用指令中包含的目标数据类型生成数据调用指令,将所述数据调用指令发送给所述服务调用指令指向的接口服务器102。在具体应用中,接口客户端组件101向使用方提供接口调用服务,使用方可以像使用本地组件一样,使用接口客户端组件,无需考虑接口服务器选择、接口数据标准、传输协议、安全机制等问题。具体地,在灰度发布过程中,设置若干使用方为目标使用方,即该目标使用法能够在接入接口服务器后获取接口服务器中的版本内容并进行更新。

服务调用指令指向的接口服务器102,用于根据所述数据调用指令中的目标数据类型,从预置数据库中获取所述目标数据类型对应的目标数据,并将所述目标数据发送给接口客户端组件101。在具体应用中,接口服务器向接口客户端组件提供业务服务,并包含数据访问层功能,承载主要业务逻辑,是处理业务逻辑的核心模块。在本实施例中提供的数据访问层可以基于.net的linq,也可以基于java,此处不做限制。在实际应用中,如现有的基础楼盘接口可提供全国范围住宅的楼盘、楼栋、房号的基本信息查询,前端接口通过基础楼盘接口客户端向接口服务器发送查询请求,接口服务器的业务逻辑层解析客户请求,并通过数据访问层查询基础楼盘数据,业务逻辑层获取数据后根据客户要求整合、格式化数据后返回给接口客户端,供前端接口返回给客户端。

接口客户端组件101,还用于通过所述服务调用接口将所述目标数据发送给所述目标使用方,以使所述目标使用方根据所述目标数据进行更新。

进一步地,如图2所示,一种灰度发布系统,还包括配置服务器103;

配置服务器103,用于当检测到所述目标使用方发送给接口客户端组件101的服务调用指令后,获取所述目标使用方的身份识别信息,从预置的接口服务器对应列表中查找所述身份识别信息对应的接口服务器信息,并将所述接口服务器信息发送给接口客户端组件101,所述接口服务器对应列表中包含身份识别信息和接口服务器的对应关系。具体地,配置服务器103负责接口客户端组件的身份验证、接口客户端组件的可用接口服务器对应列表查询维护以及其它系统配置的变更推送等功能,是本实施例提供的灰度发布系统控制的核心模块。

则接口客户端组件101具体用于:接收所述接口服务器信息,根据所述服务调用指令中包含的目标数据类型生成数据调用指令,将所述数据调用指令发送给所述接口服务器信息所对应的接口服务器102。

进一步地,如图3所示,一种灰度发布系统,还包括发布管理平台104;

发布管理平台104,用于接收包含身份识别信息和接口服务器的配置指令,并将所述配置指令发送给配置服务器103;还用于接收接口服务器的启动指令/停止指令,并将所述启动指令/停止指令发送给接口服务器102。具体地,发布管理后台104是本发明实施例提供的整个灰度发布系统的人机接口。管理员通过此后台进行启停各接口服务器,配置产品、客户的接口服务器版本策略等操作。

配置服务器103,还用于根据所述配置指令对所述接口服务器对应列表进行更新,所述更新包括新增、删除或变更接口服务器与身份识别信息的对应关系;

接口服务器102,还用于在接收到所述启动指令/停止指令,进行启动或停止。

下面结合图4对本发明实施例进行进一步地阐述:

图4中,本发明实施例提供的灰度发布系统包括接口客户端组件101(interfaceclient)、接口服务器102(interfaceserver)、配置服务器103(configserver)和发布管理后台104(back-end);

本发明实施例的工作机制包括:

a)灰度发布机制

·接口服务器可以同时运行多个版本。

接口服务器上运行的版本可以根据稳定性、客户、产品等因素部署。

·接口客户端可以根据配置连接所需的接口服务器。

一个目标使用方只需调用一个接口客户端,同一个接口客户端可以连接多个不同版本的接口服务器。

例如:开发团队发布了接口服务器新版本isv2.0beta,设置产品p1的客户c1、c2连接的测试版本的接口服务器为isv2.0beta,其他客户仍然连接稳定版本的服务器isv1.8。由此,通过发布不同版本的接口服务端,并配置接口客户端组件所连接的接口服务器,可以控制新版本的影响范围,可以待接口运行一段时间确认稳定后,再将其他客户切换至新版本。这样进行发布即可以保持接口持续升级,又不会因为潜在的风险影响大部分客户的使用,最终达到灰度发布的目的,还可以将稳定性这个因素扩大到产品、客户、客户分类、地域等其它因素,以满足不断增长的业务复杂度对核心接口的要求。

b)可靠性机制

·同一版本的接口服务器可部署多个,可以在同一个物理服务器的部署多个、也可以部署在多个物理服务器或多个数据中心。

接口客户端组件提供的接口服务采用的是基于服务器/客户端(c/s)的基础架构,当某个接口服务器故障或服务能力不足时可主动或被动的切换至新的接口服务器服务器。(一)主动切换接口服务器能力是基于预设的接口服务器对应列表,此列表在接口客户端通过配置服务器进行身份验证后取得。切换策略包含服务器故障、服务器压力以及其它扩展策略。(二)被动切换是来自于配置服务器的指令。特别是发生机房、云服务运营商、网络运营商级别的问题时,可以通知接口客户端快速切换至新的接口服务器。

·避免传统发布方式的服务中断问题,接口服务可无缝升级,提高有效服务时间。

c)数据传输机制

接口客户端组件和接口服务器通过谷歌远程过程调用协议(grpc)进行数据交互,即发送调用请求,该grpc基于http/2协议。

接口客户端组件和接口服务器之调用过程采用的数据格式是protobuffer。

接口客户端和接口服务器的基础架构采用grpc,接口客户端和接口服务器是单工通信模式,接口客户端和配置服务器是双工通信模式。

图5示出了本发明实施例提供的一种灰度发布方法,包括:

s501,当接口客户端组件通过服务调用接口接收到目标使用方发送的服务调用指令时,确定所述服务调用指令中指向的接口服务器,根据所述服务调用指令中的目标数据类型生成数据调用指令,并将所述服务调用指令发送给指向的接口服务器;

s502,所述接口服务器根据所述数据调用指令中的目标数据类型,从预置数据库中获取所述目标数据类型对应的目标数据,并将所述目标数据发送给所述接口客户端组件,以通过所述接口客户端组件将所述目标数据发送给所述目标使用方,以使所述目标使用方根据所述目标数据进行更新。

进一步地,所述当接口客户端组件通过服务调用接口接收到目标使用方发送的服务调用指令时,确定所述服务调用指令中指向的接口服务器包括:

当接口客户端组件通过服务调用接口接收到目标使用方发送的服务调用指令时,配置服务器获取所述目标使用方的身份识别信息,从预置的接口服务器对应列表中查找所述身份识别信息对应的接口服务器信息,并将所述接口服务器信息发送给所述接口客户端组件;

所述接口客户端组件根据所述服务调用指令中包含的目标数据类型生成数据调用指令,将所述数据调用指令发送给所述接口服务器信息包含的接口服务器。

进一步地,所述灰度发布方法还包括:

发布管理平台接收包含身份识别信息和接口服务器的配置指令,并将所述配置指令发送给所述配置服务器;

配置服务器根据所述配置指令对所述接口服务器对应列表进行更新,所述更新包括新增、删除或变更接口服务器与身份识别信息的对应关系。

进一步地,所述将所述目标数据发送给所述接口客户端组件,以通过所述接口客户端组件将所述目标数据发送给所述目标使用方,以使所述目标使用方根据所述目标数据进行更新之后,还包括:

当检测到所述接口服务器不满足数据传输的条件时,所述配置服务器根据预置切换策略,向目标切换接口服务器发送切换指令,所述切换指令用以控制当前发送所述目标数据的接口服务器停止发送所述目标数据,并切换至所述目标切换接口服务器进行所述目标数据续传,所述预置切换策略包括查找并激活与当前发送所述目标数据的接口服务器相同权限的目标切换接口服务器。在步骤中,不满足数据传输的条件包括接口服务器传输能力不足、接口服务器出现故障等。

进一步地,所述将所述目标数据发送给所述接口客户端组件,以通过所述接口客户端组件将所述目标数据发送给所述目标使用方,以使所述目标使用方根据所述目标数据进行更新之后,还包括:

若检测到不满足数据传输的条件时,当前发送所述目标数据的接口服务器在预先获取的接口服务器对应列表中,查找所述身份识别信息对应的其他接口服务器,向查找到的接口服务器发送数据传输切换指令,所述数据传输切换指令包括所述目标数据的传输情况,并指示所述查找的接口服务器根据所述目标数据的传输情况进行续传。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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