用于支持灰度发布的方法、访问方法以及装置和系统的制作方法

文档序号:9372067阅读:377来源:国知局
用于支持灰度发布的方法、访问方法以及装置和系统的制作方法
【技术领域】
[0001 ] 本申请涉及灰度发布技术,具体涉及一种用于支持灰度发布的方法和装置。本申请同时提供一种用于支持灰度发布的访问方法和装置,以及一种用于支持灰度发布的系统。
【背景技术】
[0002]在产品新版本的开发过程中,随着开发阶段的推进,通常会对新版本进行模块功能测试、系统功能测试、用户体验测试等,这些测试一般都是局限于开发人员或者极少数用户的小范围测试,如果仅完成这些测试就将新版本直接推向市场,那么这种跳跃式的发布是相对危险的,如果新版本出现严重错误(bug),所有用户都会感受到,不仅会严重影响用户体验,而且由于收到用户的大量投诉,对新版本的管理者或者开发者都会造成巨大压力。
[0003]对于互联网产品来说,由于使用者通常都比较多,如果采用上述发布方式风险就更大,在这种情况下出现了灰度发布(也叫灰度放量)的概念。所谓灰度发布,是互联网应用中的一种发布方式,只把新版本给一小部分用户使用,然后监控这一小部分用户的使用状态,如果新版本出现严重bug,那么将仅限于这一小部分用户会感受到这个bug,如果新版本运行良好,则可以逐步扩大使用群体的范围。由此可见,灰度发布是一种能够平滑过渡的渐进式的发布方式,一方面可以保证整体系统的稳定,另一方面可以在发布的早期(初始灰度阶段,用户比较少的阶段),及时根据用户的意见反馈改进产品质量,可以有效降低新版本所影响的用户范围。
[0004]传统的灰度发布使用HTTP重定向技术(redirect)进行灰度发布时的分流,其基本原理是这样的:每个用户的浏览器在首次访问跳转服务器时,服务器会在客户端存放包含用户ID的Cookie (也称为Cookie被种上用户ID),此后浏览器再访问跳转服务器时就会携带该Cookie信息,而跳转服务器接收到浏览器的请求后,对Cookie信息中包含的用户ID进行Hash取余,并将余数符合某些规则的用户请求重定向到灰度服务器(提供新版本服务的服务器),而其他用户请求则会被重定向到普通服务器,从而实现灰度发布功能。
[0005]传统的灰度发布技术适用于互联网应用,由于客户端是相对稳定的浏览器,不需要经常升级,所以灰度发布只要考虑服务端即可。但是对于无线App来说,一般情况下客户端App和服务端都要升级,如果仍然采用传统的灰度发布方式,则存在以下缺陷:
[0006]一方面,由于传统灰度发布采用根据用户ID进行Hash取余的方法进行用户请求的分流,而用户ID与客户端App的版本没有任何关系,因此无法保证新版本App访问新版本服务器、而旧版本App访问旧版本服务器,而且当新版本服务出现问题时,新版本App无法回退到旧版本,不仅影响灰度发布的正常进行,同时也影响用户的使用体验。
[0007]另一方面,由于传统灰度发布是基于重定向技术的,服务端的返回结果分布在各个服务器上,因此无法有效地对返回结果进行监控和管理。

【发明内容】

[0008]本申请提供一种用于支持灰度发布的方法和装置,以解决现有的灰度发布方法无法根据版本信息对客户端访问请求进行分流的问题。本申请另外提供一种用于支持灰度发布的访问方法和装置,以及一种用于支持灰度发布的系统。
[0009]本申请提供一种用于支持灰度发布的方法,包括:
[0010]接收来自客户端的至少包含版本信息的访问请求;
[0011]根据所述访问请求中包含的版本信息,将所述访问请求发送给与所述版本信息对应的目标服务器;
[0012]将所述目标服务器针对所述访问请求返回的结果发送给所述客户端。
[0013]可选的,所述根据所述访问请求中包含的版本信息,将所述访问请求发送给与所述版本信息对应的目标服务器包括:
[0014]提取所述访问请求包含的版本信息;
[0015]获取包含版本信息和目标服务器对应关系的配置信息;
[0016]根据所述配置信息,将所述访问请求发送给与所述版本信息对应的目标服务器。
[0017]可选的,所述获取包含版本和目标服务器对应关系的配置信息,包括:
[0018]向提供所述配置信息的服务器发送获取配置信息的请求;
[0019]接收上述服务器返回的配置信息。
[0020]可选的,在执行所述接收来自客户端的至少包含版本信息的访问请求的步骤前,执行下述步骤:
[0021]接收来自所述客户端的获取客户端可用服务版本列表信息的请求;
[0022]获取所述客户端可用的服务版本列表信息;
[0023]将所述客户端可用的服务版本列表信息发送给所述客户端。
[0024]可选的,所述获取所述客户端可用的服务版本列表信息,包括:
[0025]向提供系统可用服务版本列表信息的服务器发送获取所述客户端可用的服务版本列表信息的请求;
[0026]接收上述服务器返回的客户端可用服务版本列表信息。
[0027]可选的,所述获取所述客户端可用的服务版本列表信息,包括:
[0028]从所述获取客户端可用服务版本列表信息的请求中提取用户标识和所述客户端支持的版本信息;
[0029]选择在系统可用服务版本列表信息中包含的、并且所述客户端也支持的服务版本,生成候选服务版本列表信息;
[0030]判断所述候选服务版本列表信息中是否包含新版本信息;
[0031]若包含新版本信息,判断所述用户标识是否在访问新版本服务的客户端列表中;若是,将所述候选服务版本列表信息作为所述客户端可用的服务版本列表信息;若否,则根据访问新版本服务的客户端规模调整所述候选服务版本列表信息,使得访问新版本服务的客户端规模满足预先设定的要求,并且将调整后的候选服务版本列表信息作为所述客户端可用的服务版本列表信息。
[0032]若不包含新版本信息,则将所述候选服务版本列表信息作为所述客户端可用的服务版本列表信息。
[0033]可选的,所述根据访问新版本服务的客户端规模调整所述候选服务版本列表信息,包括:
[0034]判断访问新版本服务的客户端数量或者比例是否大于或者等于预先指定的数值;
[0035]若是,则从所述候选服务版本列表信息中剔除新版本服务的版本信息,并且将所述用户标识添加到访问旧版本服务的客户端列表中;
[0036]若否,将所述用户标识添加到访问新版本服务的客户端列表中,并更新访问新版本服务的客户端的数量或者比例。
[0037]可选的,在所述将所述客户端可用的服务版本列表信息发送给所述客户端的步骤之后,执行下述步骤:
[0038]监测系统可用服务版本列表信息是否发生变更;
[0039]若发生变更,向所述客户端推送系统可用服务版本列表变更消息。
[0040]可选的,所述监测所述系统可用服务版本列表信息是否变更,采用如下方式实现:
[0041]定期向提供系统可用服务版本列表信息的服务器发送获取所述系统可用服务版本列表的请求,并对接收到的系统可用服务版本列表信息和前次获取的系统可用服务版本列表信息进行比较,判断所述信息是否发生了变更;或者,
[0042]接收提供系统可用服务版本列表信息的服务器推送的变更通知。
[0043]可选的,所述方法还包括:
[0044]监控所述目标服务器返回结果的相关信息。
[0045]可选的,所述监控所述目标服务器返回结果的相关信息,包括:
[0046]将所述目标服务器返回结果的相关信息上报给负责监控的服务器。
[0047]可选的,所述方法还包括:
[0048]将所述访问请求发送给与所述版本信息对应的目标服务器不同的其他目标服务器;
[0049]将与所述版本信息对应的目标服务器返回的结果和所述其他目标服务器返回的结果进行比较和统计。
[0050]可选的,所述根据所述访问请求中包含的版本信息,将所述访问请求发送给与所述版本信息对应的目标服务器,包括:
[0051]判断所述访问请求中包含的版本信息是否为旧版本;
[0052]若是,将所述访问请求发送给与所述旧版本对应的目标服务器;
[0053]若否,按照预先设定的策略将所述访问请求发送给对应的目标服务器,使得访问新、旧版本服务的新版本客户端的数量或者比例达到预先指定的数值。
[0054]相应的,本申请还提供一种用于支持灰度发布的装置,包括:
[0055]访问请求接收单元,用于接收来自客户端的至少包含版本信息的访问请求;
[0056]访问请求转发单元,用于根据所述访问请求中包含的版本信息,将所述访问请求发送给与所述版本信息对应的目标服务器;
[0057]处理结果发送单元,用于将所述目标服务器针对所述访问请求返回的结果发送给所述客户端。
[0058]此外,本申请还提供一种用于支持灰度发布的访问方法,包括:
[0059]向服务端发送包含版本信息的访问请求;
[0060]接收所述服务端返回的针对所述访问请求的处理结果。
[0061]可选的,执行所述向服务端发送包含版本信息的访问请求的步骤之前,执行下述步骤:
[0062]获取客户端可用服务版本列表信息;
[0063]根据所述客户端可用服务版本列表信息包含的可用版本,执行与所述可用版本对应的初始化操作。
[0064]可选的,所述获取客户端可用服务版本列表信息,包括:
[0065]向所述服务端发送获取客户端可用服务版本列表信息的请求,并且在所述请求中包含能够唯一标识客户端的用户标识信息和所述客户端支持的版本信息;
[0066]接收所述服务端返回的客户端可用服务版本列表信息。
[0067]可选的,如果在预先指定的时间内没有接收到所述服务端返回的客户端可用服务版本列表信息,则采用上一次使用的服务版本作为可用版本。
[0068]可选的,所述根据所述客户端可用服务版本列表信息包含的可用版本,执行与所述可用版本对应的初始化操作,具体是指,
[0069]从所述客户端可用服务版本列表信息包含的可用版本中,选择一个最新的版本,并执行与所述最新的版本对应的初始化操作。
[0070]可选的,在所述根据所述客户端可用服务版本列表信息包含的可用版本,执行与所述可用版本对应的初始化操作之后,执行下述步骤:
[0071]接收来自所述服务端的系统可用服务版本列表变更消息;
[0072]判
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1