CN104683481B - 应用发布方法及系统 - Google Patents
应用发布方法及系统 Download PDFInfo
- Publication number
- CN104683481B CN104683481B CN201510122463.XA CN201510122463A CN104683481B CN 104683481 B CN104683481 B CN 104683481B CN 201510122463 A CN201510122463 A CN 201510122463A CN 104683481 B CN104683481 B CN 104683481B
- Authority
- CN
- China
- Prior art keywords
- error
- amount
- cluster
- index
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Indicating And Signalling Devices For Elevators (AREA)
Abstract
本发明公开了一种应用发布方法及系统,应用发布方法用于包含N台机器的第一集群,包括更新和监测方法,更新方法:S11、更新第M~M+P台机器的代码;S12、将M赋值为M+P+1;S13、判断M+P是否小于N,若是,进入步骤S11,若否,进入步骤S14;S14、更新第M~N台机器的代码;监测方法:S21、监测已更新代码的机器的错误量X10和待更新代码的机器的错误量Y10;S22、判断X10/Y10是否小于或等于预设阈值,若是,进入步骤S21,若否,进入步骤S23;S23、结束流程,控制已更新代码的机器进行代码回滚。本发明不仅保证了整个系统的正常运行,而且大大降低了发布失败对整个系统造成的影响。
Description
技术领域
本发明涉及计算机应用领域,特别涉及一种基于集群的应用发布方法及系统。
背景技术
随着信息技术和互联网的发展,应用需要处理的信息日益膨胀。因此,应用在发布时通常发布在一个集群中,并行处理信息,以提高信息的吞吐量。同时,应用版本的更迭日益加快,需要更加健全的应用发布系统来保证每一次的发布能够顺利完成。目前的发布系统,通常会在发布前进行应用编译,监测待发布应用是否存在问题。如果待发布应用不存在问题,发布系统会将新代码发布到集群的每一台机器上。这样的发布系统存在一个不可避免的问题,即一旦新的版本存在未被发现的问题,该问题有可能会在全部发布完成后集中爆发出来,对整个系统产生影响,造成严重的后果,并且在后续处理中需要对每一台机器进行版本回滚,导致修复系统时间延长,无法有效地控制损失。因此,提高发布系统的安全性具有非常重要的意义。目前在发布系统中,这一方面的技术比较欠缺。往往一次失败的版本发布会对整个公司业务造成严重的影响,而且会花费大量的人力来处理该紧急事件,造成严重的经济损失。
发明内容
本发明要解决的技术问题是为了克服现有技术中由于应用在被发布到集群中的所有机器后出现问题,导致整个系统产生影响以及后续修复系统时间长等的缺陷,提供一种实时监测应用运行状态,并在监测到问题时停止发布的应用发布方法及系统。
本发明是通过下述技术方案来解决上述技术问题的:
一种应用发布方法,该应用发布方法用于包含N台机器的第一集群,其特点在于,该应用发布方法包括一更新方法和一监测方法,
该更新方法包括以下步骤,设M的初始值为1:
S11、更新该第一集群内第M~M+P台机器的代码;
S12、将M赋值为M+P+1;
S13、判断M+P是否小于N,若是,则进入步骤S11,若否,则进入步骤S14;
S14、更新该第一集群内第M~N台机器的代码;
其中,P为整数,且N≥2,0≤P<(N-M-1)/2;
该监测方法包括以下步骤:
S21、监测该第一集群内已更新代码的机器中出现的错误量X10和待更新代码的机器中出现的错误量Y10;
S22、判断X10/Y10是否小于或等于第一预设阈值,若是,则进入步骤S21,若否,则进入步骤S23;
S23、结束该更新方法和该监测方法的流程,并控制该第一集群内已更新代码的机器进行代码回滚。
本方案中,该更新方法和该监测方法是并行执行的,该监测方法用于实时监测第一集群内的机器出现的错误量,并在错误率X10/Y10大于第一预设阈值时结束该应用发布方法的流程,包括结束该更新方法和该监测方法的流程,即停止发布。此时应用发布失败,为了保证系统的正常运行,控制已更新代码的机器进行代码回滚,即将已更新代码的机器中的代码回滚到更新之前的版本。
另外,在该更新方法的步骤S14执行完毕后,该监测方法停止执行,此时应用发布成功。其中,该第一预设阈值的值可以根据系统能够正常运行的条件来设定,也可以根据用户的需要来设定。
较佳地,该监测方法还包括以下步骤:
S24、监测该第一集群内所有机器中出现的错误量X11;
S25、判断X11是否小于或等于第二预设阈值,若是,则进入步骤S24,若否,则进入步骤S23;
其中,该监测方法的步骤S24和步骤S25在该更新方法的步骤S14之后执行。
本方案中,当该更新方法的步骤S14执行完毕,即第一集群内的所有机器的代码更新完毕时,监测该第一集群内所有机器是否能在一时间段内稳定运行,即监测在该时间段内该第一集群内所有机器中出现的错误量,若该错误量大于第二预设阈值,则停止发布。此时应用发布失败,为了保证系统的正常运行,控制已更新代码的机器进行代码回滚。另外,当第一集群内的所有机器的代码更新完毕时,若在该时间段内该错误量小于或等于第二预设阈值,即该第一集群能稳定运行,则应用发布成功。其中,该时间段和该第二预设阈值的值可以根据系统能够正常运行的条件来设定,也可以根据用户的需要来设定。值得注意的是,该监测方法的步骤S24~S25并非是在该监测方法的步骤S21~S23之后顺序执行的,而是在该更新方法的步骤S14之后执行。
较佳地,将该监测方法的步骤S21替换为步骤S21’,步骤S22替换为步骤S22’,步骤S24替换为步骤S24’,步骤S25替换为步骤S25’,
S21’、监测该第一集群内已更新代码的机器中出现的错误量X10和待更新代码的机器中出现的错误量Y10,并监测与该第一集群存在关联的第二集群内的所有机器在第一时间段内出现的错误量X20和在上一第一时间段内出现的错误量Y20;
S22’、判断X10/Y10是否小于或等于第一预设阈值,且X20/Y20是否小于或等于第三预设阈值,若是,则进入步骤S21’,若否,则进入步骤S23;
S24’、监测该第一集群内所有机器中出现的错误量X11,以及该第二集群内所有机器在第一时间段内出现的错误量X21和在上一第一时间段内出现的错误量Y21;
S25’、判断X11是否小于或等于第二预设阈值,且X21/Y21是否小于或等于第三预设阈值,若是,则进入步骤S24’,若否,则进入步骤S23。
本方案中,在应用发布的过程中,除了监测该第一集群内已更新代码的机器中出现的错误量X10和待更新代码的机器中出现的错误量Y10,还需要监测与该第一集群存在关联的第二集群内机器的错误量,具体地,监测该第二集群内的所有机器在第一时间段内出现的错误量X20和在上一第一时间段内出现的错误量Y20。同样地,在应用发布的过程中除了判断该第一集群内机器的错误率X10/Y10,还需要判断该第二集群内机器的错误率X20/Y20。
当该第一集群内所有机器的代码更新完毕时,监测该第一集群内所有机器是否能在一段时间内稳定运行,具体地,除了监测在该段时间内该第一集群内机器的错误量X11,还需要监测在该段时间内该第二集群内的所有机器在第一时间段内出现的错误量X21和在上一第一时间段内出现的错误量Y21。同样地,除了判断该第一集群内机器的错误量X11,还需要判断该第二集群内机器的错误率X21/Y21。
其中,集群之间是否存在关联是本领域的公知常识,不再赘述,即本领域技术人员很容易判断该第二集群与该第一集群是否存在关联。
较佳地,设该第一集群包括i项指标,X10包括第1项指标的错误量X101~第i项指标的错误量X10i,Y10包括第1项指标的错误量Y101~第i项指标的错误量Y10i,X11包括第1项指标的错误量X111~第i项指标的错误量X11i,或包括X111~X11i和
X10/Y10包括X101/Y101~X10i/Y10i,或包括X101/Y101~X10i/Y10i和
设该第二集群包括j项指标,X20包括第1项指标的错误量X201~第j项指标的错误量X20j,Y20包括第1项指标的错误量Y201~第j项指标的错误量Y20j,X21包括第1项指标的错误量X211~第j项指标的错误量X21j,Y21包括第1项指标的错误量Y211~第j项指标的错误量Y21j,
X20/Y20包括X201/Y201~X20j/Y20j,且X21/Y21包括X211/Y211~X21j/Y21j,或X20/Y20包括X201/Y201~X20j/Y20j和且X21/Y21包括X211/Y211~X21j/Y21j和
其中,i≥1,且j≥1。
本方案中,在该监测方法的步骤S22中,当X10/Y10包括X101/Y101~X10i/Y10i时,需要判断每个X10i/Y10i的值是否均小于或等于第一预设阈值,若是,则进入步骤S23,若否,即只要有任何一个X10i/Y10i的值大于第一预设阈值,则控制该第一集群内已更新代码的机器进行代码回滚,结束流程;当X10/Y10还包括时,还需要判断的值是否小于或等于第一预设阈值。其中,第一预设阈值可以为一个阈值,也可以为多个阈值的集合,当X10/Y10包括X101/Y101~X10i/Y10i时,每个X10i/Y10i均对应一个阈值;当X10/Y10还包括时,对应一个阈值。与每个X10i/Y10i对应的阈值可以相同,也可以不同。在该监测方法的步骤S24中,当X11包括X111~X11i时,需要判断每个X11i的值是否均小于或等于第二预设阈值;当X11还包括时,还需要判断的值是否小于或等于第二预设阈值。同样地,第二预设阈值可以为一个阈值,即对应一个阈值,第二预设阈值也可以为多个阈值的集合,即每个X11i均对应一个阈值。
同样地,在该监测方法的步骤S22’中,当X20/Y20包括X201/Y201~X20j/Y20j时,需要判断每个X20j/Y20j的值是否均小于或等于第三预设阈值,当X20/Y20还包括时,还需要判断的值,即不仅每个X20j/Y20j的值需要满足条件,总和也需要满足条件。其中,第三预设阈值可以为一个阈值,也可以为多个阈值的集合,当X20/Y20包括X201/Y201~X20j/Y20j时,每个X20j/Y20j均对应一个阈值;当X20/Y20还包括时,对应一个阈值。与每个X20j/Y20j对应的阈值可以相同,也可以不同。在该监测方法的S24’中,当X21/Y21包括X211/Y211~X21j/Y21j时,需要判断每个X21j/Y21j的值,当X21/Y21还包括时,还需要判断的值。
较佳地,P为K的X次方,其中,设X的初始值为0,X和K均为整数,且K>1,将该更新方法的步骤S12替换为步骤S12’,
S12’、将M赋值为M+P+1,将X赋值为X+1。
当已更新代码的机器在整个系统中运行正常时,可以加快发布的速度,以提高发布的效率。本方案中,在应用发布正常的情况下,第一次更新K0=1台机器的代码,第二次更新K1=K台机器的代码,第三次更新K2台机器的代码,以此类推,每次更新代码的机器数量呈指数增加,直至所有机器的代码都更新完毕。其中,加快发布速度的方法不限于本方案中的指数增加,在不影响应用发布的情况下,可以为任何能够加快发布速度的其它方法。
本发明还提供一种应用发布系统,该应用发布系统用于包含N台机器的第一集群,其特点在于,该应用发布系统包括一第一发布模块、一赋值模块、一第一判断模块、一第二发布模块、一第一监测模块、一第二判断模块以及一控制模块,设M的初始值为1,
该第一发布模块用于更新该第一集群内第M~M+P台机器的代码,调用该赋值模块;
该赋值模块用于将M赋值为M+P+1,调用该第一判断模块;
该第一判断模块用于判断M+P是否小于N,若是,则调用该第一发布模块,若否,则调用该第二发布模块;
该第二发布模块用于更新该第一集群内第M~N台机器的代码;
该第一监测模块用于监测该第一集群内已更新代码的机器中出现的错误量X10和待更新代码的机器中出现的错误量Y10,调用该第二判断模块;
该第二判断模块用于判断X10/Y10是否小于或等于第一预设阈值,若是,则调用该第一监测模块,若否,则调用该控制模块;
该控制模块用于控制该第一集群内已更新代码的机器进行代码回滚;
其中,P为整数,且N≥2,0≤P<(N-M-1)/2。
较佳地,该应用发布系统还包括一第二监测模块和一第三判断模块,
该第二监测模块用于在该第一集群内的所有机器的代码更新完毕时,监测该第一集群内所有机器中出现的错误量X11,调用该第三判断模块;
该第三判断模块用于判断X11是否小于或等于第二预设阈值,若是,则调用该第二监测模块,若否,则调用该控制模块。
较佳地,该第一监测模块还用于监测与该第一集群存在关联的第二集群内的所有机器在第一时间段内出现的错误量X20和在上一第一时间段内出现的错误量Y20,调用该第二判断模块;
该第二判断模块替换为用于判断X10/Y10是否小于或等于第一预设阈值,且X20/Y20是否小于或等于第三预设阈值,若是,则调用该第一监测模块,若否,则调用该控制模块;
该第二监测模块还用于在该第一集群内的所有机器的代码更新完毕时,监测该第二集群内所有机器在第一时间段内出现的错误量X21和在上一第一时间段内出现的错误量Y21,调用该第三判断模块;
该第三判断模块替换为用于判断X11是否小于或等于第二预设阈值,且X21/Y21是否小于或等于第三预设阈值,若是,则调用该第二监测模块,若否,则调用该控制模块。
较佳地,设该第一集群包括i项指标,X10包括第1项指标的错误量X101~第i项指标的错误量X10i,Y10包括第1项指标的错误量Y101~第i项指标的错误量Y10i,X11包括第1项指标的错误量X111~第i项指标的错误量X11i,或包括X111~X11i和
X10/Y10包括X101/Y101~X10i/Y10i,或包括X101/Y101~X10i/Y10i和
设该第二集群包括j项指标,X20包括第1项指标的错误量X201~第j项指标的错误量X20j,Y20包括第1项指标的错误量Y201~第j项指标的错误量Y20j,X21包括第1项指标的错误量X211~第j项指标的错误量X21j,Y21包括第1项指标的错误量Y211~第j项指标的错误量Y21j,
X20/Y20包括X201/Y201~X20j/Y20j,且X21/Y21包括X211/Y211~X21j/Y21j,或X20/Y20包括X201/Y201~X20j/Y20j和且X21/Y21包括X211/Y211~X21j/Y21j和
其中,i≥1,且j≥1。
较佳地,P为K的X次方,其中,设X的初始值为0,X和K均为整数,且K>1,该赋值模块还用于将X赋值为X+1。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:与现有的一次将应用发布到集群的所有机器中的应用发布系统相比,本发明在发布应用的过程中实时监测已更新代码的机器和待更新代码的机器,在监测到问题时立即停止发布,同时对已更新代码的机器进行代码回滚,不仅保证了整个系统的正常运行,而且减少了发布失败后处理问题的时间,从而大大降低了发布失败对整个系统造成的影响。
附图说明
图1为本发明实施例1的应用发布系统的结构框图。
图2为本发明实施例1中更新方法的流程图。
图3为本发明实施例1中监测方法的流程图。
图4为本发明实施例2中监测方法的部分流程图。
图5为本发明实施例3中更新方法的流程图。
图6为本发明实施例3中监测方法的部分流程图。
图7为本发明实施例3中监测方法的部分流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
一种应用发布系统300,如图1所示,用于包含50台机器的集群A,应用发布系统300包括第一发布模块301、赋值模块302、第一判断模块303、第二发布模块304、第一监测模块305、第二判断模块306以及控制模块307。
设M的初始值为1,每次更新集群A内5台机器的代码,集群A包括FATAL(指标名称)和ERROR(指标名称)两项指标,其中第1项指标FATAL的错误率的预设阈值为2%,第2项指标ERROR的错误率的预设阈值为4%。
第一发布模块301用于更新集群A内第M~M+5台机器的代码,调用赋值模块302;
赋值模块302用于将M赋值为M+5+1,调用第一判断模块303;
第一判断模块303用于判断M+5是否小于50,若是,则调用第一发布模块301,若否,则调用第二发布模块304;
第二发布模块304用于更新集群A内第M~50台机器的代码;
第一监测模块305用于监测集群A内已更新代码的机器中出现的第1项指标的错误量X101和第2项指标的错误量X102,以及待更新代码的机器中出现的第1项指标的错误量Y101和第2项指标的错误量Y102,调用第二判断模块306;
第二判断模块306用于判断X101/Y101是否小于或等于2%,且X102/Y102是否小于或等于4%,若是,则调用第一监测模块305,若否,则调用控制模块307;
控制模块307用于控制集群A内已更新代码的机器进行代码回滚。
本实施例还提供一种上述应用发布系统的应用发布方法,该应用发布方法包括更新方法和监测方法,
如图2所示,该更新方法包括以下步骤:
步骤101、更新集群A内第M~M+5台机器的代码;
步骤102、将M赋值为M+5+1;
步骤103、判断M+5是否小于50,若是,则进入步骤101,若否,则进入步骤104;
步骤104、更新集群A内第M~50台机器的代码;
如图3所示,该监测方法包括以下步骤:
步骤201、监测集群A内已更新代码的机器中出现的第1项指标的错误量X101和第2项指标的错误量X102,以及待更新代码的机器中出现的第1项指标的错误量Y101和第2项指标的错误量Y102;
步骤202、判断X101/Y101是否小于或等于2%,且X102/Y102是否小于或等于4%,若是,则进入步骤201,若否,则进入步骤203;
步骤203、结束该更新方法和该监测方法的流程,并控制集群A内已更新代码的机器进行代码回滚。
本实施例中,当X101/Y101大于2%或X102/Y102大于4%时,应用发布失败,此时结束更新方法和监测方法的流程,即停止发布,并控制集群A内已更新代码的机器进行代码回滚,保证了整个系统的正常运行,降低了发布失败对整个系统造成的影响。当该更新方法的步骤104执行完毕后,该监测方法停止执行,应用发布成功。
实施例2
本实施例提供一种应用发布系统,与实施例1中应用发布系统的区别在于,还包括第二监测模块和第三判断模块。集群A内第1项指标FATAL的错误量的预设阈值为10,第2项指标ERROR的错误量的预设阈值为15。
该第二监测模块用于在集群A内的所有机器的代码更新完毕时,监测集群A内所有机器中出现的第1项指标的错误量X111和第2项指标的错误量X112,调用该第三判断模块;
该第三判断模块用于判断X111是否小于或等于10,且X112是否小于或等于15,若是,则调用该第二监测模块,若否,则调用该控制模块。
本实施例还提供一种本实施例的应用发布系统的应用发布方法,与实施例1中应用发布方法的区别在于,该监测方法还包括以下步骤,如图4所示:
步骤204、监测集群A内所有机器中出现的第1项指标的错误量X111和第2项指标的错误量X112;
步骤205、判断X111是否小于或等于10,且X112是否小于或等于15,若是,则进入步骤204,若否,则进入步骤203;
其中该监测方法的步骤204和步骤205在该更新方法的步骤104之后执行。
当该更新方法的步骤104执行完毕后,即集群A内的所有机器的代码更新完毕时,监测集群A内的所有机器是否能在一时间段内稳定运行,若在该时间段内X111大于10或X112大于15,则停止发布,并控制已更新代码的机器进行代码回滚,即集群A在该时间段内不能稳定运行,应用发布失败。若在该时间段内X111小于或等于10,且X112小于或等于15,即集群A能稳定运行,则应用发布成功。
实施例3
本实施例提供一种应用发布系统,与实施例2中应用发布系统的区别在于:
第一监测模块用于监测集群A内已更新代码的机器中出现的第1项指标的错误量X101和第2项指标的错误量X102,以及待更新代码的机器中出现的第1项指标的错误量Y101和第2项指标的错误量Y102,并监测集群B内的所有机器在5分钟内出现的ERROR指标的错误量X201,以及在上一个5分钟内出现的ERROR指标的错误量Y201,调用第二判断模块;
第二判断模块用于判断X101/Y101是否小于或等于2%,且X102/Y102是否小于或等于4%,且(X101+X102)/(Y101+Y102)是否小于或等于3%,且X201/Y201是否小于或等于2%,若是,则调用第一监测模块,若否,则调用控制模块;
第二监测模块用于在集群A内的所有机器的代码更新完毕时,监测集群A内所有机器中出现的第1项指标的错误量X111和第2项指标的错误量X112,以及集群B内所有机器在5分钟内出现的错误量X21和在上一个5分钟内出现的错误量Y21,调用第三判断模块;
第三判断模块用于判断X111是否小于或等于10,且X112是否小于或等于15,且X111+X112是否小于或等于13,且X21/Y21是否小于或等于2%,若是,则调用第二监测模块,若否,则调用控制模块。
其中,集群B与集群A存在关联。集群A中FATAL指标的错误率的预设阈值为2%,错误量的预设阈值为10,ERROR指标的错误率的预设阈值为4%,错误量的预设阈值为15,FATAL+ERROR指标的错误率的预设阈值为3%,错误量的预设阈值为13,集群B包括ERROR(指标名称)一项指标,ERROR指标的错误率的预设阈值为2%。
本实施例还提供一种上述应用发布系统实现的应用发布方法,该应用发布方法包括更新方法和监测方法。设M的初始值为1,每次更新集群A内2x台机器的代码。如图5所示,该更新方法包括以下步骤:
步骤101’、更新集群A内第M~M+2x台机器的代码;
步骤102’、将M赋值为M+2x+1,将X赋值为X+1;
步骤103’、判断M+2x是否小于50,若是,则进入步骤101’,若否,则进入步骤104’;
步骤104’、更新集群A内第M~50台机器的代码;
如图6所示,该监测方法包括以下步骤:
步骤201’、监测集群A内已更新代码的机器中出现的第1项指标的错误量X101和第2项指标的错误量X102,以及待更新代码的机器中出现的第1项指标的错误量Y101和第2项指标的错误量Y102,并监测集群B内的所有机器在5分钟内出现的ERROR指标的错误量X201,以及在上一个5分钟内出现的ERROR指标的错误量Y201;
步骤202’、判断X101/Y101是否小于或等于2%,且X102/Y102是否小于或等于4%,且(X101+X102)/(Y101+Y102)是否小于或等于3%,且X201/Y201是否小于或等于2%,若是,则进入步骤201’,若否,则进入步骤203’;
步骤203’、结束该更新方法和该监测方法的流程,并控制集群A内已更新代码的机器进行代码回滚。
如图7所示,该监测方法还包括以下步骤:
步骤204’、监测集群A内所有机器中出现的第1项指标的错误量X111和第2项指标的错误量X112,以及集群B内所有机器在5分钟内出现的错误量X21和在上一个5分钟内出现的错误量Y21;
步骤205’、判断X111是否小于或等于10,且X112是否小于或等于15,且X111+X112是否小于或等于13,且X21/Y21是否小于或等于2%,若是,则进入步骤203’,若否,则进入步骤203’;
其中该监测方法的步骤204’和步骤205’在该更新方法的步骤104’之后执行。
本实施例中,在集群A应用发布的过程中,除了监测集群A内机器的错误量,还需要监测与集群A存在关联的集群B内机器的错误量。同样地,除了判断集群A内机器的错误率,还需要判断集群B内机器的错误率。
当集群A内所有机器的代码更新完毕时,监测集群A内所有机器是否能在一段时间内稳定运行,除了监测在该段时间内集群A内机器的错误量,还需要监测集群B机器的错误量。同样地,除了判断集群A内机器的错误量,还需要判断集群B内机器的错误率。
在集群A应用发布正常的情况下,第一次更新1台机器的代码,第二次更新2台机器的代码,第三次更新4台机器的代码,以此类推,每次更新代码的机器数量呈指数增加,直至50台机器的代码都更新完毕。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (8)
1.一种应用发布方法,该应用发布方法用于包含N台机器的第一集群,其特征在于,该应用发布方法包括一更新方法和一监测方法,
该更新方法包括以下步骤,设M的初始值为1:
S11、更新该第一集群内第M~M+P台机器的代码;
S12、将M赋值为M+P+1;
S13、判断M+P是否小于N,若是,则进入步骤S11,若否,则进入步骤S14;
S14、更新该第一集群内第M~N台机器的代码;
其中,P为整数,且N≥2,0≤P<(N-M-1)/2;
该监测方法包括以下步骤:
S21、监测该第一集群内已更新代码的机器中出现的错误量X10和待更新代码的机器中出现的错误量Y10;
S22、判断X10/Y10是否小于或等于第一预设阈值,若是,则进入步骤S21,若否,则进入步骤S23;
S23、结束该更新方法和该监测方法的流程,并控制该第一集群内已更新代码的机器进行代码回滚。
2.如权利要求1所述的应用发布方法,其特征在于,该监测方法还包括以下步骤:
S24、监测该第一集群内所有机器中出现的错误量X11;
S25、判断X11是否小于或等于第二预设阈值,若是,则进入步骤S24,若否,则进入步骤S23;
其中,该监测方法的步骤S24和步骤S25在该更新方法的步骤S14之后执行。
3.如权利要求2所述的应用发布方法,其特征在于,将该监测方法的步骤S21替换为步骤S21’,步骤S22替换为步骤S22’,步骤S24替换为步骤S24’,步骤S25替换为步骤S25’,
S21’、监测该第一集群内已更新代码的机器中出现的错误量X10和待更新代码的机器中出现的错误量Y10,并监测与该第一集群存在关联的第二集群内的所有机器在第一时间段内出现的错误量X20和在上一第一时间段内出现的错误量Y20;
S22’、判断X10/Y10是否小于或等于第一预设阈值,且X20/Y20是否小于或等于第三预设阈值,若是,则进入步骤S21’,若否,则进入步骤S23;
S24’、监测该第一集群内所有机器中出现的错误量X11,以及该第二集群内所有机器在第一时间段内出现的错误量X21和在上一第一时间段内出现的错误量Y21;
S25’、判断X11是否小于或等于第二预设阈值,且X21/Y21是否小于或等于第三预设阈值,若是,则进入步骤S24’,若否,则进入步骤S23。
4.如权利要求3所述的应用发布方法,其特征在于,
设该第一集群包括i项指标,X10包括第1项指标的错误量X101~第i项指标的错误量X10i,Y10包括第1项指标的错误量Y101~第i项指标的错误量Y10i,X11包括第1项指标的错误量X111~第i项指标的错误量X11i,或包括X111~X11i和
X10/Y10包括X101/Y101~X10i/Y10i,或包括X101/Y101~X10i/Y10i和
设该第二集群包括j项指标,X20包括第1项指标的错误量X201~第j项指标的错误量X20j,Y20包括第1项指标的错误量Y201~第j项指标的错误量Y20j,X21包括第1项指标的错误量X211~第j项指标的错误量X21j,Y21包括第1项指标的错误量Y211~第j项指标的错误量Y21j,
X20/Y20包括X201/Y201~X20j/Y20j,且X21/Y21包括X211/Y211~X21j/Y21j,或X20/Y20包括X201/Y201~X20j/Y20j和且X21/Y21包括X211/Y211~X21j/Y21j和
其中,i≥1,且j≥1。
5.一种应用发布系统,该应用发布系统用于包含N台机器的第一集群,其特征在于,该应用发布系统包括一第一发布模块、一赋值模块、一第一判断模块、一第二发布模块、一第一监测模块、一第二判断模块以及一控制模块,设M的初始值为1,
该第一发布模块用于更新该第一集群内第M~M+P台机器的代码,调用该赋值模块;
该赋值模块用于将M赋值为M+P+1,调用该第一判断模块;
该第一判断模块用于判断M+P是否小于N,若是,则调用该第一发布模块,若否,则调用该第二发布模块;
该第二发布模块用于更新该第一集群内第M~N台机器的代码;
该第一监测模块用于监测该第一集群内已更新代码的机器中出现的错误量X10和待更新代码的机器中出现的错误量Y10,调用该第二判断模块;
该第二判断模块用于判断X10/Y10是否小于或等于第一预设阈值,若是,则调用该第一监测模块,若否,则调用该控制模块;
该控制模块用于控制该第一集群内已更新代码的机器进行代码回滚;
其中,P为整数,且N≥2,0≤P<(N-M-1)/2。
6.如权利要求5所述的应用发布系统,其特征在于,该应用发布系统还包括一第二监测模块和一第三判断模块,
该第二监测模块用于在该第一集群内的所有机器的代码更新完毕时,监测该第一集群内所有机器中出现的错误量X11,调用该第三判断模块;
该第三判断模块用于判断X11是否小于或等于第二预设阈值,若是,则调用该第二监测模块,若否,则调用该控制模块。
7.如权利要求6所述的应用发布系统,其特征在于,
该第一监测模块还用于监测与该第一集群存在关联的第二集群内的所有机器在第一时间段内出现的错误量X20和在上一第一时间段内出现的错误量Y20,调用该第二判断模块;
该第二判断模块替换为用于判断X10/Y10是否小于或等于第一预设阈值,且X20/Y20是否小于或等于第三预设阈值,若是,则调用该第一监测模块,若否,则调用该控制模块;
该第二监测模块还用于在该第一集群内的所有机器的代码更新完毕时,监测该第二集群内所有机器在第一时间段内出现的错误量X21和在上一第一时间段内出现的错误量Y21,调用该第三判断模块;
该第三判断模块替换为用于判断X11是否小于或等于第二预设阈值,且X21/Y21是否小于或等于第三预设阈值,若是,则调用该第二监测模块,若否,则调用该控制模块。
8.如权利要求7所述的应用发布系统,其特征在于,
设该第一集群包括i项指标,X10包括第1项指标的错误量X101~第i项指标的错误量X10i,Y10包括第1项指标的错误量Y101~第i项指标的错误量Y10i,X11包括第1项指标的错误量X111~第i项指标的错误量X11i,或包括X111~X11i和
X10/Y10包括X101/Y101~X10i/Y10i,或包括X101/Y101~X10i/Y10i和
设该第二集群包括j项指标,X20包括第1项指标的错误量X201~第j项指标的错误量X20j,Y20包括第1项指标的错误量Y201~第j项指标的错误量Y20j,X21包括第1项指标的错误量X211~第j项指标的错误量X21j,Y21包括第1项指标的错误量Y211~第j项指标的错误量Y21j,
X20/Y20包括X201/Y201~X20j/Y20j,且X21/Y21包括X211/Y211~X21j/Y21j,或X20/Y20包括X201/Y201~X20j/Y20j和且X21/Y21包括X211/Y211~X21j/Y21j和
其中,i≥1,且j≥1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510122463.XA CN104683481B (zh) | 2015-03-19 | 2015-03-19 | 应用发布方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510122463.XA CN104683481B (zh) | 2015-03-19 | 2015-03-19 | 应用发布方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104683481A CN104683481A (zh) | 2015-06-03 |
CN104683481B true CN104683481B (zh) | 2017-10-13 |
Family
ID=53318047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510122463.XA Active CN104683481B (zh) | 2015-03-19 | 2015-03-19 | 应用发布方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104683481B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506194A (zh) * | 2017-08-24 | 2017-12-22 | 北京百悟科技有限公司 | 应用版本回退确定方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102487391A (zh) * | 2010-12-01 | 2012-06-06 | 中兴通讯股份有限公司 | 远程控制版本升级的方法及系统 |
CN102685148A (zh) * | 2012-05-31 | 2012-09-19 | 清华大学 | 一种云存储环境下的安全网盘系统的实现方法 |
WO2013097362A1 (zh) * | 2011-12-27 | 2013-07-04 | 中兴通讯股份有限公司 | 升级处理方法及装置 |
-
2015
- 2015-03-19 CN CN201510122463.XA patent/CN104683481B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102487391A (zh) * | 2010-12-01 | 2012-06-06 | 中兴通讯股份有限公司 | 远程控制版本升级的方法及系统 |
WO2013097362A1 (zh) * | 2011-12-27 | 2013-07-04 | 中兴通讯股份有限公司 | 升级处理方法及装置 |
CN102685148A (zh) * | 2012-05-31 | 2012-09-19 | 清华大学 | 一种云存储环境下的安全网盘系统的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104683481A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106603264A (zh) | 一种定位故障根源的方法和设备 | |
CN106803790B (zh) | 一种集群系统的升级控制方法及装置 | |
CN103176892B (zh) | 一种页面监控方法及系统 | |
CN102591658B (zh) | 一种消息处理方法及装置 | |
WO2021057252A1 (zh) | 一种业务处理流程配置方法、业务请求处理方法及装置 | |
CN106201690A (zh) | 应用运行控制方法及装置 | |
CN104461743A (zh) | 资源和配置的自动生成装置和方法 | |
CN104850394B (zh) | 分布式应用程序的管理方法和分布式系统 | |
CN103220180A (zh) | 一种OpenStack云平台异常的处理方法 | |
CN106685894B (zh) | 一种风险识别方法、装置及系统 | |
CN106873957A (zh) | 一种业务流程的处理方法和设备 | |
CN106610870A (zh) | 一种处理节点数量调整方法及装置 | |
CN108519918A (zh) | 一种基于事务链的分布式事务处理方法 | |
CN106357430A (zh) | 一种云计算集群服务状态监控方法和系统 | |
WO2015169028A1 (zh) | 终端软件的在线升级方法及装置 | |
CN105988886B (zh) | 一种运维过程中的故障处理方法及装置 | |
CN104683481B (zh) | 应用发布方法及系统 | |
CN105930226A (zh) | 一种数据处理方法及装置 | |
CN106611297A (zh) | 工作流异常处理方法及系统 | |
CN112148713B (zh) | 异构数据库之间数据迁移方法及装置 | |
CN107092528A (zh) | 一种分布式任务调度方法、装置及系统 | |
CN106294445A (zh) | 基于跨机房Hadoop集群的数据存储的方法及装置 | |
CN114443356A (zh) | 一种容器集群的处理方法及系统 | |
CN107145570B (zh) | 基于数据库服务架构维护服务器的方法及系统 | |
CN107122489B (zh) | 一种数据对比方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160205 Address after: 200335 Shanghai city Changning District Admiralty Road No. 968 Building No. 16 10 floor Applicant after: SHANGHAI XIECHENG BUSINESS CO., LTD. Address before: 200335 Shanghai City, Changning District Fuquan Road No. 99, Ctrip network technology building Applicant before: Ctrip computer technology (Shanghai) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |