一种实现应用割接的方法和装置制造方法

文档序号:6491609阅读:208来源:国知局
一种实现应用割接的方法和装置制造方法
【专利摘要】本发明公开了一种实现应用割接的方法和装置,用于实现由已在线上的第一应用向新上线的第二应用的割接,所述方法包括:A、预设第二应用灰度值的初始值、第二应用的正常业务量值和第二应用的故障比例阈值,该第二应用灰度值的初始值大于0小于1;B、接收用户发送的请求,根据所述第二应用灰度值,将请求分发到第一应用或第二应用,并定时地统计第二应用的故障比例和第二应用的业务量;C、判断第二应用的故障比例是否低于故障比例阈值,若判断为否,则将第二应用灰度值降为0;若判断为是,进一步判断第二应用灰度值是否达到1,若判断为否,则运算第二应用灰度值并返回步骤B。本发明能够实现割接过程平稳,第二应用异常时产生的影响小。
【专利说明】一种实现应用割接的方法和装置
【技术领域】
[0001]本发明涉及计算机和通信领域,特别涉及一种实现应用割接的方法和装置。
【背景技术】
[0002]很多计算机系统或通信系统,都有一个庞大的服务端,向外围周边提供各种各样的能力支持,随着需求的增加和优化,各种应用会频繁地更新升级。由于线上系统的庞大,无法在功能测试和冒烟测试中覆盖到所有的点,所以应用的割接存在一定的风险,新的应用很可能在线上环境中不可用或者存在其它的异常。
[0003]目前的系统,实现应用割接主要有两种方案,一个是断电割接,就是在业务量最低点时将业务停掉,然后用新的应用替换之前的应用。用户会掉线(或者为当前应用不可用),待新应用部署成功后,可以体验新的应用功能。再一个就是重定向割接,将新的应用地址使用新的引导路径,然后在割接之后使用的用户就会被引导到新的应用上来,而之前使用着的用户不会受到影响,要想使用新的应用需要重新发出请求。
[0004]这两种割接方案都会造成一种问题,当新的应用有bug或者异常的时候,会导致应用不可用,解决的方案就是进行应用的回滚,如果割接时改动了很多关联应用,回滚的代价就会很高,甚至不具备回滚的可能。导致应用功能瘫痪,造成投诉和故障升级。因此,亟需平稳割接、没有业务中断且异常影响小的应用割接的方法和装置。

【发明内容】

[0005]本发明提供一种实现应用割接的方法和装置,以达到平稳割接、没有业务中断且异常影响小的效果。为达到上述目的,本发明采用如下技术方案:
[0006]本发明公开了一种实现应用割接的方法,用于实现由已在线上的第一应用向新上线的第二应用的割接,该方法包括:
[0007]A、预设第二应用灰度值的初始值、第二应用的正常业务量值和第二应用的故障比例阈值,该第二应用灰度值的初始值大于O小于I ;
[0008]B、接收用户发送的请求,根据所述第二应用灰度值,将请求分发到第一应用或第二应用,并定时地统计第二应用的故障比例和第二应用的业务量;
[0009]C、判断第二应用的故障比例是否低于故障比例阈值,若判断为否,则将第二应用灰度值降为0,结束流程;若判断为是,进一步判断第二应用灰度值是否达到1,若判断为是,则结束流程,若判断为否,则运算第二应用灰度值并返回步骤B。
[0010]其中,所述运算第二应用灰度值,包括:判断第二应用的业务量与正常业务量值的比值是否小于第二应用灰度值,若判断为是,则维持第二应用灰度值不变,若判断为否,则按照灰度扩张算法增大第二应用灰度值。
[0011]其中,所述根据第二应用灰度值将请求分发给第一应用或第二应用,包括:将接收到的请求,按照第二应用灰度值的比例,分发给第二应用。
[0012]其中,所述按照灰度扩张算法增大第二应用灰度值的方式,为线性增长或指数增长;步骤A还包括:预设线性增长系数或指数增长系数。
[0013]其中,本发明公开的实现应用割接的方法,还包括当将第二应用灰度值降为O或判断第二应用灰度值达到I时,发出提示信息。
[0014]本发明还公开了一种实现应用割接的装置,用于实现由已在线上的第一应用向新上线的第二应用的割接,该装置包括:初始化模块、请求分发模块、统计模块和灰度值调整模块;
[0015]初始化模块,用于预设第二应用灰度值的初始值、第二应用的正常业务量值和第二应用的故障比例阈值,并将第二应用灰度值的初始值通知给请求分发模块和灰度值调整模块,将第二应用的正常业务量值和第二应用的故障比例阈值通知给灰度值调整模块,该第二应用灰度值的初始值大于O小于I ;
[0016]请求分发模块,用于接收请求,根据所述第二应用灰度值将请求发送给第一应用或第二应用;
[0017]统计模块,用于定时地统计第二应用的故障比例和第二应用的业务量,将第二应用的故障比例和第二应用的业务量通知给灰度值调整模块;
[0018]灰度值调整模块,用于判断第二应用的故障比例是否低于故障比例阈值,若判断为否,则将第二应用灰度值降为0,将第二应用灰度值通知请求分发模块;若判断为是,进一步判断第二应用灰度值是否达到1,若判断为否,则运算第二应用灰度值,将运算后的第二应用灰度值通知请求分发模块。
[0019]其中,灰度值调整模块具体用于:判断第二应用的业务量与正常业务量值的比值是否小于第二应用灰度值,若判断为是,则维持第二应用灰度值不变,若判断为否,则按照灰度扩张算法增大第二应用灰度值。
[0020]其中,请求分发模块具体用于:将接收到的请求,按照第二应用灰度值的比例,分
发给第二应用。
[0021]其中,所述初始化模块,进一步用于预设线性增长系数或指数增长系数并通知给灰度值调整模块;所述灰度值调整模块按照灰度扩张算法增大第二应用灰度值的方式,为线性增长或指数增长。
[0022]其中,该实现应用割接的装置还包括提示模块,用于当将第二应用灰度值降为O或判断第二应用灰度值达到I时,发出提示信息。
[0023]本发明实施例的有益效果是:通过根据第二应用灰度值将请求分发到第一应用或第二应用,使得割接过程没有业务中断;通过判断第二应用是否达标以及在不达标时将第二应用灰度降为0,使得第二应用异常时产生的影响小;通过对第二应用灰度的运算,配置请求的分发量,使得割接过程平稳。
【专利附图】

【附图说明】
[0024]图1为本发明较佳实施例提供的一种实现应用割接的方法的流程图;
[0025]图2为本发明较佳实施例提供的一种实现应用割接的装置的框图。
【具体实施方式】
[0026]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步的详细描述。
[0027]图1为本发明较佳实施例提供的一种实现应用割接的方法的流程图。该方法能够用于实现由已在线上的第一应用向新上线的第二应用的割接,第二应用是为更替第一应用实现升级而开发出的新版应用。包括以下的步骤:
[0028]SlOO:预设第二应用灰度值的初始值、第二应用的正常业务量值和第二应用的故障比例阈值,该第二应用灰度值的初始值大于O小于I。
[0029]S200:接收用户发送的请求,根据所述第二应用灰度值,将请求分发到第一应用或第二应用,并定时地统计第二应用的故障比例和第二应用的业务量。
[0030]S300:调整第二应用灰度值。
[0031]其中,步骤S300具体包括:
[0032]S310:判断第二应用的故障比例是否低于故障比例阈值,若判断为否,则执行步骤S320 ;若判断为是,则执行步骤S330。
[0033]S320:将第二应用灰度值降为0,结束流程。
[0034]S330:判断第二应用灰度值是否达到1,若判断为是,则结束流程,若判断为否,则执行步骤S340。
[0035]S340:运算第二应用灰度值,返回步骤S200。
[0036]在步骤S200中,间隔一段时间就统计第二应用的故障比例和第二应用的业务量,统计第二应用的故障比例和第二应用的业务量的时间间隔可以由用户设定,也可以根据业务量而改变。其中,第二应用的业务量,为第二应用接收到的用户发送的请求的受理量;第二应用的故障比例,为第二应用处理接收到的请求时,出现错误的比例。
[0037]在步骤SlOO中,预设的故障比例阈值表示最大的允许故障比例,当第二应用的失败率达到阈值时,第二应用被认为存在问题,第二应用灰度会降低直至为0,所有请求被分配到第一应用,结束流程。
[0038]正常业务量值表示预设的正常的受理量,只有在业务量足够时,对于故障比例的测试,才有足够的参考价值,若第二应用的业务量不足,则不能仅凭故障比例低就认为可以提高第二应用灰度值,因此,本实施例中,在判断故障比例低于故障比例阈值时,需要进一步判断业务量是否足够,只有在业务量足够时才会增大第二应用灰度值。
[0039]在步骤S310中,所述判断第二应用是否达标,包括:判断第二应用的故障比例是否低于故障比例阈值;本实施例中,故障比例阈值是最大的允许故障比例,当第二应用的失败率达到阈值时,第二应用被认为存在问题,第二应用灰度会降低直至为0,所有请求被分配到第一应用,结束流程。
[0040]在步骤S340中,所述运算第二应用灰度值,包括:判断第二应用的业务量与正常业务量值的比值是否小于第二应用灰度值,若判断为是,则维持第二应用灰度值不变,若判断为否,则按照灰度扩张算法增大第二应用灰度值。
[0041]进一步地,以上所述的第二应用灰度值的初始值、第二应用的正常业务量值和第二应用的故障比例阈值,可以根据不同的业务需求进行差异化的设置。例如对于不同的应用,正常的业务量和要求的成功率不同;预设的第二应用灰度值的初始值表示初始状态下将请求分发给第二应用的比例,根据不同的上线时间紧迫性和产品前期的测试状况,预设的第二应用灰度值的初始值也能够不同。[0042]第二应用灰度值表示将请求分发给第二应用的比例,步骤S200中,是按照第二应用灰度值的比例,将接收到的请求,分发给第二应用。实现将请求按照比例分发的方法,可以通过随机数序列等方式实现,此处不再赘述。
[0043]第二应用灰度增大的灰度扩张算法是可以根据第二应用上线的紧迫性而自定义设计的,如果上线要求紧迫,可以使用指数扩张灰度,如果应用上线不急迫可以进行线性扩张。因此,增大第二应用灰度值的方式,为线性增长或指数增长,步骤SlOO中,还包括:预设线性增长系数或指数增长系数。
[0044]另外,本实施例中,还包括步骤S400:当将第二应用灰度值降为O或判断第二应用灰度值达到I时,发出提示信息。发出提示信息,是为了提示使用者将第二应用或第一应用下线。其中,当将第二应用灰度值降为O时,提示信息提示使用者将第二应用下线;当判断第二应用灰度值达到I时,提示信息提示使用者将第一应用下线。
[0045]举例说明,一个用于登录的系统,正常业务量为同时在线100万。故障比例阈值为1% (换言之,故障比例达到1%表示质量不达标)。开始时,预设的第二应用灰度值的初始值为0.05 (即5%),则随着新用户的登陆,请求会有5%的概率落到新的第二应用上去。当新的第二应用的累计同时在线达到100万的5%也就是5万的时候,并且这时故障比例低于1%,成功率一直高于99%,则第二应用灰度值会按照预设的灰度扩张算法扩大,例如扩大至20%,则新的登陆会有20%的概率落到新的第二应用上,如果在第二应用的业务量达到5万之前故障率高于1%,成功率低于99%,则认为新的应用有故障,第二应用灰度会被设置为0,新的业务不会被分发到新的第二应用上去。如果灰度逐渐扩大,直到I (即100%)时,所有的新请求都会落到新的第二应用上来,旧的第一应用不会再被分发新的请求,随着第一应用上用户的注销,直到用户为O时,管理者可以根据需要将旧的第一应用下线。
[0046]图2为本发明较佳实施例提供的一种实现应用割接的装置的框图。该装置用于实现由已在线上的第一应用向新上线的第二应用的割接,包括:初始化模块100、请求分发模块200、统计模块300和灰度值调整模块400。
[0047]初始化模块100,用于预设第二应用灰度值的初始值、第二应用的正常业务量值和第二应用的故障比例阈值,并将第二应用灰度值的初始值通知给灰度值调整模块400和请求分发模块200,将第二应用的正常业务量值和第二应用的故障比例阈值通知给灰度值调整模块400,该第二应用灰度值的初始值大于O小于I ;请求分发模块200,用于接收请求,根据所述第二应用灰度值将请求发送给第一应用或第二应用;统计模块300,用于定时地统计第二应用的故障比例和第二应用的业务量,将第二应用的故障比例和第二应用的业务量通知给灰度值调整模块400 ;灰度值调整模块400,用于判断第二应用的故障比例是否低于故障比例阈值,若判断为否,则将第二应用灰度值降为0,将第二应用灰度值通知请求分发模块200 ;若判断为是,进一步判断第二应用灰度值是否达到1,若判断为否,则运算第二应用灰度值,将运算后的第二应用灰度值通知请求分发模块200。
[0048]本实施中,灰度值调整模块400在运算第二应用灰度值时,具体用于:判断第二应用的业务量与正常业务量值的比值是否小于第二应用灰度值,若判断为是,则维持第二应用灰度值不变,若判断为否,则按照灰度扩张算法增大第二应用灰度值。
[0049]第二应用灰度值表示将请求分发给第二应用的比例,请求分发模块200是按照第二应用灰度值的比例,将接收到的请求,分发给第二应用。实现将请求按照比例分发的方法,可以通过随机数序列等方式实现,此处不再赘述。
[0050]第二应用灰度增大的灰度扩张算法是可以根据第二应用上线的紧迫性而自定义设计的,如果上线要求紧迫,可以使用指数扩张灰度,如果应用上线不急迫可以进行线性扩张。因此,所述增大第二应用灰度值的方式,为线性增长或指数增长,初始化模块100,进一步用于预设线性增长系数或指数增长系数并通知给灰度值调整模块400。
[0051]本实施例的实现应用割接的装置,还包括提示模块500,用于当灰度值调整模块400将第二应用灰度值降为O或判断第二应用灰度值达到I时,发出提示信息,以提示使用者将第二应用或第一应用下线。其中,当将第二应用灰度值降为O时,提示信息提示使用者将第二应用下线;当判断第二应用灰度值达到I时,提示信息提示使用者将第一应用下线。这样可便于使用者判断割接的状况。
[0052]本发明的实施例具有以下的优点:
[0053](一)与现有的断电割接方法和装置相比较,本发明可以避免掉线体验,使得割接过程没有业务中断;
[0054](二)通过判断第二应用是否达标以及在不达标时将第二应用灰度降为0,这样可以由管理者在第二应用上没有请求或用户时将第二应用下线以进行调试,使得第二应用异常时产生的影响小;
[0055](三)通过对第二应用灰度的运算,配置请求的分发量,使得割接过程平稳进行;
[0056](四)与现有的重定向割接方法和装置相比较,本发明可以降低回滚的影响,减少对用户体验的破坏。
[0057]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种实现应用割接的方法,用于实现由已在线上的第一应用向新上线的第二应用的割接,其特征在于,该方法包括: A、预设第二应用灰度值的初始值、第二应用的正常业务量值和第二应用的故障比例阈值,该第二应用灰度值的初始值大于O小于I ; B、接收用户发送的请求,根据所述第二应用灰度值,将请求分发到第一应用或第二应用,并定时地统计第二应用的故障比例和第二应用的业务量; C、判断第二应用的故障比例是否低于故障比例阈值,若判断为否,则将第二应用灰度值降为O,结束流程;若判断为是,进一步判断第二应用灰度值是否达到1,若判断为是,则结束流程,若判断为否,则运算第二应用灰度值并返回步骤B。
2.根据权利要求1所述的实现应用割接的方法,其特征在于, 所述运算第二应用灰度值,包括:判断第二应用的业务量与正常业务量值的比值是否小于第二应用灰度值,若判断为是,则维持第二应用灰度值不变,若判断为否,则按照灰度扩张算法增大第二应用灰度值。
3.根据权利要求1或2所述的实现应用割接的方法,其特征在于, 所述根据第二应用灰度值将请求分发给第一应用或第二应用,包括:将接收到的请求,按照第二应用灰度值的比例,分发给第二应用。
4.根据权利要求2所述的实现应用割接的方法,其特征在于, 所述按照灰度扩张算法增大第二应用灰度值的方式,为线性增长或指数增长; 步骤A还包括:预设线性增长系数或指数增长系数。
5.根据权利要求2所述的实现应用割接的方法,其特征在于,该方法还包括: 当将第二应用灰度值降为O或判断第二应用灰度值达到I时,发出提示信息。
6.一种实现应用割接的装置,用于实现由已在线上的第一应用向新上线的第二应用的割接,其特征在于,该装置包括:初始化模块、请求分发模块、统计模块和灰度值调整模块, 初始化模块,用于预设第二应用灰度值的初始值、第二应用的正常业务量值和第二应用的故障比例阈值,并将第二应用灰度值的初始值通知给请求分发模块和灰度值调整模块,将第二应用的正常业务量值和第二应用的故障比例阈值通知给灰度值调整模块,该第二应用灰度值的初始值大于O小于I ; 请求分发模块,用于接收请求,根据所述第二应用灰度值将请求发送给第一应用或第二应用; 统计模块,用于定时地统计第二应用的故障比例和第二应用的业务量,将第二应用的故障比例和第二应用的业务量通知给灰度值调整模块; 灰度值调整模块,用于判断第二应用的故障比例是否低于故障比例阈值,若判断为否,则将第二应用灰度值降为O,将第二应用灰度值通知请求分发模块;若判断为是,进一步判断第二应用灰度值是否达到1,若判断为否,则运算第二应用灰度值,将运算后的第二应用灰度值通知请求分发模块。
7.根据权利要求6所述的实现应用割接的装置,其特征在于, 灰度值调整模块具体用于:判断第二应用的业务量与正常业务量值的比值是否小于第二应用灰度值,若判断为是,则维持第二应用灰度值不变,若判断为否,则按照灰度扩张算法增大第二应用灰度值。
8.根据权利要求6或7所述的实现应用割接的装置,其特征在于,所述请求分发模块具体用于:将接收到的请求,按照第二应用灰度值的比例,分发给第二应用。
9.根据权利要求7所述的实现应用割接的装置,其特征在于, 所述初始化模块,进一步用于预设线性增长系数或指数增长系数并通知给灰度值调整模块;所述灰度值调整模块按照灰度扩张算法增大第二应用灰度值的方式,为线性增长或指数增长。
10.根据权利要求6或7所述的实现应用割接的装置,其特征在于,该装置还包括: 提示模块,用于当将第二应用灰度值降为O或判断第二应用灰度值达到I时,发出提示信 息。
【文档编号】G06F19/00GK103838947SQ201210487313
【公开日】2014年6月4日 申请日期:2012年11月26日 优先权日:2012年11月26日
【发明者】刘玎 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1