一种灰度发布的处理方法及系统技术方案

技术编号:8685623 阅读:339 留言:0更新日期:2013-05-09 05:13
本申请提供了一种灰度发布的处理方法及系统,以解决目前的处理方法工作量大、发布风险高的问题。所述方法包括:将应用的稳定代码和灰度代码分别发布到不同服务器上,并加载该应用的灰度配置信息;接收请求,并从请求的参数信息中提取用于灰度判断的灰度数据;根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布;若参与,则将该请求分配到灰度代码所在的服务器处理;若不参与,则将该请求分配到稳定代码所在的服务器处理。本申请大大减少了工作量,提高了工作效率。而且,灰度代码的修改不会影响原有的稳定代码,保护了稳定代码不被灰度功能干扰,降低了发布风险。

【技术实现步骤摘要】

本申请涉及网络技术,特别是涉及一种灰度发布的处理方法,以及,一种灰度发布的处理系统。
技术介绍
灰度发布是平滑过渡的一种发布方式。例如,AB test就是一种灰度发布方式,可以让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大B的发布范围,最终把所有用户都迁移到B上来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。对于互联网产品,有一个特点就是不停的升级、升级、再升级。系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统宕机的风险。为了避免这些风险,很多产品都采用了灰度发布的策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况时,很容易回退,避免造成大范围的影响。具体来说,当增加新功能或采用改进技术的互联网产品上线发布前,如果新的发布影响面较大时,会考虑先切分部分用户流量进来,让这部分用户先体验新的互联网产品,开发人员可以根据这部分用户产生的数据对新的互联网产品进行不断优化,最终正式上线发布,然后再让所有用户使用。这种灰度发布方法降低了发布新功能的风险,实现了平滑的发布。为了实现灰度发布,现有的处理方法是:对原有的功能代码进行修改,在原有代码中增加实现新功能或新技术的灰度代码,同时还保留原有代码中对旧功能或旧技术的处理代码,然后全量发布修改后的功能代码来替代原有代码。这套修改后的功能代码可以让部分用户流量切入进来使用灰度代码体验新功能或新技术,其余用户仍使用原有代码。在此过程中,随着新功能或新技术的不断完善,还会继续修改这套功能代码,直到正式上线。上述方法虽然实现了灰度发布,但是在整个灰度发布过程中,每当灰度代码有完善时就需要修改整个功能代码,每次修改之后还要进行全量发布,工作量大,耗费时间,还需要技术人员非常了解原有的功能代码。对于系统中的多个项目应用,每个项目应用的改变都需要修改该项目的原有代码,更加花费时间,可能导致项目上线延期。而且,多次修改原有的功能代码无形中对原有代码的稳定性产生了冲击,提高了发布的风险。
技术实现思路
本申请的目的在于,提供了一种灰度发布的处理方法及系统,以解决目前的处理方法工作量大、发布风险高的问题。为了解决上述问题,本申请公开了一种灰度发布的处理方法,包括:将应用的稳定代码和灰度代码分别发布到不同服务器上,并加载该应用的灰度配置信息;接收请求,并从请求的参数信息中提取用于灰度判断的灰度数据;根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布;若参与,则将该请求分配到灰度代码所在的服务器处理;若不参与,则将该请求分配到稳定代码所在的服务器处理。优选的,所述方法还包括:若修改该应用的灰度代码,则重新将修改后的灰度代码发布到对应的服务器上;和/或,若修改该应用的灰度配置信息,则重新加载修改后的灰度配置信息。优选的,所述灰度数据包含请求的网页链接地址信息,和/或请求的IP地址信息,和/或请求的Cookie信息。优选的,根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布,包括:判断灰度数据中请求的网页链接地址信息是否与灰度配置信息中设定的网页链接地址信息相匹配,若匹配,则确定该请求参与灰度发布;否则,确定该请求不参与灰度发布。优选的,根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布,包括:判断灰度数据中请求的IP地址信息是否在灰度配置信息设定的IP地址范围内,若是,则确定该请求参与灰度发布;否则,确定该请求不参与灰度发布。优选的,根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布,包括:判断灰度数据中请求的Cookie信息是否为当前有效Cookie,若是,则确定该请求参与灰度发布;否则,确定该请求不参与灰度发布。优选的,根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布,包括:判断灰度数据中请求的Cookie信息是否为当前有效Cookie,若是,则确定该请求参与灰度发布;否则,从所述请求的Cookie信息中提取用户标识信息,并查看缓存中对应该应用的灰度用户名单中是否包含该用户标识信息,若包含,则确定该请求参与灰度发布,若不包含,则确定该请求不参与灰度发布。优选的,所述确定该请求是否参与灰度发布之后,还包括:若确定该请求参与灰度发布,则将该请求的Cookie值标记为灰度Cookie ;根据该请求的Cookie值分配请求。本申请还提供了一种灰度发布的处理系统,包括:第一应用服务器,用于发布应用的稳定代码;第二应用服务器,用于发布应用的灰度代码;分流服务器,具体包括:配置加载模块,用于加载该应用的灰度配置信息;请求处理模块,用于接收请求,并从请求的参数信息中提取用于灰度判断的灰度数据;灰度判断模块,用于根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布;请求分流模块,用于当该请求参与灰度发布时,将该请求分配到灰度代码所在的第二服务器处理;当该请求不参与灰度发布时,将该请求分配到稳定代码所在的第一服务器处理。优选的,所述灰度数据包含请求的网页链接地址信息,和/或请求的IP地址信息,和/或请求的Cookie信息。优选的,所述分流服务器还包括:灰度标记模块,用于当灰度判断模块确定该请求参与灰度发布时,将该请求的Cookie值标记为灰度Cookie ;所述请求分流模块根据该请求的Cookie值分配请求。优选的,所述系统还包括:缓存服务器,用于缓存应用的灰度用户名单;灰度判断模块当判断灰度数据中请求的Cookie信息不是当前有效Cookie时,从所述请求的Cookie信息中提取用户标识信息,并查看所述缓存服务器中对应该应用的灰度用户名单中是否包含该用户标识信息,若包含,则确定该请求参与灰度发布,若不包含,则确定该请求不参与灰度发布。与现有技术相比,本申请包括以下优点:首先,本申请将应用的稳定代码和灰度代码分别发布到不同服务器上,并通过配置的方式判断请求,将参与灰度发布的请求分配到灰度代码所在的服务器处理,并将不参与灰度发布的请求分配到稳定代码所在的服务器处理。这种配置的方式提供了一种通用方案,无论哪个项目应用发布灰度功能,只需将实现灰度功能的灰度代码和原有的稳定代码分开,并进行灰度配置,就可以自动根据配置将请求分配到不同的服务器上处理,无需再对每个应用的稳定代码进行大量修改,省去了项目中为了灰度发布额外增加的资源投入,大大减少了工作量,提高了工作效率。而且,灰度代码的修改不会影响原有的稳定代码,保护了稳定代码不被灰度功能干扰,降低了发布风险。其次,本申请根据接收到的请求,直接利用请求中的参数信息进行灰度判断,无需额外获取数据进行判断,实现简单,易于推广。当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。附图说明图1是本申请实施例所述一种灰度发布的处理方法流程图;图2是本申请实施例所述一种灰度发布的处理系统结构图;图3是本申请另一实施例所述的灰度发布处理系统图;图4是图3所示系统的功能处理示意图;图5是图3所示系统中分流服务器的处理流程图。具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实本文档来自技高网
...

【技术保护点】
一种灰度发布的处理方法,其特征在于,包括:将应用的稳定代码和灰度代码分别发布到不同服务器上,并加载该应用的灰度配置信息;接收请求,并从请求的参数信息中提取用于灰度判断的灰度数据;根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布;若参与,则将该请求分配到灰度代码所在的服务器处理;若不参与,则将该请求分配到稳定代码所在的服务器处理。

【技术特征摘要】
1.一种灰度发布的处理方法,其特征在于,包括: 将应用的稳定代码和灰度代码分别发布到不同服务器上,并加载该应用的灰度配置信息; 接收请求,并从请求的参数信息中提取用于灰度判断的灰度数据; 根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布; 若参与,则将该请求分配到灰度代码所在的服务器处理; 若不参与,则将该请求分配到稳定代码所在的服务器处理。2.根据权利要求1所述的方法,其特征在于,还包括: 若修改该应用的灰度代码,则重新将修改后的灰度代码发布到对应的服务器上; 和/或,若修改该应用的灰度配置信息,则重新加载修改后的灰度配置信息。3.根据权利要求1所述的方法,其特征在于: 所述灰度数据包含请求的网页链接地址信息,和/或请求的IP地址信息,和/或请求的Cookie信息。4.根据权利要求3所述的方 法,其特征在于,根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布,包括: 判断灰度数据中请求的网页链接地址信息是否与灰度配置信息中设定的网页链接地址信息相匹配,若匹配,则确定该请求参与灰度发布;否则,确定该请求不参与灰度发布。5.根据权利要求3所述的方法,其特征在于,根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布,包括: 判断灰度数据中请求的IP地址信息是否在灰度配置信息设定的IP地址范围内,若是,则确定该请求参与灰度发布;否则,确定该请求不参与灰度发布。6.根据权利要求3所述的方法,其特征在于,根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布,包括: 判断灰度数据中请求的Cookie信息是否为当前有效Cookie,若是,则确定该请求参与灰度发布;否则,确定该请求不参与灰度发布。7.根据权利要求3所述的方法,其特征在于,根据所述灰度配置信息对所述灰度数据进行判断,确定该请求是否参与灰度发布,包括: 判断灰度数据中请求的Cookie信息是否为当前有效Cookie,若是,则确定该请求参...

【专利技术属性】
技术研发人员:罗俊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1