用于主机集群的应用程序更新方法、装置及服务器设备的制造方法

文档序号:10612625阅读:327来源:国知局
用于主机集群的应用程序更新方法、装置及服务器设备的制造方法
【专利摘要】本发明实施例提供一种用于主机集群的应用程序更新方法、装置及服务器设备,所述方法包括:获取应用程序更新包;从主机集群当中设有运行应用程序的容器的主机中选择运行状态最优的第一主机;将所述应用程序更新包替换所述第一主机上所述容器中的应用程序后,根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包。采用本发明实施例的技术方案,在对多个应用程序相同的容器进行应用程序的更新时,从多个容器中选择最优容器,并对最优容器内容更新前后的主机运行状态进行监控,进而判断新版本应用程序是否有问题,从而保证容器内应用程序更新的安全性和可靠性。
【专利说明】
用于主机集群的应用程序更新方法、装置及服务器设备
技术领域
[0001]本发明涉及网络通信领域,尤其涉及一种用于主机集群的应用程序更新方法、装置及服务器设备。
【背景技术】
[0002]容器是指应用代码的运行框架,容器一般位于应用服务器之内,由应用服务器负责加载和维护。一个容器只能存在于一个应用服务器之内,一个应用服务器可以建立和维护多个容器。容器内的应用程序需要更新的时候,如果新版本的应用程序有问题,更新后将导致该容器不可用,使得访问该容器的用户将不能使用对应的应用程序。

【发明内容】

[0003]本发明的目的在于提供一种用于主机集群的应用程序更新方法、装置及服务器设备,保证容器内应用程序更新的安全性和可靠性。
[0004]根据本发明的一方面,提供一种用于主机集群的应用程序更新方法,所述方法包括:获取应用程序更新包;从主机集群当中设有运行应用程序的容器的主机中选择运行状态最优的第一主机;将所述应用程序更新包替换所述第一主机上所述容器中的应用程序后,根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包。
[0005]根据本发明的另一方面,还提供一种用于主机集群的应用程序更新装置,所述装置包括:获取单元,用于获取应用程序更新包;选择单元,用于从主机集群当中设有运行应用程序的容器的主机中选择运行状态最优的第一主机;更新单元,用于将所述应用程序更新包替换所述第一主机上所述容器中的应用程序后,根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包。
[0006]根据本发明的另一方面,还提供一种服务器设备,所述服务器设备包括:存储器,用于存放程序;处理器,用于执行所述存储器存储的程序,所述程序使得所述处理器执行如前所述的用于主机集群的应用程序更新方法的指令。
[0007]采用本发明实施例的技术方案,在对多个应用程序相同的容器进行应用程序的更新时,为了避免新版本的应用程序有问题,更新后将导致该容器不可用,使得访问该容器的用户将不能使用对应的应用程序的情况,从多个容器中选择最优容器,并对最优容器内容更新前后的主机运行状态进行监控,进而判断新版本应用程序是否有问题,从而保证容器内应用程序更新的安全性和可靠性。
【附图说明】
[0008]图1示出本发明实施例一中一种主机集群的结构示意图;
[0009]图2示出本发明实施例一中一种用于主机集群的应用程序更新方法的流程示意图;
[0010]图3示出本发明实施例三中一种用于主机集群的应用程序更新装置的结构示意图;
[0011]图4示出本发明实施例四提供的一种服务器设备400的结构示意图。
【具体实施方式】
[0012]下面结合附图(若干附图中相同的标号表示相同的元素)和实施例,对本申请的【具体实施方式】作进一步详细说明。以下实施例用于说明本申请,但不用来限制本申请的范围。
[0013]本领域技术人员可以理解,本申请中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
[0014]本领域技术人员可以理解,在本申请【具体实施方式】的方法中,各步骤的序号大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请【具体实施方式】的实施过程构成任何限定。
[0015]实施例一
[0016]图1示出本发明实施例一中一种主机集群的结构示意图。本实施例提出的用于主机集群的应用程序更新方法可以在应用服务器上执行。参见图1,应用服务器110管理多个主机集群120,任一主机集群120中包括多台主机130。
[0017]图2示出本发明实施例一中一种用于主机集群的应用程序更新方法的流程示意图。参见图2,本实施例中的一种用于主机集群的应用程序更新方法包括S210、S220和S230。
[0018]在S210,获取应用程序更新包。
[0019]可选地,从应用程序编辑装置中获取应用程序包更新包,或者从其他服务器上获取应用程序包更新包等等。应用程序编辑装置作为编辑应用程序包更新包的执行主体,可以以软件、硬件或软硬件结合的方式设置在用户设备中,或者,所述应用程序编辑装置本身就是所述用户设备;所述用户设备包括但不限于智能手机、个人计算机设备等。
[0020]应用程序包与特定的应用领域有关,又可分为通用包及专用包两类。通用包根据一些共同需求开发,专用包则是根据用户的具体需求定制的,可以为适合其特殊需要进行修改或变更。
[0021]在S220,从主机集群当中设有运行应用程序的容器的主机中选择运行状态最优的第一主机。
[0022]运行环境参数包中包括调用应用程序的环境变量等参数。对于容器而言,容器为置于容器中的应用程序提供运行环境,容器提供环境接口,通过容器与外部的设备的交互减轻容器中的应用程序的负担。容器可以包括但不限于Linux容器LXC、Docker、Rocket等等。其中,Docker容器用于给处于其中的应用程序组件提供一个运行时环境,使容器内的应用程序直接与容器中的环境变量接口交互,不必关注其它系统问题;Docker容器用于提供给运行在其中的应用程序提供管理功能,置于该容器内的应用程序可以通过现成的接口来获得系统级别的服务。
[0023]其中,所述从主机集群当中设有运行所述应用程序的容器的主机中选择运行状态最优的第一主机的处理包括:按照所述从主机集群当中设有运行所述应用程序的容器的主机中各主机的第二运行状态信息计算各主机对应的性能比例;从所述性能比例大于等于运行状态阈值的主机中查找性能比例最大的第一主机。
[0024]第二运行状态信息包括内存占用量和/或中央处理器(Central ProcessingUnit,CPU)占用量。其中,内存占用量是指当前内存的使用率,例如一台主机的总内存3.98GB、当前已使用内存2.9GB、当前可使用内存1.08GB,内存占用量为72%;CPU占用量是指当前CPU的使用率,例如,一台主机的处理器为Intel (R)Core (TM) i3-1210M CPUi2.1GHz,操作系统为Windows 7 Ultimate Edit1n Service Pack I (build 7601) ,64-bit, 当前CPU占用量为12% ;进一步地,运行状态信息还可以包括CPU温度,例如,一台主机的当前显卡温度为33°C,当前主板温度为43°C,当前CPU温度为46°C。
[0025]可选地,对于主机集群中设有运行所述应用程序的容器的主机中任一主机,用100%减去CPU占用量作为该主机的性能比例,先将任一主机的性能比例分别与运行状态阈值比较,得到性能比例大于等于运行状态阈值的主机;再将性能比例大于等于运行状态阈值的主机的性能比例从大到小进行排序,选择排序第一的主机作为第一主机。或者,对于主机集群中设有运行所述应用程序的容器的主机中任一主机,用100%减去内存占用量作为该主机的性能比例,先将任一主机的性能比例分别与运行状态阈值比较,得到性能比例大于等于运行状态阈值的主机;再将性能比例大于等于运行状态阈值的主机的性能比例从大到小进行排序,选择排序第一的主机作为第一主机。或者,对于主机集群中设有运行所述应用程序的容器的主机中任一主机,用100%减去CPU占用量与内存占用量的加权和作为该主机的性能比例,先将任一主机的性能比例分别与运行状态阈值比较,得到性能比例大于等于运行状态阈值的主机;再将性能比例大于等于运行状态阈值的主机的性能比例从大到小进行排序,选择排序第一的主机作为第一主机。
[0026]在S230,将所述应用程序更新包替换所述第一主机上所述容器中的应用程序后,根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包。
[0027]具体的,所述应用程序更新包替换所述第一主机上所述容器中的应用程序的处理包括:获取所述第一主机上所述容器对应的应用程序,并向所述第一主机发送删除所述应用程序的命令;向所述第一主机发送所述应用程序更新包。第一主机接收到删除所述应用程序的命令之后,将该应用程序备份到应用服务器,或者备份到其他服务器或者备份到其他终端设备上,并删除本地容器中的应用程序。
[0028]具体地,所述根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包的处理包括:当所述容器运行所述应用程序更新包后,获取所述第一主机的第一运行状态信息;如果所述第一运行状态信息出现异常,则向所述第一主机发送删除所述应用程序更新包的命令,并向所述第一主机发送所述应用程序。
[0029]可选地,如果所述第一运行状态信息未出现异常,则确定所述应用程序更新包正常,在第一主机上包括所述应用程序更新包。
[0030]进一步地,如果所述第一运行状态信息未出现异常,则向所述主机集群当中设有运行应用程序的容器的其他主机发送所述应用程序更新包。
[0031]可选地,所述第一运行状态信息包括内存占用量和/或CPU占用量。相应地,所述第一运行状态信息出现异常是指所述内存占用量大于内存运行阈值(内存运行阈值可以根据容器中应用程序的类型确定,例如设定内存运行阈值为70%)和/或所述CPU占用量大于CPU运行阈值(CHJ运行阈值可以根据容器中应用程序的类型确定,例如设定CTU运行阈值为60%)。可以设定第一主机的内存占用量大于内存运行阈值时即表示第一运行状态信息出现异常,或者设定第一主机的CPU占用量大于CPU运行阈值即表示第一运行状态信息出现异常,或者设定第一主机的内存占用量大于内存运行阈值且第一主机的CPU占用量大于CPU运行阈值两个条件同时满足时即表示第一运行状态信息出现异常。
[0032]采用本发明实施例的技术方案,在对多个应用程序相同的容器进行应用程序的更新时,为了避免新版本的应用程序有问题,更新后将导致该容器不可用,使得访问该容器的用户将不能使用对应的应用程序的情况,从多个容器中选择最优容器,并对最优容器内容更新前后的主机运行状态进行监控,进而判断新版本应用程序是否有问题,从而保证容器内应用程序更新的安全性和可靠性。
[0033]实施例二
[0034]图3示出本发明实施例二中一种用于主机集群的应用程序更新装置的结构示意图。
[0035]本实施例提供的一种用于主机集群的应用程序更新装置用于执行实施例一中的任一种用于主机集群的应用程序更新方法。参见图3,本实施例中的一种用于主机集群的应用程序更新装置包括获取单元310、选择单元320和更新单元330。
[0036]获取单元310用于获取应用程序更新包。
[0037]选择单元320用于从主机集群当中设有运行应用程序的容器的主机中选择运行状态最优的第一主机。
[0038]更新单元330用于将所述应用程序更新包替换所述第一主机上所述容器中的应用程序后,根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包。
[0039]进一步地,所述更新单元具体用于获取所述第一主机上所述容器对应的应用程序,并向所述第一主机发送删除所述应用程序的命令;向所述第一主机发送所述应用程序更新包。
[0040]进一步地,所述更新单元具体用于当所述容器运行所述应用程序更新包后,获取所述第一主机的第一运行状态信息;如果所述第一运行状态信息出现异常,则向所述第一主机发送删除所述应用程序更新包的命令,并向所述第一主机发送所述应用程序。
[0041]进一步地,所述更新单元还用于如果所述第一运行状态信息未出现异常,则确定所述应用程序更新包正常。
[0042]进一步地,所述更新单元还用于如果所述第一运行状态信息未出现异常,则向所述主机集群当中设有运行应用程序的容器的其他主机发送所述应用程序更新包。
[0043]进一步地,所述第一运行状态信息包括内存占用量和/或CPU占用量。
[0044]进一步地,所述第一运行状态信息出现异常是指所述内存占用量大于内存运行阈值和/或所述CHJ占用量大于CPU运行阈值。
[0045]进一步地,所述选择单元具体用于按照所述从主机集群当中设有运行所述应用程序的容器的主机中各主机的第二运行状态信息计算各主机对应的性能比例;从所述性能比例大于等于运行状态阈值的主机中查找性能比例最大的第一主机。
[0046]采用本发明实施例的技术方案,在对多个应用程序相同的容器进行应用程序的更新时,为了避免新版本的应用程序有问题,更新后将导致该容器不可用,使得访问该容器的用户将不能使用对应的应用程序的情况,从多个容器中选择最优容器,并对最优容器内容更新前后的主机运行状态进行监控,进而判断新版本应用程序是否有问题,从而保证容器内应用程序更新的安全性和可靠性。
[0047]实施例三
[0048]图4示出本发明实施例三提供的一种服务器设备400的结构示意图。本申请具体实施例并不对服务器设备400的具体实现做限定。参见图4,该服务器400可以包括:
[0049]处理器(processor)410、通信接口(Communicat1nsInterface)420、存储器(memory)430以及通信总线440。其中:
[0050]处理器410、通信接口 420以及存储器430通过通信总线440完成相互间的通信。
[0051 ]通信接口 420,用于与比如客户端等的网元通信。
[0052]处理器410,用于执行程序432,具体可以执行上述方法实施例中的相关步骤。
[0053]具体地,程序432可以包括程序代码,所述程序代码包括计算机操作指令。
[0054]处理器410可能是一个中央处理器CPU,或者是特定集成电路(Applicat1nSpecific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
[0055]存储器430,用于存放程序432。存储器430可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序432具体可以用于使得所述服务器设备400执行以下操作:获取应用程序更新包;从主机集群当中设有运行应用程序的容器的主机中选择运行状态最优的第一主机;将所述应用程序更新包替换所述第一主机上所述容器中的应用程序后,根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包。
[0056]程序432中所执行的操作的具体实现可以参见上述实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0057]采用本发明实施例的技术方案,在对多个应用程序相同的容器进行应用程序的更新时,为了避免新版本的应用程序有问题,更新后将导致该容器不可用,使得访问该容器的用户将不能使用对应的应用程序的情况,从多个容器中选择最优容器,并对最优容器内容更新前后的主机运行状态进行监控,进而判断新版本应用程序是否有问题,从而保证容器内应用程序更新的安全性和可靠性。
[0058]需要指出,根据实施的需要,可将本申请中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明的目的。
[0059]上述根据本发明的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD R0M、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
[0060]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1.一种用于主机集群的应用程序更新方法,所述方法包括: 获取应用程序更新包; 从主机集群当中设有运行应用程序的容器的主机中选择运行状态最优的第一主机; 将所述应用程序更新包替换所述第一主机上所述容器中的应用程序后,根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包。2.根据权利要求1所述的方法,其中,所述应用程序更新包替换所述第一主机上所述容器中的应用程序的处理包括: 获取所述第一主机上所述容器对应的应用程序,并向所述第一主机发送删除所述应用程序的命令; 向所述第一主机发送所述应用程序更新包。3.根据权利要求2所述的方法,其中,所述根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包的处理包括: 当所述容器运行所述应用程序更新包后,获取所述第一主机的第一运行状态信息; 如果所述第一运行状态信息出现异常,则向所述第一主机发送删除所述应用程序更新包的命令,并向所述第一主机发送所述应用程序。4.根据权利要求3所述的方法,其中,所述方法还包括: 如果所述第一运行状态信息未出现异常,则确定所述应用程序更新包正常。5.根据权利要求4所述的方法,其中,所述方法还包括: 如果所述第一运行状态信息未出现异常,则向所述主机集群当中设有运行应用程序的容器的其他主机发送所述应用程序更新包。6.根据权利要求5所述的方法,其中,所述第一运行状态信息包括内存占用量和/SCPU占用量。7.根据权利要求6所述的方法,其中,所述第一运行状态信息出现异常是指所述内存占用量大于内存运行阈值和/或所述(PU占用量大于CPU运行阈值。8.根据权利要求7所述的方法,其中,所述从主机集群当中设有运行所述应用程序的容器的主机中选择运行状态最优的第一主机的处理包括: 按照所述从主机集群当中设有运行所述应用程序的容器的主机中各主机的第二运行状态信息计算各主机对应的性能比例; 从所述性能比例大于等于运行状态阈值的主机中查找性能比例最大的第一主机。9.一种用于主机集群的应用程序更新装置,所述装置包括: 获取单元,用于获取应用程序更新包; 选择单元,用于从主机集群当中设有运行应用程序的容器的主机中选择运行状态最优的第一主机; 更新单元,用于将所述应用程序更新包替换所述第一主机上所述容器中的应用程序后,根据所述第一主机运行是否正常确定在所述第一主机上是否保留所述应用程序更新包。10.根据权利要求9所述的装置,其中,所述更新单元具体用于获取所述第一主机上所述容器对应的应用程序,并向所述第一主机发送删除所述应用程序的命令;向所述第一主机发送所述应用程序更新包。11.根据权利要求10所述的装置,其中,所述更新单元具体用于当所述容器运行所述应用程序更新包后,获取所述第一主机的第一运行状态信息;如果所述第一运行状态信息出现异常,则向所述第一主机发送删除所述应用程序更新包的命令,并向所述第一主机发送所述应用程序。12.根据权利要求11所述的装置,其中,所述更新单元还用于如果所述第一运行状态信息未出现异常,则确定所述应用程序更新包正常。13.根据权利要求12所述的装置,其中,所述更新单元还用于如果所述第一运行状态信息未出现异常,则向所述主机集群当中设有运行应用程序的容器的其他主机发送所述应用程序更新包。14.根据权利要求13所述的装置,其中,所述第一运行状态信息包括内存占用量和/或CPU占用量。15.根据权利要求14所述的装置,其中,所述第一运行状态信息出现异常是指所述内存占用量大于内存运行阈值和/或所述(PU占用量大于CPU运行阈值。16.根据权利要求15所述的装置,其中,所述选择单元具体用于按照所述从主机集群当中设有运行所述应用程序的容器的主机中各主机的第二运行状态信息计算各主机对应的性能比例;从所述性能比例大于等于运行状态阈值的主机中查找性能比例最大的第一主机。17.一种服务器设备,所述服务器设备包括: 存储器,用于存放程序; 处理器,用于执行所述存储器存储的程序,所述程序使得所述处理器执行如权利要求1至8任一项所述的用于主机集群的应用程序更新方法的指令。
【文档编号】G06F9/445GK105975295SQ201610263995
【公开日】2016年9月28日
【申请日】2016年4月25日
【发明人】李昂, 张 杰
【申请人】乐视控股(北京)有限公司, 乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1