一种渐进式灰度发布方法及装置
文献发布时间:2023-06-19 11:32:36
技术领域
本发明涉及计算机技术领域,具体涉及一种渐进式灰度发布方法及装置。
背景技术
随着互联网技术的飞速发展,各式各样的互联网应用产品层出不穷。为了控制潜在的运行风险,提升客户的体验,在应用产品的新版本发布时往往采取灰度发布的方法,让大部分客户继续使用旧版本的应用产品,少部分客户体验新版本的应用产品,如果客户对新版本的应用产品反馈良好,再继续扩大新版本的应用产品的使用范围。
现有技术中,在进行应用产品的灰度发布时,需要人为设定一个灰度发布策略,之后通过人工或自动化的方式执行灰度发布策略。通过灰度发布策略实现应用产品的灰度发布会存在如下问题:(1)灰度发布策略的核心是确定灰度比率,灰度比率的确定具有主观性,选取的灰度比例都是基于以往的经验,可能存在灰度试点范围过大增加投产风险,或灰度试点范围过小影响灰度效果的问题。(2)通过一到两次灰度试点就将新版本进行全面推广,使得灰度机制不能很好地发挥作用。而如果选择多次灰度试点,又会极大的增加了工作量,不利于灰度策略的手动执行。(3)在进行灰度划分时,以客户为划分标准,让一部分客户体验新的版本。由于客户的行为是主观的,如果在灰度发布期内客户未发起交易请求,则不能保证灰度版本程序获得足量的有效调用,导致需要延长灰度试点时间,影响新产品的推广,同时浪费了服务器资源。
发明内容
针对现有技术中的问题,本发明实施例提供一种渐进式灰度发布方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出渐进式灰度发布方法,包括:
基于灰度发布规则向第一台灰度服务器发送交易请求,以对所述第一台灰度服务器进行灰度发布测试;其中,所述灰度发布规则是预设的;
若判断获知所述第一台灰度服务器通过灰度发布测试,则触发对服务器集群中一台服务器的灰度版本部署,以使得所述一台服务器成为下一台灰度服务器;
基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试,直到所述服务器集群中预设数量台服务器通过灰度发布测试。
另一方面,本发明提供一种渐进式灰度发布装置,包括:
发送模块,用于基于灰度发布规则向第一台灰度服务器发送交易请求,以对所述第一台灰度服务器进行灰度发布测试;其中,所述灰度发布规则是预设的;
触发模块,用于在判断获知所述第一台灰度服务器通过灰度发布测试之后,触发对服务器集群中一台服务器的灰度版本部署,以使得所述一台服务器成为下一台灰度服务器;
测试模块,用于基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试,直到所述服务器集群中预设数量台服务器通过灰度发布测试。
再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述渐进式灰度发布方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述渐进式灰度发布方法的步骤。
本发明实施例提供的渐进式灰度发布方法及装置,能够基于灰度发布规则向第一台灰度服务器发送交易请求,以对第一台灰度服务器进行灰度发布测试,在判断获知第一台灰度服务器通过灰度发布测试之后,触发对服务器集群中一台服务器的灰度版本部署,以使得一台服务器成为下一台灰度服务器,基于灰度发布规则对下一台灰度服务器进行灰度发布测试,直到服务器集群中预设数量台服务器通过灰度发布测试,渐进式地进行灰度发布,能够充分对应用产品的灰度版本进行测试,提高了灰度发布的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的渐进式灰度发布方法的流程示意图。
图2是本发明另一实施例提供的渐进式灰度发布方法的流程示意图。
图3是本发明又一实施例提供的渐进式灰度发布方法的流程示意图。
图4是本发明再一实施例提供的渐进式灰度发布方法的流程示意图。
图5是本发明还一实施例提供的渐进式灰度发布方法的流程示意图。
图6是本发明一实施例提供的渐进式灰度发布装置的结构示意图。
图7是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。本发明实施例提供的渐进式灰度发布方法,以交易请求作为灰度划分的标准,通过路由机制将一部分交易请求发送到灰度服务器,另一部分交易请求发送到正常服务器,以确保灰度服务器存在有效调用。灰度版本安装方法采取逐台服务器依次安装。第一台服务器安装灰度版本后,根据灰度发布规则逐步增加首台灰度服务器对交易请求的实时处理量,当实时处理量达到目标值并且通过灰度发布测试之后,开始对第二台服务器安装灰度版本。第二台灰度服务器重复首台灰度服务器的灰度发布测试逻辑,当交易请求的实时处理量达到目标值且通过灰度发布测试之后,为第三台服务器安装灰度版本,以此类推,实现整个服务器集群的渐进式灰度发布。
下面以灰度发布服务器作为执行主体来说明本发明实施例提供的渐进式灰度发布方法的实现过程。可理解的是本发明实施例提供的渐进式灰度发布方法的执行主体包括但不限于灰度发布服务器。
图1是本发明一实施例提供的渐进式灰度发布方法的流程示意图,如图1所示,本发明实施例提供的渐进式灰度发布方法,包括:
S101、基于灰度发布规则向第一台灰度服务器发送交易请求,以对所述第一台灰度服务器进行灰度发布测试;其中,所述灰度发布规则是预设的;
具体地,在进行应用产品的灰度发布时,灰度发布服务器可以基于灰度发布规则向第一台灰度服务器发送交易请求,所述第一台灰度服务器会接收所述灰度发布服务器发送的交易请求,并对交易请求进行处理,以实现灰度发布测试。所述灰度发布服务器可以对所述第一台灰度服务器处理交易请求的情况进行监控。其中,所述灰度发布规则是预设的。所述第一台灰度服务器已安装应用产品的灰度版本。
S102、若判断获知所述第一台灰度服务器通过灰度发布测试,则触发对服务器集群中一台服务器的灰度版本部署,以使得所述一台服务器成为下一台灰度服务器;
具体地,所述灰度发布服务器会根据所述第一台灰度服务器对交易请求的处理情况,判断所述第一台灰度服务器是否通过灰度发布测试,如果所述第一台灰度服务器通过灰度发布测试,说明可以对应用产品的灰度版本进行推广,那么所述灰度发布服务器会触发对服务器集群中一台服务器的灰度版本部署,所述一台服务器在安装完成灰度版本之后成为下一台灰度服务器。如果所述第一台灰度服务器没能通过灰度发布测试,说明应用产品的灰度版本存在问题,需要进行改进。
例如,应用产品的灰度版本的安装包存储在第三方服务器上,所述灰度发布服务器发送灰度版本部署指示给第三方服务器,以使得所述第三方服务器将应用产品的灰度版本的安装包发送到所述一台服务器上。所述一台服务器会接收灰度版本的安装包并安装上述灰度版本,成为下一台灰度服务器。
例如,应用产品的灰度版本的安装包也可以存储在所述灰度发布服务器上,所述灰度发布服务器将应用产品的灰度版本的安装包发送到所述一台服务器上,所述一台服务器安装上述灰度版本,成为下一台灰度服务器。
S103、基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试,直到所述服务器集群中预设数量台服务器通过灰度发布测试。
具体地,在所述一台服务器成为下一台灰度服务器之后,所述灰度发布服务器可以基于灰度发布规则向所述下一台灰度服务器发送交易请求,所述下一台灰度服务器会接收所述灰度发布服务器发送的交易请求,并对交易请求进行处理,以实现灰度发布测试。所述灰度发布服务器可以对所述下一台灰度服务器处理交易请求的情况进行监控,并判断所述下一台灰度服务器是否通过灰度发布测试,在下一台灰度服务器通过灰度发布测试之后,继续触发对服务器集群中一台服务器的灰度版本部署,获得下一台灰度服务器,重复基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试的步骤,直到所述服务器集群中通过灰度发布测试的灰度服务器的数量等于预设数量。也就是说,所述灰度发布服务器会逐一地触发服务器集群中一台服务器的灰度版本部署并进行灰度发布测试。其中,每台灰度服务器的灰度发布测试的过程都是类似的。所述预设数量可以等于服务器集群中所有的服务器的数量,也可以等于服务器集群中部分服务器的数量,根据实际需要进行设置,本发明实施例不做限定。
本发明实施例提供的渐进式灰度发布方法,能够基于灰度发布规则向第一台灰度服务器发送交易请求,以对第一台灰度服务器进行灰度发布测试,在判断获知第一台灰度服务器通过灰度发布测试之后,触发对服务器集群中一台服务器的灰度版本部署,以使得一台服务器成为下一台灰度服务器,基于灰度发布规则对下一台灰度服务器进行灰度发布测试,直到服务器集群中预设数量台服务器通过灰度发布测试,通过渐进式地进行灰度发布,能够充分对应用产品的灰度版本进行测试,提高了灰度发布的可靠性。由于无需设置灰度比率,减少灰度发布过程中的人为主观性,避免了灰度试点范围过大导致的投产风险以及恢复试点范围过小导致的测试不全面。无需选定部分客户体验新的版本,够避免现有技术中由于依赖客户的反馈进行灰度发布,在灰度期内由于灰度客户未发起交易请求,不能保证灰度版本程序获得足量的有效调用,导致的需要延长灰度试点时间和影响新产品的推广,同时避免了服务器资源的浪费。
在上述各实施例的基础上,进一步地,所述灰度发布规则包括:
发送第一测试数量个交易请求给测试对象;其中,所述第一测试数量等于初始值;
若判断获知测试时间大于等于所述时间参数且所述测试对象满足第一指标验证规则,则根据步长值更新第一测试数量和重置所述测试时间,并按照发送第一测试数量个交易请求给所述测试对象,直到第一测试数量等于目标值;其中,每次更新后的第一测试数量等于更新前的第一测试数量与所述步长值之和;所述第一指标验证规则是预设的。
具体地,所述灰度发布服务器会发送第一测试数量个交易请求给测试对象,所述测试对象即为灰度服务器。测试对象会接收交易请求并对交易请求进行处理。所述灰度发布服务器会对所述测试对象处理交易请求的情况进行监控。其中,第一测试数量等于初始值。所述初始值是预设的,根据测试需求进行设置,本发明实施例不做限定。
所述测试对象可以将处理第一个交易请求的开始时间以及对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器可以根据当前时间和上述开始时间获得所述测试对象的测试时间,并基于各个交易请求的处理相关信息判断所述测试对象是否满足第一指标验证规则。其中,通过所述当前时间减去上述开始时间获得所述测试时间。所述处理相关信息包括日志信息、服务验证信息、数据库验证信息、批量作业信息等。所述第一指标验证规则是预设的,包括但不限于日志验证、服务验证、数据库验证和批量作业情况验证等,根据实际需要进行设置,本发明实施例不做限定。
日志验证包括但不限于关键字验证和返回结果验证,根据实际需要进行设置,本发明实施例不做限定。关键字验证,即验证日志信息中的关键字是否正确,关键字根据测试需求进行设置,本发明实施例不做限定。返回结果验证,即基于日志信息中的日志返回结果,判断正确率是否达到100%,是否无异常报错。服务验证包括但不限于服务的运行情况验证和服务的响应时间验证,根据实际需要进行设置,本发明实施例不做限定。数据库验证是针对于数据库写表准确性的验证,包括但不限于预期值验证和获取数据验证。预期值验证,即校验预期字段值写入是否正确。取数据验证,即校验必输字段是否不为空。批量作业情况验证包括但不限于DBF批量验证,根据实际需要进行设置,本发明实施例不做限定。DBF批量验证,即验证批量处理结果是否正确。
所述灰度发布服务器将所述测试时间与时间参数进行比较,如果所述测试时间大于等于所述时间参数,并且所述测试对象满足所述第一指标验证规则,那么所述灰度发布服务器会更新第一测试数量并重置测试时间,即计算更新前的第一测试数量与步长值之和,作为更新后的第一测试数量,将测试时间清零。再发送第一测试数量个交易请求给所述测试对象,所述测试对象继续对接收到的交易请求进行处理,所述测试对象可以将处理的更新第一测试数量后的第一个交易请求的开始时间以及对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器重新判断测试时间是否大于等于时间参数以及在更新第一测试数量后所述测试对象是否满足第一指标验证规则,在判断出测试时间大于等于时间参数且所述测试对象满足第一指标验证规则之后,继续更新第一测试数量和重置测试时间,重复上述发送第一测试数量个交易请求给测试对象,并判断测试时间是否大于等于时间参数以及在更新第一测试数量后所述测试对象是否满足第一指标验证规则的过程,直到第一测试数量等于目标值。即所述灰度发布服务器在对所述测试对象进行灰度发布测试的过程中,会基于步长值逐步增加测试对象的交易请求处理量,渐进式地对单台灰度服务器进行灰度发布测试。其中,所述时间参数、所述步长值和所述目标值是预设的,根据测试需求进行设置,本发明实施例不做限定。可理解的是,如果在测试时间大于等于时间参数之后,所述测试对象不满足第一指标验证规则,可以终止对所述测试对象的灰度发布测试,并提示灰度发布测试失败。
时间参数是人为设定的前次灰度扩大到下次灰度扩大的时间间隔,时间参数的设置具有如下作用:一是给测试时间的计算以及日志信息、服务信息、批量作业信息等处理相关信息的获取留够时间;二是留足灰度发布内容的试运营时间,用以暴露灰度版本的漏洞和风险;三是避免无时间控制造成灰度扩大速度过快,所带来的风险。
例如,所述第一指标验证规则包括日志验证、服务验证、数据库验证和批量作业情况验证,日志验证包括关键字验证和返回结果验证,服务验证包括服务的运行情况验证和服务的响应时间验证,数据库验证包括预期值验证和获取数据验证,批量作业情况验证包括DBF批量验证。所述测试对象在通过日志验证、服务验证、数据库验证和批量作业情况验证之后,才能满足所述第一指标验证规则。所述测试对象在通过关键字验证和返回结果验证之后,才能通过日志验证。所述测试对象在通过服务的运行情况验证和服务的响应时间验证之后,才能通过服务验证。所述测试对象在通过预期值验证和获取数据验证之后,才能通过数据库验证。所述测试对象在通过DBF批量验证之后,才能通过批量作业情况验证。
在上述各实施例的基础上,进一步地,所述若判断获知所述第一台灰度服务器通过灰度发布测试包括:
若判断获知第一测试数量等于所述目标值,测试时间大于等于所述时间参数且所述第一台灰度服务器满足所述第一指标验证规则,则确定所述第一台灰度服务器通过灰度发布测试。
具体地,第一测试数量等于目标值且之后,所述灰度发布服务器会继续发送所述目标值个交易请求给第一台灰度服务器,所述第一台灰度服务器继续对接收到的交易请求进行处理,所述第一台灰度服务器可以将处理的第一测试数量等于目标值后的第一个交易请求的开始时间以及对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器重新计算测试时间,如果所述灰度发布服务器判断出测试时间大于等于所述时间参数且所述第一台灰度服务器满足所述第一指标验证规则,那么可以确认所述第一台灰度服务器通过所述灰度发布测试。
下面以一个具体的实施例来说明本发明实施例提供的渐进式灰度发布方法的实现过程。
设置初始值为1000,步长值为1000,目标值为20000,时间参数为6小时。
服务器集群中第一台灰度服务器a安装完应用产品A的灰度版本之后,所述灰度发布服务器进行环境验证。环境验证包括但不限于配置中心验证、文件验证、PAAS验证和服务状态验证,根据实际需要进行设置,本发明实施例不做限定。配置中心验证包括但不限于Disconf配置文件内容验证、Apollo配置内容验证、Apollo配置实例个数验证、CMC动态变量验证。文件验证包括但不限于命令验证、配置文件参数验证和容器内脚本验证。PAAS验证包括但不限于部署节点验证。服务状态验证包括但不限于服务提供方验证。服务提供方验证,包括但不限于判断服务器数量是否正确、服务提供方的注册状态是否正常、运行状态是否平稳,服务响应时间是否在预设时间区间内。
在环境验证通过之后,所述灰度发布服务器向第一台灰度服务a器发送1000个交易请求,第一台灰度服务器a对接收到的交易请求进行处理并向所述灰度发布服务器返回处理第一个交易请求的开始时间和处理各个交易请求的处理相关信息。所述灰度发布服务器基于当前时间和上述开始时间,计算测试时间,如果测试时间大于等于6小时,那么继续基于上述处理相关信息判断第一台灰度服务器a是否满足第一指标验证规则,第一指标验证规则包括日志验证、服务验证、数据库验证和批量作业情况验证。如果第一台灰度服务器a通过日志验证、服务验证、数据库验证和批量作业情况验证,那么第一台灰度服务器a满足第一指标验证规则。
在测试时间大于等于6小时且第一台灰度服务器a满足第一指标验证规则之后,所述灰度发布服务器更新第一测试数量为1000+1000=2000,将测试时间置0,向第一台灰度服务器a发送2000个交易请求,第一台灰度服务器a对接收到的交易请求进行处理并向所述灰度发布服务器返回第一测试数量更新后处理第一个交易请求的开始时间和处理各个交易请求的处理相关信息。所述灰度发布服务器基于当前时间和上述开始时间,重新计算测试时间,如果测试时间大于等于6小时,那么继续判断第一台灰度服务器a是否满足第一指标验证规则,第一指标验证规则包括服务验证、数据库验证和批量作业情况验证。如果第一台灰度服务器a通过服务验证、数据库验证和批量作业情况验证,那么第一台灰度服务器a满足第一指标验证规则。
所述灰度发布服务器继续更新第一测试数量,重复上述过程对第一台灰度服务器a进行灰度发布测试,直到更新后的第一测试数量等于20000。所述灰度发布服务器会向第一台灰度服务器a发送20000个交易请求,第一台灰度服务器a对接收到的交易请求进行处理并向所述灰度发布服务器返回第一测试数量等于20000后处理第一个交易请求的开始时间和处理各个交易请求的处理相关信息。所述灰度发布服务器基于当前时间和上述开始时间,重新计算测试时间,如果测试时间大于等于6小时,那么继续判断第一台灰度服务器a是否满足第一指标验证规则。如果第一台灰度服务器a通过服务验证、数据库验证和批量作业情况验证,那么第一台灰度服务器a通过灰度发布测试。
所述灰度发布服务器向第三方服务器发送灰度版本部署指示,所述第三方服务器向服务器集群中的一台服务器b(未部署灰度版本的服务器)发送应用产品A的灰度版本的安装包。服务器b会接收上述安装包,并通过上述安装包安装应用产品A的灰度版本,在安装完成之后,服务器b成为下一台灰度服务器。
所述灰度发布服务器进行环境验证。在环境验证通过之后,所述灰度发布服务器会基于所述灰度发布规则向服务器b发送交易请求,以对服务器b进行灰度发布测试。服务器b的灰度发布测试过程与第一台服务器a的灰度发布测试过程类似,此处不进行赘述。
在服务器b通过灰度发布测试之后,所述灰度发布服务器对服务器集群中一台服务器(未部署灰度版本的服务器),会重复服务器b的灰度版本部署和灰度发布测试流程,直到服务器集群中的所有服务器都通过灰度发布测试。
本发明实施例特别适用于交易请求充足的情况,能够有足够的交易请求对灰度服务器进行灰度发布测试,以便于发现灰度版本的缺陷。
图2是本发明另一实施例提供的渐进式灰度发布方法的流程示意图,如图2所示,本发明实施例提供的渐进式灰度发布方法的实现流程如下:
第一步,发送交易请求。灰度发布服务器向灰度服务器发送第一测试数量个交易请求。灰度服务器对接收到的交易请求进行处理并向所述灰度发布服务器返回处理交易请求的开始时间和处理各个交易请求的处理相关信息。其中,在发送第一测试数量个交易请求之前进行环境验证,环境验证通过之后进行交易请求的发送。预先设置初始值为1000,步长值为1000,目标值为20000,时间参数为6小时。
第二步,判断是否更新第一测试数量。灰度发布服务器基于当前时间和上述开始时间,计算测试时间,如果测试时间大于等于6小时,那么继续基于上述处理相关信息判断灰度服务器是否满足第一指标验证规则,如果灰度服务器满足第一指标验证规则,那么需要进行更新第一测试数量,进入到第三步。如果测试时间小于6小时,那么灰度发布服务器继续向灰度服务器发送交易请求。如果测试时间大于等于6小时,并且判断出灰度服务器不满足第一指标验证规则,那么渐进式灰度发布流程结束。
第三步,更新第一测试数量。灰度发布服务器更新第一测试数量并将测试时间置为0,更新后的第一测试数量等于更新前的第一测试数量与步长值之和。
第四步,判断是否等于目标值。灰度发布服务器判断第一测试数量是否等于目标值,如果第一测试数量等于目标值,那么进入第五步;如果第一测试数量不等于目标值,那么回到第一步,继续对该灰度服务器进行灰度发布测试。
第五步,发送交易请求。灰度发布服务器发送20000个交易请求给灰度服务,灰度服务器对接收到的交易请求进行处理并向所述灰度发布服务器返回处理20000个交易请求的开始时间和处理各个交易请求的处理相关信息。
第六步,判断是否通过灰度发布测试。灰度发布服务器判断第一测试数量是否等于目标值,测试时间是否等于时间参数且灰度服务器是否满足第一指标验证规则,如果第一测试数量等于目标值,测试时间等于时间参数且灰度服务器满足第一指标验证规则,那么确定灰度服务器通过灰度发布测试,重置测试时间为0,然后进入第七步。如果第一测试数量等于目标值,测试时间等于时间参数,但灰度服务器不满足第一指标验证规则,那么渐进式灰度发布流程结束。
第七步,判断是否等于预设数量。灰度发布服务器统计服务器集群中部署灰度版本的服务器的数量N,如果数量N等于预设数量,那么渐进式灰度发布流程结束。如果数量N小于预设数量,那么进入第八步。
第八步,触发灰度版本部署。灰度发布服务器触发对服务器集群中一台服务器的灰度版本部署,以使得上述一台服务器成为下一台灰度服务器,设置第一测试数量等于初始值,然后进入第一步,对下一台灰度服务器进行灰度发布测试。
在上述各实施例的基础上,进一步地,所述灰度发布规则包括:
发送第二测试数量个交易请求给测试对象;其中,所述第二测试数量等于初始值;
若判断获知所述测试对象满足第二指标验证规则,则根据步长值更新第二测试数量,并发送第二测试数量个交易请求给所述测试对象,直到第二测试数量等于目标值;其中,每次更新后的第二测试数量等于更新前的第二测试数量与所述步长值之和;所述第二指标验证规则是预设的。
具体地,所述灰度发布服务器会发送第二测试数量个交易请求给测试对象,所述测试对象即为灰度服务器。测试对象会接收交易请求并对交易请求进行处理。所述灰度发布服务器会对所述测试对象处理交易请求的情况进行监控。其中,第二测试数量等于初始值。所述初始值是预设的,根据测试需求进行设置,本发明实施例不做限定。
所述测试对象可以将对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器可以基于各个交易请求的处理相关信息判断所述测试对象是否满足第二指标验证规则。其中,所述处理相关信息包括日志信息、服务验证信息、数据库验证信息等。所述第二指标验证规则包括但不限于日志验证、服务验证和数据库验证等,根据实际需要进行设置,本发明实施例不做限定。日志验证包括但不限于关键字验证和返回结果验证,根据实际需要进行设置,本发明实施例不做限定。关键字验证,即验证日志信息中的关键字是否正确,关键字根据实际经验进行设置,本发明实施例不做限定。返回结果验证,即基于日志信息中的日志返回结果,判断正确率是否达到100%,是否无异常报错。服务验证包括但不限于检查服务的运行情况和服务的响应时间,根据实际需要进行设置,本发明实施例不做限定。数据库验证是针对于数据库写表准确性的验证,包括但不限于预期值验证和获取数据验证。预期值验证,即校验预期字段值写入是否正确。取数据验证,即校验必输字段是否不为空。
所述灰度发布服务器判断所述测试对象是否满足所述第二指标验证规则,如果所述测试对象满足所述第二指标验证规则,那么所述灰度发布服务器会更新第二测试数量,即计算更新前的第二测试数量与步长值之和,作为更新后的第二测试数量。再发送第二测试数量个交易请求给所述测试对象,所述测试对象继续对接收到的交易请求进行处理,所述测试对象可以将对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器重新判断在更新第二测试数量后所述测试对象是否满足第二指标验证规则,在判断出所述测试对象满足第二指标验证规则之后,继续更新第二测试数量,重复上述发送第二测试数量个交易请求给测试对象,并判断在更新第二测试数量后所述测试对象是否满足第二指标验证规则的过程,直到第二测试数量等于目标值。即所述灰度发布服务器在对所述测试对象进行灰度发布测试的过程中,会基于步长值逐步增加测试对象的交易请求处理量,渐进式地对单台灰度服务器进行灰度发布测试。其中,所述步长值和所述目标值是预设的,根据测试需求进行设置,本发明实施例不做限定。可理解的是,如果所述测试对象不满足第二指标验证规则,可以终止对所述测试对象的灰度发布测试,并提示灰度发布测试失败。
例如,所述第二指标验证规则包括日志验证、服务验证和数据库验证,日志验证包括关键字验证和返回结果验证,服务验证包括服务的运行情况验证和服务的响应时间验证,数据库验证包括预期值验证和获取数据验证。所述测试对象在通过日志验证、服务验证和数据库验证之后,才能满足所述第三指标验证规则。所述测试对象在通过关键字验证和返回结果验证之后,才能通过日志验证。所述测试对象在通过服务的运行情况验证和服务的响应时间验证之后,才能通过服务验证。所述测试对象在通过预期值验证和获取数据验证之后,才能通过数据库验证。
在上述各实施例的基础上,进一步地,所述若判断获知所述第一台灰度服务器通过灰度发布测试包括:
若判断获知所述第二测试数量等于所述目标值,则确定所述第一台灰度服务器通过灰度发布测试。
具体地,所述灰度发布服务器判断第二测试数量是否等于目标值,如果第二测试数量等于目标值,那么可以确认所述第一台灰度服务器通过所述灰度发布测试。
下面再以一个具体的实施例来说明本发明实施例提供的渐进式灰度发布方法的实现过程。
设置初始值为50,步长值为50,目标值为5000。
服务器集群中第一台灰度服务器c安装完应用产品B的灰度版本之后,所述灰度发布服务器进行环境验证。环境验证包括但不限于配置中心验证、文件验证、PAAS验证和服务状态验证,根据实际需要进行设置,本发明实施例不做限定。配置中心验证包括但不限于Disconf配置文件内容验证、Apollo配置内容验证、Apollo配置实例个数验证、CMC动态变量验证。文件验证包括但不限于命令验证、配置文件参数验证和容器内脚本验证。PAAS验证包括但不限于部署节点验证。服务状态验证包括但不限于服务提供方验证。服务提供方验证,包括但不限于判断服务器数量是否正确、服务提供方的注册状态是否正常、运行状态是否平稳,服务响应时间是否在预设时间区间内。
在环境验证通过之后,所述灰度发布服务器向第一台灰度服务c器发送50个交易请求,第一台灰度服务器c对接收到的交易请求进行处理并向所述灰度发布服务器返回处理各个交易请求的处理相关信息。所述灰度发布服务器判断第一台灰度服务器c是否满足第二指标验证规则,第二指标验证规则包括日志验证、服务验证和数据库验证。如果第一台灰度服务器c通过日志验证、服务验证和数据库验证,那么第一台灰度服务器c满足第二指标验证规则。
在第一台灰度服务器c满足第二指标验证规则之后,所述灰度发布服务器更新第二测试数量为50+50=100,然后向第一台灰度服务器c发送100个交易请求,第一台灰度服务器c对接收到的交易请求进行处理并向所述灰度发布服务器返回处理各个交易请求的处理相关信息。所述灰度发布服务器判断第一台灰度服务器c是否满足第二指标验证规则,第二指标验证规则包括日志验证、服务验证和数据库验证。如果第一台灰度服务器c通过日志验证、服务验证和数据库验证,那么第一台灰度服务器c满足第二指标验证规则。
所述灰度发布服务器继续更新第二测试数量,重复上述过程对第一台灰度服务器c进行灰度发布测试,直到更新后的第二测试数量等于5000。
所述灰度发布服务器判断所述第二测试数量是否等于5000,如果所述第二测试数量等于5000,那么所述灰度发布服务器向第三方服务器发送灰度版本部署指示,所述第三方服务器向服务器集群中的一台服务器d(未部署灰度版本的服务器)发送应用产品B的灰度版本的安装包。服务器d会接收上述安装包,并通过上述安装包安装应用产品B的灰度版本,在安装完成之后,服务器d成为下一台灰度服务器。
所述灰度发布服务器进行环境验证。在环境验证通过之后,所述灰度发布服务器会基于所述灰度发布规则向服务器d发送交易请求,以对服务器d进行灰度发布测试。服务器d的灰度发布测试过程与第一台服务器c的灰度发布测试过程类似,此处不进行赘述。
在服务器d通过灰度发布测试之后,所述灰度发布服务器对服务器集群中一台服务器(未部署灰度版本的服务器),会重复服务器d的灰度版本部署和灰度发布测试流程,直到服务器集群中的所有服务器都通过灰度发布测试。
图3是本发明又一实施例提供的渐进式灰度发布方法的流程示意图,如图3所示,本发明实施例提供的渐进式灰度发布方法的实现流程如下:
第一步,发送交易请求。灰度发布服务器向灰度服务器发送第二测试数量个交易请求。灰度服务器对接收到的交易请求进行处理并向所述灰度发布服务器返回处理交易请求的开始时间和处理各个交易请求的处理相关信息。其中,在发送第二测试数量个交易请求之前进行环境验证,环境验证通过之后进行交易请求的发送。预先设置初始值为50,步长值为50,目标值为5000。
第二步,判断是否更新第二测试数量。灰度发布服务器基于上述处理相关信息判断灰度服务器是否满足第二指标验证规则,如果灰度服务器满足第二指标验证规则,那么需要进行更新第二测试数量,进入到第三步。如果判断出灰度服务器不满足第二指标验证规则,那么渐进式灰度发布流程结束。
第三步,更新第二测试数量。灰度发布服务器更新第二测试数量,更新后的第二测试数量等于更新前的第二测试数量与步长值之和。
第四步,判断是否等于目标值。灰度发布服务器判断第二测试数量是否等于目标值,如果第二测试数量等于目标值,说明灰度服务器通过灰度发布测试,那么进入第五步;如果第二测试数量不等于目标值,那么回到第一步,继续对该灰度服务器进行灰度发布测试。
第五步,判断是否等于预设数量。灰度发布服务器统计服务器集群中部署灰度版本的服务器的数量N,如果数量N的等于预设数量,那么渐进式灰度发布流程结束。如果数量N小于预设数量,那么进入第六步。
第六步,触发灰度版本部署。灰度发布服务器触发对服务器集群中一台服务器的灰度版本部署,以使得上述一台服务器成为下一台灰度服务器,设置第二测试数量等于初始值,然后进入第一步,对下一台灰度服务器进行灰度发布测试。
在上述各实施例的基础上,进一步地,所述灰度发布规则包括:
发送第三测试数量个交易请求给测试对象;其中,所述第三测试数量等于初始值;
若判断获知所述测试对象满足第三指标验证规则,则根据步长值更新第三测试数量,并发送第三测试数量个交易请求给所述测试对象,直到第三测试数量等于所述目标值;其中,每次更新后的第三测试数量等于更新前的第三测试数量与所述步长值之和;所述第三指标验证规则是预设的;
发送交易请求给所述测试对象以使得所述测试对象持续运行预设时间。
具体地,所述灰度发布服务器会发送第三测试数量个交易请求给测试对象,所述测试对象即为灰度服务器。测试对象会接收交易请求并对交易请求进行处理。所述灰度发布服务器会对所述测试对象处理交易请求的情况进行监控。其中,第三测试数量等于初始值。所述初始值是预设的,根据测试需求进行设置,本发明实施例不做限定。
所述测试对象可以将对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器可以基于各个交易请求的处理相关信息判断所述测试对象是否满足第三指标验证规则。其中,所述处理相关信息包括日志信息、服务验证信息、数据库验证信息等。所述第三指标验证规则包括但不限于日志验证、服务验证和数据库验证等,根据实际需要进行设置,本发明实施例不做限定。日志验证包括但不限于关键字验证和返回结果验证,根据实际需要进行设置,本发明实施例不做限定。关键字验证,即验证日志信息中的关键字是否正确,关键字根据测试需求进行设置,本发明实施例不做限定。返回结果验证,即基于日志信息中的日志返回结果,判断正确率是否达到100%,是否无异常报错。服务验证包括但不限于检查服务的运行情况和服务的响应时间,根据实际需要进行设置,本发明实施例不做限定。数据库验证是针对于数据库写表准确性的验证,包括但不限于预期值验证和获取数据验证。预期值验证,即校验预期字段值写入是否正确。取数据验证,即校验必输字段是否不为空。
所述灰度发布服务器判断所述测试对象是否满足所述第三指标验证规则,如果所述测试对象满足所述第三指标验证规则,那么所述灰度发布服务器会更新第三测试数量,即计算更新前的第三测试数量与步长值之和,作为更新后的第三测试数量。再发送第三测试数量个交易请求给所述测试对象,所述测试对象继续对接收到的交易请求进行处理,所述测试对象可以将对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器重新判断在更新第三测试数量后所述测试对象是否满足第三指标验证规则,在判断出所述测试对象满足第三指标验证规则之后,继续更新第三测试数量,重复上述发送第三测试数量个交易请求给测试对象,并判断在更新第三测试数量后所述测试对象是否满足第三指标验证规则的过程,直到第三测试数量等于目标值。即所述灰度发布服务器在所述测试对象进行灰度发布测试的过程中,会基于步长值逐步增加测试对象的交易请求处理量,渐进式地对单台灰度服务器进行灰度发布测试。其中,所述步长值和所述目标值是预设的,根据测试需求进行设置,本发明实施例不做限定。可理解的是,如果所述测试对象不满足第三指标验证规则,可以终止对所述测试对象的灰度发布测试,并提示灰度发布测试失败。
在第三测试数量等于目标值之后,所述灰度发布服务器会继续发送交易请求给所述测试对象,使所述测试对象持续运行预设时间。其中,所述预设时间根据实际需要进行设置,例如为24小时,本发明实施例不做限定。
例如,所述第三指标验证规则包括日志验证、服务验证和数据库验证,日志验证包括关键字验证和返回结果验证,服务验证包括服务的运行情况验证和服务的响应时间验证,数据库验证包括预期值验证和获取数据验证。所述测试对象在通过日志验证、服务验证和数据库验证之后,才能满足所述第三指标验证规则。所述测试对象在通过关键字验证和返回结果验证之后,才能通过日志验证。所述测试对象在通过服务的运行情况验证和服务的响应时间验证之后,才能通过服务验证。所述测试对象在通过预期值验证和获取数据验证之后,才能通过数据库验证。
在上述各实施例的基础上,进一步地,所述若判断获知所述第一台灰度服务器通过灰度发布测试包括:
若判断获知所述第三测试数量等于所述目标值且所述测试对象在持续运行所述预设时间内满足所述第四指标验证规则,则确定所述第一台灰度服务器通过灰度发布测试。
具体地,在第三测试数量等于所述目标值之后,所述灰度发布服务器会继续发送交易请求给所述第一台灰度服务器,所述第一台灰度服务器可以将持续运行所述预设时间内对各个交易请求的处理相关信息反馈给所述灰度发布服务器。如果所述灰度发布服务器判断出所述第一台灰度服务器满足所述第四指标验证规则,并且判断出所述第三测试数量等于所述目标值,那么可以确认所述第一台灰度服务器通过所述灰度发布测试。
其中,所述第四指标验证规则是预设的,包括但不限于日志验证、服务验证、数据库验证和批量作业情况验证等,根据实际需要进行设置,本发明实施例不做限定。日志验证包括但不限于关键字验证和返回结果验证,根据实际需要进行设置,本发明实施例不做限定。关键字验证,即验证日志信息中的关键字是否正确,关键字根据测试需求进行设置,本发明实施例不做限定。返回结果验证,即基于日志信息中的日志返回结果,判断正确率是否达到100%,是否无异常报错。服务验证包括但不限于服务的运行情况验证和服务的响应时间验证,根据实际需要进行设置,本发明实施例不做限定。数据库验证是针对于数据库写表准确性的验证,包括但不限于预期值验证和获取数据验证。预期值验证,即校验预期字段值写入是否正确。取数据验证,即校验必输字段是否不为空。批量作业情况验证包括但不限于DBF批量验证,根据实际需要进行设置,本发明实施例不做限定。DBF批量验证,即验证批量处理结果是否正确。
例如,所述第四指标验证规则包括日志验证、服务验证、数据库验证和批量作业情况验证,日志验证包括关键字验证和返回结果验证,服务验证包括服务的运行情况验证和服务的响应时间验证,数据库验证包括预期值验证和获取数据验证,批量作业情况验证包括DBF批量验证。所述测试对象在通过日志验证、服务验证、数据库验证和批量作业情况验证之后,才能满足所述第四指标验证规则。所述测试对象在通过关键字验证和返回结果验证之后,才能通过日志验证。所述测试对象在通过服务的运行情况验证和服务的响应时间验证之后,才能通过服务验证。所述测试对象在通过预期值验证和获取数据验证之后,才能通过数据库验证。所述测试对象在通过DBF批量验证之后,才能通过批量作业情况验证。
下面还以一个具体的实施例来说明本发明实施例提供的渐进式灰度发布方法的实现过程。
设置初始值为50,步长值为50,目标值为5000。
服务器集群中第一台灰度服务器e安装完应用产品C的灰度版本之后,所述灰度发布服务器进行环境验证。环境验证包括但不限于配置中心验证、文件验证、PAAS验证和服务状态验证,根据实际需要进行设置,本发明实施例不做限定。配置中心验证包括但不限于Disconf配置文件内容验证、Apollo配置内容验证、Apollo配置实例个数验证、CMC动态变量验证。文件验证包括但不限于命令验证、配置文件参数验证和容器内脚本验证。PAAS验证包括但不限于部署节点验证。服务状态验证包括但不限于服务提供方验证。服务提供方验证,包括但不限于判断服务器数量是否正确、服务提供方的注册状态是否正常、运行状态是否平稳,服务响应时间是否在预设时间区间内。
在环境验证通过之后,所述灰度发布服务器向第一台灰度服务e器发送50个交易请求,第一台灰度服务器e对接收到的交易请求进行处理并向所述灰度发布服务器返回处理各个交易请求的处理相关信息。所述灰度发布服务器判断第一台灰度服务器e是否满足第三指标验证规则,第三指标验证规则包括日志验证、服务验证和数据库验证。如果第一台灰度服务器e通过日志验证、服务验证和数据库验证,那么第一台灰度服务器e满足第三指标验证规则。
在第一台灰度服务器e满足第三指标验证规则之后,所述灰度发布服务器更新第三测试数量为50+50=100,然后向第一台灰度服务器e发送100个交易请求,第一台灰度服务器e对接收到的交易请求进行处理并向所述灰度发布服务器返回处理各个交易请求的处理相关信息。所述灰度发布服务器判断第一台灰度服务器e是否满足第三指标验证规则,第三指标验证规则包括日志验证、服务验证和数据库验证。如果第一台灰度服务器e通过日志验证、服务验证和数据库验证,那么第一台灰度服务器e满足第三指标验证规则。
所述灰度发布服务器继续更新第三测试数量,重复上述过程对第一台灰度服务器e进行灰度发布测试,直到更新后的第三测试数量等于5000。所述灰度发布服务器会继续向第一台灰度服务器e发送交易请求,维持第一台灰度服务器e持续运行24小时,第一台灰度服务器e对接收到的交易请求进行处理并向所述灰度发布服务器返回第三测试数量等于5000后处理各个交易请求的处理相关信息。所述灰度发布服务器判断第三测试数量是否等于5000且第一台灰度服务器e是否满足第四指标验证规则,第四指标验证规则包括日志验证、服务验证、数据库验证和批量作业情况验证。如果第一台灰度服务器e通过日志验证、服务验证、数据库验证和批量作业情况验证,并且第三测试数量等于5000,那么第一台灰度服务器e通过灰度发布测试。
所述灰度发布服务器向第三方服务器发送灰度版本部署指示,所述第三方服务器向服务器集群中的一台服务器f(未部署灰度版本的服务器)发送应用产品C的灰度版本的安装包。服务器f会接收上述安装包,并通过上述安装包安装应用产品C的灰度版本,在安装完成之后,服务器f成为下一台灰度服务器。
所述灰度发布服务器进行环境验证。在环境验证通过之后,所述灰度发布服务器会基于所述灰度发布规则向服务器f发送交易请求,以对服务器f进行灰度发布测试。服务器f的灰度发布测试过程与第一台服务器e的灰度发布测试过程类似,此处不进行赘述。
在服务器f通过灰度发布测试之后,所述灰度发布服务器对服务器集群中一台服务器(未部署灰度版本的服务器),会重复服务器f的灰度版本部署和灰度发布测试流程,直到服务器集群中的所有服务器都通过灰度发布测试。
图4是本发明再一实施例提供的渐进式灰度发布方法的流程示意图,如图4所示,本发明实施例提供的渐进式灰度发布方法的实现流程如下:
第一步,发送交易请求。灰度发布服务器向灰度服务器发送第三测试数量个交易请求。灰度服务器对接收到的交易请求进行处理并向所述灰度发布服务器返回处理交易请求的开始时间和处理各个交易请求的处理相关信息。其中,在发送第三测试数量个交易请求之前进行环境验证,环境验证通过之后进行交易请求的发送。预先设置初始值为50,步长值为50,目标值为5000,预设时间为24小时。
第二步,判断是否更新第三测试数量。灰度发布服务器基于上述处理相关信息判断灰度服务器是否满足第三指标验证规则,如果灰度服务器满足第三指标验证规则,那么需要进行更新第三测试数量,进入到第三步。如果判断出灰度服务器不满足第三指标验证规则,那么渐进式灰度发布流程结束。
第三步,更新第三测试数量。灰度发布服务器更新第三测试数量,更新后的第三测试数量等于更新前的第三测试数量与步长值之和。
第四步,判断是否等于目标值。灰度发布服务器判断第三测试数量是否等于目标值,如果第三测试数量等于目标值,那么进入第五步;如果第三测试数量不等于目标值,那么回到第一步,继续对该灰度服务器进行灰度发布测试。
第五步,发送交易请求。灰度发布服务器会继续发送交易请求给灰度服务器,使灰度服务器持续运行24小时,灰度服务器对接收到的交易请求进行处理并可以将持续运行24小时内对各个交易请求的处理相关信息反馈给灰度发布服务器。
第六步,判断是否通过灰度发布测试。灰度发布服务器判断第三测试数量是否等于目标值,且基于持续运行24小时内对各个交易请求的处理相关信息判断出灰度服务器是否满足第四指标验证规则,如果第三测试数量等于目标值,且灰度服务器满足第四指标验证规则,那么确定灰度服务器通过灰度发布测试,然后进入第七步。如果第三测试数量等于目标值,但灰度服务器不满足第四指标验证规则,那么渐进式灰度发布流程结束。
第七步,判断是否等于预设数量。灰度发布服务器统计服务器集群中部署灰度版本的服务器的数量N,如果数量N的等于预设数量,那么渐进式灰度发布流程结束。如果数量N小于预设数量,那么进入第八步。
第八步,触发灰度版本部署。灰度发布服务器触发对服务器集群中一台服务器的灰度版本部署,以使得上述一台服务器成为下一台灰度服务器,设置第三测试数量等于初始值,然后进入第一步,对下一台灰度服务器进行灰度发布测试。
在上述各实施例的基础上,进一步地,所述灰度发布规则包括:
发送第四测试数量个交易请求给测试对象;其中,所述第四测试数量等于初始值;
若判断获知所述测试对象满足第五指标验证规则,则根据步长值更新第四测试数量,并发送第四测试数量个交易请求给所述测试对象,直到第四测试数量等于目标值;其中,若判断获知步长统计参数等于设定数量的整数倍,则发送第四测试数量个交易请求给所述测试对象以使得所述测试对象持续运行设定时间,并在判断获知所述测试对象在持续运行所述设定时间内满足第六指标验证规则且所述第四测试数量小于所述目标值之后,根据步长值更新第四测试数量,并发送第四测试数量个交易请求给所述测试对象;
其中,每次更新后的第四测试数量等于更新前的第四测试数量与所述步长值之和;所述第五指标验证规则是预设的;所述步长统计参数在每次更新第四测试数量之后加1;所述设定数量为大于等于2的正整数。
具体地,所述灰度发布服务器会发送第四测试数量个交易请求给测试对象,所述测试对象即为灰度服务器。测试对象会接收交易请求并对交易请求进行处理。所述灰度发布服务器会对所述测试对象处理交易请求的情况进行监控。其中,第四测试数量等于初始值。所述初始值是预设的,根据测试需求进行设置,本发明实施例不做限定。
所述测试对象可以将对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器可以基于各个交易请求的处理相关信息判断所述测试对象是否满足第五指标验证规则。其中,所述处理相关信息包括日志信息、服务验证信息、数据库验证信息等。所述第五指标验证规则包括但不限于日志验证、服务验证和数据库验证等,根据实际需要进行设置,本发明实施例不做限定。日志验证包括但不限于关键字验证和返回结果验证,根据实际需要进行设置,本发明实施例不做限定。关键字验证,即验证日志信息中的关键字是否正确,关键字根据测试需求进行设置,本发明实施例不做限定。返回结果验证,即基于日志信息中的日志返回结果,判断正确率是否达到100%,是否无异常报错。服务验证包括但不限于检查服务的运行情况和服务的响应时间,根据实际需要进行设置,本发明实施例不做限定。数据库验证是针对于数据库写表准确性的验证,包括但不限于预期值验证和获取数据验证。预期值验证,即校验预期字段值写入是否正确。取数据验证,即校验必输字段是否不为空。
所述灰度发布服务器判断所述测试对象是否满足所述第五指标验证规则,如果所述测试对象满足所述第五指标验证规则,那么所述灰度发布服务器会更新第四测试数量并将步长统计参数加1,即计算更新前的第四测试数量与步长值之和,作为更新后的第四测试数量。再发送第四测试数量个交易请求给所述测试对象,所述测试对象继续对接收到的交易请求进行处理,所述测试对象可以将对各个交易请求的处理相关信息反馈给所述灰度发布服务器。所述灰度发布服务器重新判断在更新第四测试数量后所述测试对象是否满足第四指标验证规则,并判断步长统计参数是否等于设定数量的整数倍。
在判断出所述测试对象满足第五指标验证规则且所述步长统计参数不等于所述设定数量的整数倍之后,继续更新第四测试数量并将步长统计参数加1,重复上述发送第四测试数量个交易请求给测试对象,并判断在更新第四测试数量后所述测试对象是否满足第四指标验证规则的过程,直到第四测试数量等于目标值。在判断出所述测试对象满足第五指标验证规则且所述步长统计参数等于所述设定数量的整数倍之后,更新第四测试数量并将步长统计参数加1,发送第四测试数量个交易请求给所述测试对象以使得所述测试对象持续运行设定时间,所述测试对象可以将持续运行所述设定时间内对各个交易请求的处理相关信息反馈给所述灰度发布服务器。如果所述灰度发布服务器判断出所述测试对象满足所述第六指标验证规则且所述第四测试数量小于所述目标值,那么根据步长值更新第四测试数量,并发送第四测试数量个交易请求给所述测试对象。可理解的是,如果所述测试对象不满足第五指标验证规则或者第六指标验证规则,可以终止对所述测试对象的灰度发布测试,并提示灰度发布测试失败。
即所述灰度发布服务器在所述测试对象进行灰度发布测试的过程中,会基于步长值逐步增加测试对象的交易请求处理量,渐进式地对单台灰度服务器进行灰度发布测试。其中,在每次所述步长统计参数等于所述设定数量的整数倍之后,使所述测试对象持续运行设定时间。其中,所述步长值和所述目标值是预设的,根据测试需求进行设置,本发明实施例不做限定。所述第六指标验证规则是预设的;所述步长统计参数在每次更新第四测试数量之后加1,所述步长统计参数的初始值为0。所述设定数量为大于等于2的正整数。所述设定时间根据实际需要进行设置,本发明实施例不做限定。所述第六指标验证规则是预设的,包括但不限于日志验证、服务验证、数据库验证和批量作业情况验证等,根据实际需要进行设置,本发明实施例不做限定。
日志验证包括但不限于关键字验证和返回结果验证,根据实际需要进行设置,本发明实施例不做限定。关键字验证,即验证日志信息中的关键字是否正确,关键字根据测试需求进行设置,本发明实施例不做限定。返回结果验证,即基于日志信息中的日志返回结果,判断正确率是否达到100%,是否无异常报错。服务验证包括但不限于服务的运行情况验证和服务的响应时间验证,根据实际需要进行设置,本发明实施例不做限定。数据库验证是针对于数据库写表准确性的验证,包括但不限于预期值验证和获取数据验证。预期值验证,即校验预期字段值写入是否正确。取数据验证,即校验必输字段是否不为空。批量作业情况验证包括但不限于DBF批量验证,根据实际需要进行设置,本发明实施例不做限定。DBF批量验证,即验证批量处理结果是否正确。
例如,所述第五指标验证规则包括日志验证、服务验证和数据库验证,日志验证包括关键字验证和返回结果验证,服务验证包括服务的运行情况验证和服务的响应时间验证,数据库验证包括预期值验证和获取数据验证。所述测试对象在通过日志验证、服务验证和数据库验证之后,才能满足所述第三指标验证规则。所述测试对象在通过关键字验证和返回结果验证之后,才能通过日志验证。所述测试对象在通过服务的运行情况验证和服务的响应时间验证之后,才能通过服务验证。所述测试对象在通过预期值验证和获取数据验证之后,才能通过数据库验证。
其中,所述第六指标验证规则包括但不限于日志验证、服务验证、数据库验证和批量作业情况验证等,根据实际需要进行设置,本发明实施例不做限定。日志验证包括但不限于关键字验证和返回结果验证,根据实际需要进行设置,本发明实施例不做限定。关键字验证,即验证日志信息中的关键字是否正确,关键字根据测试需求进行设置,本发明实施例不做限定。返回结果验证,即基于日志信息中的日志返回结果,判断正确率是否达到100%,是否无异常报错。服务验证包括但不限于服务的运行情况验证和服务的响应时间验证,根据实际需要进行设置,本发明实施例不做限定。数据库验证是针对于数据库写表准确性的验证,包括但不限于预期值验证和获取数据验证。预期值验证,即校验预期字段值写入是否正确。取数据验证,即校验必输字段是否不为空。批量作业情况验证包括但不限于DBF批量验证,根据实际需要进行设置,本发明实施例不做限定。DBF批量验证,即验证批量处理结果是否正确。
在上述各实施例的基础上,进一步地,所述若判断获知所述第一台灰度服务器通过灰度发布测试包括:
若判断获知所述第四测试数量等于所述目标值且所述步长统计参数不等于所述设定数量的整数倍,则确定所述第一台灰度服务器通过灰度发布测试;或者
若判断获知所述第四测试数量等于所述目标值、所述步长统计参数等于所述设定数量的整数倍且所述测试对象在持续运行所述设定时间内满足所述第六指标验证规则,则确定所述第一台灰度服务器通过灰度发布测试。
具体地,所述灰度发布服务器判断出第四测试数量是否等于目标值,并判断所述步长统计参数是否等于所述设定数量的整数倍,如果判断出第四测试数量是否等于目标值,并且所述步长统计参数不等于所述设定数量的整数倍,那么可以确认所述第一台灰度服务器通过所述灰度发布测试。
所述灰度发布服务器在判断出第四测试数量等于目标值且所述步长统计参数等于所述设定数量的整数倍之后,会发送所述目标值个交易请求给第一台灰度服务器,使所述第一台灰度服务器持续运行所述设定时间,所述第一台灰度服务器将持续运行所述设定时间内对各个交易请求的处理相关信息反馈给所述灰度发布服务器。如果所述灰度发布服务器判断出所述第四测试数量等于所述目标值、所述步长统计参数等于所述设定数量的整数倍且所述第一台灰度服务器满足所述第六指标验证规则,那么可以确认所述第一台灰度服务器通过所述灰度发布测试。
下面再以一个具体的实施例来说明本发明实施例提供的渐进式灰度发布方法的实现过程。
设置初始值为50,步长值为50,目标值为5000,步长统计参数的初始值为0,设定数量为5,设定时间为3小时。
服务器集群中第一台灰度服务器g安装完应用产品D的灰度版本之后,所述灰度发布服务器进行环境验证。环境验证包括但不限于配置中心验证、文件验证、PAAS验证和服务状态验证,根据实际需要进行设置,本发明实施例不做限定。配置中心验证包括但不限于Disconf配置文件内容验证、Apollo配置内容验证、Apollo配置实例个数验证、CMC动态变量验证。文件验证包括但不限于命令验证、配置文件参数验证和容器内脚本验证。PAAS验证包括但不限于部署节点验证。服务状态验证包括但不限于服务提供方验证。服务提供方验证,包括但不限于判断服务器数量是否正确、服务提供方的注册状态是否正常、运行状态是否平稳,服务响应时间是否在预设时间区间内。
在环境验证通过之后,所述灰度发布服务器向第一台灰度服务器g器发送50个交易请求,第一台灰度服务器g对接收到的交易请求进行处理并向所述灰度发布服务器返回处理各个交易请求的处理相关信息。所述灰度发布服务器判断第一台灰度服务器g是否满足第五指标验证规则,第五指标验证规则包括日志验证、服务验证和数据库验证。如果第一台灰度服务器g通过日志验证、服务验证和数据库验证,那么第一台灰度服务器g满足第五指标验证规则。
在第一台灰度服务器g满足第五指标验证规则之后,所述灰度发布服务器更新第四测试数量为50+50=100,并将步长统计参数加1获得计算后的步长统计参数为0+1=1,然后向第一台灰度服务器g发送100个交易请求,第一台灰度服务器g对接收到的交易请求进行处理并向所述灰度发布服务器返回处理各个交易请求的处理相关信息。所述灰度发布服务器判断第一台灰度服务器g是否满足第五指标验证规则,第五指标验证规则包括日志验证、服务验证和数据库验证。如果第一台灰度服务器g通过日志验证、服务验证和数据库验证,那么第一台灰度服务器g满足第五指标验证规则。
所述灰度发布服务器计算步长统计参数除以设定数量的余数,1除以5余数为1,步长统计参数不等于设定数量的整数倍,那么继续更新第四测试数量,重复上述过程对第一台灰度服务器g进行灰度发布测试。当步长统计参数为5时,步长统计参数5除以设定数量5的余数为0,步长统计参数等于设定数量的整数倍,所述灰度发布服务器发送第四测试数量个交易请求给所述测试对象以使得所述测试对象持续运行设定时间3小时,所述测试对象可以将持续运行3小时内对各个交易请求的处理相关信息反馈给所述灰度发布服务器。如果所述灰度发布服务器判断出所述测试对象满足所述第六指标验证规则且所述第四测试数量小于所述目标值,那么根据步长值更新第四测试数量,并发送第四测试数量个交易请求给所述测试对象。
所述灰度发布服务器继续重复上述过程对第一台灰度服务器g进行灰度发布测试,直到更新后的第四测试数量等于5000。当第四测试数量为5000时,步长统计参数为49。所述灰度发布服务器可以判断出第四测试数量等于5000,并且步长统计参数49不是设定数量5的整数倍,那么第一台灰度服务器g通过灰度发布测试。
所述灰度发布服务器向第三方服务器发送灰度版本部署指示,所述第三方服务器向服务器集群中的一台服务器h(未部署灰度版本的服务器)发送应用产品D的灰度版本的安装包。服务器h会接收上述安装包,并通过上述安装包安装应用产品D的灰度版本,在安装完成之后,服务器h成为下一台灰度服务器。
所述灰度发布服务器进行环境验证。在环境验证通过之后,所述灰度发布服务器会基于所述灰度发布规则向服务器h发送交易请求,以对服务器h进行灰度发布测试。服务器h的灰度发布测试过程与第一台服务器g的灰度发布测试过程类似,此处不进行赘述。
在服务器h通过灰度发布测试之后,所述灰度发布服务器对服务器集群中一台服务器(未部署灰度版本的服务器),会重复服务器h的灰度版本部署和灰度发布测试流程,直到服务器集群中的所有服务器都通过灰度发布测试。
图5是本发明还一实施例提供的渐进式灰度发布方法的流程示意图,如图5所示,本发明实施例提供的渐进式灰度发布方法的实现流程如下:
第一步,发送交易请求。灰度发布服务器向灰度服务器发送第四测试数量个交易请求。灰度服务器对接收到的交易请求进行处理并向所述灰度发布服务器返回处理交易请求的开始时间和处理各个交易请求的处理相关信息。其中,在发送第四测试数量个交易请求之前进行环境验证,环境验证通过之后进行交易请求的发送。设置初始值为50,步长值为50,目标值为5000,步长统计参数的初始值为0,设定数量为5,设定时间为3小时。
第二步,判断是否满足第五指标验证规则。灰度发布服务器基于上述处理相关信息判断灰度服务器是否满足第五指标验证规则,如果灰度服务器满足第五指标验证规则,那么需要进行更新第四测试数量,进入到第三步。如果判断出灰度服务器不满足第五指标验证规则,那么渐进式灰度发布流程结束。
第三步,更新第四测试数量。灰度发布服务器更新第四测试数量,更新后的第四测试数量等于更新前的第四测试数量与步长值之和。
第四步,计算步长统计参数。灰度发布服务器计算步长统计参数,计算后的步长统计参数等于计算前的步长统计参数加1。
第五步,判断是否能够整除。灰度发布服务器计算步长统计参数除以设定数量5的余数,余数不为0,那么步长统计参数不能整除设定数量,步长统计参数不等于设定数量的整数倍,进入第六步;余数为0,那么步长统计参数能整除设定数量,步长统计参数等于设定数量的整数倍,进入第七步。
第六步,判断是否等于目标值。灰度发布服务器判断第四测试数量是否等于目标值。如果第四测试数量等于目标值,那么进入第十二步;如果第四测试数量不等于目标值,那么回到第一步,继续对该灰度服务器进行灰度发布测试。
第七步,发送交易请求。灰度发布服务器发送第四测试数量个交易请求给灰度服务器以使得灰度服务器持续运行设定时间3小时,灰度服务器可以将持续运行3小时内对各个交易请求的处理相关信息反馈给灰度发布服务器。
第八步,判断是否满足第六指标验证规则。灰度发布服务器基于灰度服务器返回的处理相关信息判断灰度服务器是否满足第六指标验证规则,如果灰度服务器满足第六指标验证规则,那么进入到第九步。如果判断出灰度服务器不满足第六指标验证规则,那么渐进式灰度发布流程结束。
第九步,判断是否小于目标值。灰度发布服务器判断第四测试数量是否小于目标值。如果第四测试数量小于目标值,那么进入第十步;如果第四测试数量等于目标值,那么进入第十二步。
第十步,更新第四测试数量。灰度发布服务器更新第四测试数量,更新后的第四测试数量等于更新前的第四测试数量与步长值之和。
第十一步,计算步长统计参数。灰度发布服务器计算步长统计参数,计算后的步长统计参数等于计算前的步长统计参数加1,然后回到第一步。
第十二步,判断是否等于预设数量。灰度发布服务器统计服务器集群中部署灰度版本的服务器的数量N,如果数量N的等于预设数量,那么渐进式灰度发布流程结束。如果数量N小于预设数量,那么进入第十三步。
第十三步,触发灰度版本部署。灰度发布服务器触发对服务器集群中一台服务器的灰度版本部署,以使得上述一台服务器成为下一台灰度服务器,设置第四测试数量等于初始值,步长统计参数的初始值等于0,然后进入第一步,对下一台灰度服务器进行灰度发布测试。
图6是本发明一实施例提供的渐进式灰度发布装置的结构示意图,如图6所示,本发明实施例提供的渐进式灰度发布装置包括发送模块601、触发模块602和测试模块603,其中:
发送模块601用于基于灰度发布规则向第一台灰度服务器发送交易请求,以对所述第一台灰度服务器进行灰度发布测试;其中,所述灰度发布规则是预设的;触发模块602用于在判断获知所述第一台灰度服务器通过灰度发布测试之后,触发对服务器集群中一台服务器的灰度版本部署,以使得所述一台服务器成为下一台灰度服务器;测试模块603用于基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试,直到所述服务器集群中预设数量台服务器通过灰度发布测试。
具体地,在进行应用产品的灰度发布时,发送模块601可以基于灰度发布规则向第一台灰度服务器发送交易请求,所述第一台灰度服务器会接收发送模块601发送的交易请求,并对交易请求进行处理,以实现灰度发布测试。发送模块601可以对所述第一台灰度服务器处理交易请求的情况进行监控。其中,所述灰度发布规则是预设的。所述第一台灰度服务器已安装应用产品的灰度版本。
触发模块602会根据所述第一台灰度服务器对交易请求的处理清清,判断所述第一台灰度服务器是否通过灰度发布测试,如果所述第一台灰度服务器通过灰度发布测试,说明可以对应用产品的灰度版本进行推广,那么触发模块602会触发对服务器集群中一台服务器的灰度版本部署,所述一台服务器在安装完成灰度版本之后成为下一台灰度服务器。如果所述第一台灰度服务器没能通过灰度发布测试,说明应用产品的灰度版本存在问题,需要进行改进。
在所述一台服务器成为下一台灰度服务器之后测试模块603可以基于灰度发布规则向所述下一台灰度服务器发送交易请求,所述下一台灰度服务器会接收测试模块603发送的交易请求,并对交易请求进行处理,以实现灰度发布测试。测试模块603可以对所述下一台灰度服务器处理交易请求的情况进行监控,并判断所述下一台灰度服务器是否通过灰度发布测试,在下一台灰度服务器通过灰度发布测试之后,继续触发对服务器集群中一台服务器的灰度版本部署,获得下一台灰度服务器,重复基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试的步骤,直到所述服务器集群中通过灰度发布测试的灰度服务器的数量等于预设数量。也就是说,测试模块603会逐一地触发服务器集群中一台服务器的灰度版本部署并进行灰度发布测试。其中,每台灰度服务器的灰度发布测试的过程都是类似的。所述预设数量可以等于服务器集群中所有的服务器的数量,也可以等于服务器集群中部分服务器的数量,根据实际需要进行设置,本发明实施例不做限定。
本发明实施例提供的渐进式灰度发布装置,能够基于灰度发布规则向第一台灰度服务器发送交易请求,以对第一台灰度服务器进行灰度发布测试,在判断获知第一台灰度服务器通过灰度发布测试之后,触发对服务器集群中一台服务器的灰度版本部署,以使得一台服务器成为下一台灰度服务器,基于灰度发布规则对下一台灰度服务器进行灰度发布测试,直到服务器集群中预设数量台服务器通过灰度发布测试,通过渐进式地进行灰度发布,能够充分对应用产品的灰度版本进行测试,提高了灰度发布的可靠性。由于无需设置灰度比率,减少灰度发布过程中的人为主观性,避免了灰度试点范围过大导致的投产风险以及恢复试点范围过小导致的测试不全面。无需选定部分客户体验新的版本,够避免现有技术中由于依赖客户的反馈进行灰度发布,在灰度期内由于灰度客户未发起交易请求,不能保证灰度版本程序获得足量的有效调用,导致的需要延长灰度试点时间和影响新产品的推广,同时避免了服务器资源的浪费。
本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
现有的灰度发布技术需要人为的划定灰度比率,通过经验判断有时会造成划定灰度范围过大的问题,导致灰度内容发布风险上升;有时又会出现灰度划定范围过小的问题,导致无法获取足量有效的灰度样本的问题,影响灰度效果。此外现有灰度的发布大多通过控制灰度集群服务器的数量控制灰度发布,导致灰度发布的颗粒度过于粗糙、灰度策略缺少灵活性,不利于对灰度发布全过程的管理。
本发明实施例针对现有灰度发布技术中的不足,提出了一种渐进式灰度发布方法。免去了灰度发布过程中设定灰度比率的任务,同时细化了灰度发布的最小单元,增强了灰度发布策略的灵活性、有效性,同时更好的控制了灰度发布过程中的风险。采用自动化的发布方法,在替代人工上也具有突出效果。特别适用于银行、金融机构、互联网金融公司的账务类、资金类等高风险线上产品的发布。
需要说明的是,本发明实施例提供的渐进式灰度发布方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对渐进式灰度发布方法及装置的应用领域不做限定。
图7是本发明一实施例提供的电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)701、通信接口(Communications Interface)702、存储器(memory)703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。处理器701可以调用存储器703中的逻辑指令,以执行如下方法:基于灰度发布规则向第一台灰度服务器发送交易请求,以对所述第一台灰度服务器进行灰度发布测试;其中,所述灰度发布规则是预设的;若判断获知所述第一台灰度服务器通过灰度发布测试,则触发对服务器集群中一台服务器的灰度版本部署,以使得所述一台服务器成为下一台灰度服务器;基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试,直到所述服务器集群中预设数量台服务器通过灰度发布测试。
此外,上述的存储器703中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:基于灰度发布规则向第一台灰度服务器发送交易请求,以对所述第一台灰度服务器进行灰度发布测试;其中,所述灰度发布规则是预设的;若判断获知所述第一台灰度服务器通过灰度发布测试,则触发对服务器集群中一台服务器的灰度版本部署,以使得所述一台服务器成为下一台灰度服务器;基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试,直到所述服务器集群中预设数量台服务器通过灰度发布测试。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:基于灰度发布规则向第一台灰度服务器发送交易请求,以对所述第一台灰度服务器进行灰度发布测试;其中,所述灰度发布规则是预设的;若判断获知所述第一台灰度服务器通过灰度发布测试,则触发对服务器集群中一台服务器的灰度版本部署,以使得所述一台服务器成为下一台灰度服务器;基于所述灰度发布规则向所述下一台灰度服务器发送交易请求,以对所述下一台灰度服务器进行灰度发布测试,直到所述服务器集群中预设数量台服务器通过灰度发布测试。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
- 一种渐进式灰度发布方法及装置
- 灰度发布方法、灰度发布装置和电子设备