CN105159759B - 应用实例部署方法和装置 - Google Patents
应用实例部署方法和装置 Download PDFInfo
- Publication number
- CN105159759B CN105159759B CN201510549206.4A CN201510549206A CN105159759B CN 105159759 B CN105159759 B CN 105159759B CN 201510549206 A CN201510549206 A CN 201510549206A CN 105159759 B CN105159759 B CN 105159759B
- Authority
- CN
- China
- Prior art keywords
- application example
- host
- deployment
- application
- information
- 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
- Stored Programmes (AREA)
Abstract
本发明提供一种应用实例部署方法和装置。包括:获取应用实例部署信息,所述应用实例部署信息包括:部署所述应用实例的主机信息、第i个主机中部署所述应用实例的数量Ni,所述主机信息包括所需所述主机数量M、所述主机的配置信息,所述M和所述Ni均为大于等于1的正整数,所述i=1,…,M;然后,根据所述主机信息确定所述主机;最后,根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,且所述主机中仅部署相同类型的所述应用实例。其中,通过在确定的主机中仅部署相同类型的应用实例,从而有效提高了主机的资源利用率以及对应用实例的有效伸缩。
Description
技术领域
本发明涉及云计算技术,尤其涉及一种应用实例部署方法和装置。
背景技术
资源利用率是指运行在主机(物理机或虚拟机)上的应用能够使用最大资源比例,例如:一个主机的内存为8GB,其上运行的应用实例最大使用内存是4GB,那么此主机的资源利用率为50%。
当前业界一般通过应用合设来提高资源利用率,也即,将多个应用实例部署在一个主机上。
通过上述方式虽然可以提升主机的资源利用率,但无法有效完成主机中各个应用实例的伸缩操作。
发明内容
本发明实施例提供一种应用实例部署方法和装置,以克服现有技术中无法有效完成主机中各个应用实例的伸缩操作。
本发明第一方面提供一种应用实例部署方法,包括:
获取应用实例部署信息,所述应用实例部署信息包括:部署所述应用实例的主机信息、第i个主机中部署所述应用实例的数量Ni,所述主机信息包括所需所述主机的数量M和所述主机的配置信息,所述M和所述Ni均为大于等于1的正整数,所述i=1,…,M;
根据所述主机信息确定所述主机;
根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,且所述主机中仅部署相同类型的所述应用实例。
结合第一方面,在第一方面的第一种可能的实现方式中,所述应用实例部署信息中还包括:所述应用实例的原始部署路径信息,
若所述Ni大于等于2,所述根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,包括:
在第i个所述主机中根据所述原始部署路径信息部署第一个所述应用实例;
根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息,所述N=1,2,…,Ni;
根据所述第N部署路径信息部署第N个所述应用实例。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息,包括:
将所述原始部署路径信息的最后一位替换为所述N得到用于部署第N个所述应用实例的第N部署路径信息。
结合第一方面、第一方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述应用实例部署信息中还包括:所述应用实例的原始端口号,
若所述Ni大于等于2,所述根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,还包括:
在第i个所述主机中部署的第一个所述应用实例的端口号为所述原始端口号;
根据所述原始端口号确定在第i个所述主机中部署的第N个所述应用实例的端口号,所述N=1,2,…,Ni。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述原始端口号确定在第i个所述主机中部署的第N个所述应用实例的端口号,包括:
将所述原始端口号加上所述N得到在第i个所述主机中部署的第N个所述应用实例的端口号。
结合第一方面、第一方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例之后,还包括:
获取部署的应用集群的关键性能指标KPI,所述应用集群包括所有所述应用实例;
根据所述关键性能指标KPI确定是否需要对所述应用集群执行伸缩操作;
若需要,则对所述应用集群执行伸缩操作。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述对所述应用集群执行伸缩操作,包括:
判断对所述应用集群执行伸展操作还是收缩操作;
若执行伸展操作,
确定执行伸展操作的主机,并在所述执行伸展操作的主机中部署第j个所述应用实例,所述j=Ni+1,Ni+2,…,Ni+F,所述F为应伸展的所述应用实例的数量,且F为大于等于1的正整数;
若执行收缩操作;
确定执行收缩操作的主机,并删除所述执行收缩操作的主机中的一个或多个所述应用实例。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述在所述执行伸展操作的主机中部署第j个所述应用实例,包括:
将所述原始端口号加上所述j得到在所述执行伸展操作的主机中部署的第j个所述应用实例的端口号。
将所述原始部署路径信息的最后一位替换为所述j得到用于在所述执行伸展操作的主机中部署第j个所述应用实例的第j部署路径信息;
根据所述第j部署路径信息在所述执行伸展操作的主机中部署第j个所述应用实例。
结合第一方面的第六或第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述根据所述关键性能指标KPI确定是否需要对所述应用集群执行伸缩操作,包括:
若所述KPI是否在第一预设阈值和第二预设阈值之间,则确定需要对所述应用集群执行伸缩操作,其中,所述第二预设阈值大于所述第一预设阈值;
所述判断对所述应用集群执行伸展操作还是收缩操作,包括:
若所述KPI小于所述第一预设阈值,则确定对所述应用集群执行收缩操作;
若所述KPI大于所述第二预设阈值,则确定对所述应用集群执行伸展操作。
本发明第二方面提供一种应用实例部署装置,包括:
获取模块,用于获取应用实例部署信息,所述应用实例部署信息包括:部署所述应用实例的主机信息、第i个主机中部署所述应用实例的数量Ni,所述主机信息包括所需所述主机的数量M和所述主机的配置信息,所述M和所述Ni均为大于等于1的正整数,所述i=1,…,M;
处理模块,用于根据所述主机信息确定所述主机;
部署模块,用于根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,且所述主机中仅部署相同类型的所述应用实例。
结合第二方面,在第二方面的第一种可能的实现方式中,所述应用实例部署信息中还包括:所述应用实例的原始部署路径信息,
若所述Ni大于等于2,所述部署模块具体用于:
在第i个所述主机中根据所述原始部署路径信息部署第一个所述应用实例;
根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息,所述N=1,2,…,Ni;
根据所述第N部署路径信息部署第N个所述应用实例。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述部署模块具体用于:
将所述原始部署路径信息的最后一位替换为所述N得到用于部署第N个所述应用实例的第N部署路径信息。
结合第二方面、第二方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述应用实例部署信息中还包括:所述应用实例的原始端口号,
若所述Ni大于等于2,所述部署模块还用于:
在第i个所述主机中部署的第一个所述应用实例的端口号为所述原始端口号;
根据所述原始端口号确定在第i个所述主机中部署的第N个所述应用实例的端口号,所述N=1,2,…,Ni。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述部署模块具体用于:
将所述原始端口号加上所述N得到在第i个所述主机中部署的第N个所述应用实例的端口号。
结合第二方面、第二方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述获取模块,还用于在所述部署模块根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例之后,获取部署的应用集群的关键性能指标KPI,所述应用集群包括所有所述应用实例;
所述处理模块,还用于根据所述关键性能指标KPI确定是否需要对所述应用集群执行伸缩操作;
若需要,则对所述应用集群执行伸缩操作。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述处理模块具体用于:
判断对所述应用集群执行伸展操作还是收缩操作;
若执行伸展操作,
确定执行伸展操作的主机,并在所述执行伸展操作的主机中部署第j个所述应用实例,所述j=Ni+1,Ni+2,…,Ni+F,所述F为应伸展的所述应用实例的数量,且F为大于等于1的正整数;
若执行收缩操作;
确定执行收缩操作的主机,并删除所述执行收缩操作的主机中的一个或多个所述应用实例。
结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述处理模块具体用于:
将所述原始端口号加上所述j得到在所述执行伸展操作的主机中部署的第j个所述应用实例的端口号。
将所述原始部署路径信息的最后一位替换为所述j得到用于在所述执行伸展操作的主机中部署第j个所述应用实例的第j部署路径信息;
根据所述第j部署路径信息在所述执行伸展操作的主机中部署第j个所述应用实例。
结合第二方面的第六或第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述处理模块具体用于:
若所述KPI是否在第一预设阈值和第二预设阈值之间,则确定需要对所述应用集群执行伸缩操作,其中,所述第二预设阈值大于所述第一预设阈值;
所述判断对所述应用集群执行伸展操作还是收缩操作,包括:
若所述KPI小于所述第一预设阈值,则确定对所述应用集群执行收缩操作;
若所述KPI大于所述第二预设阈值,则确定对所述应用集群执行伸展操作。
本发明中,首先,获取应用实例部署信息,所述应用实例部署信息包括:部署所述应用实例的主机信息、第i个主机中部署所述应用实例的数量Ni,所述主机信息包括所需所述主机数量M、所述主机的配置信息,所述M和所述Ni均为大于等于1的正整数,所述i=1,…,M;然后,根据所述主机信息确定所述主机;最后,根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,且所述主机中仅部署相同类型的所述应用实例。其中,通过在确定的主机中仅部署相同类型的应用实例,从而有效提高了主机的资源利用率以及对应用实例的有效伸缩。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1所示为期望与实际中应用实例与主机规格的对应关系;
图2所示为采用应用合设的方法后应用实例与主机规格的对应关系;
图3所示为云计算的系统架构图;
图4所示为本发明实施例提供的应用实例部署方法的流程图;
图5所示为合设前与合设后的网络规划示意图;
图6所示为本发明实施例提供的应用实例部署装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为自互联网革命以来信息技术(Information Technology,简称为:IT)产业最深刻的变革,云计算实现了业务对底层资源的屏蔽。云计算中的资源利用率是业界一直关注的焦点。
其中,资源利用率是指运行在主机(物理机或虚拟机)上的应用能够使用最大资源比例,资源利用率和应用实例、主机规格密切相关。
例如:一个规格是8GB内存主机,其上运行有一个应用实例,该应用实例最大使用内存是4GB,那么我们认为此主机的内存资源利用率为50%,也即,此主机中有50%的资源被浪费。
在一种猜想中,如果主机规格可以任意指定、或者应用实例可以使用任意大的资源,那么资源利用率可以简单保障至一个较高的水平,也即,主机中的资源不会得到浪费。但现实情况下此两点约束不一定都能满足,例如:主机是已经采购的物理机,其规格不能再变更;或者应用实例所需要的资源受约束,太大的资源也无法使用。
图1所示为期望与实际中应用实例与主机规格的对应关系,如图1所示,一个WebApp由Java语言编写,考虑到Java语言特定的垃圾回收机制,其最大使用内存不超过16G,若仅能提供16G内存的主机,则该主机的资源使用率可以达到100%;但现实情况是设备已经存在,比如其内存是64G的规格,按此计算,其资源使用率只能达到25%。
当前业界提升资源利用率的方式一般通过应用合设完成,例如:一个完整的解决方案由多个应用实例构成,如果主机的规格过大,则把多个应用实例部署在一个主机上,以提升资源利用率。
图2所示为采用应用合设的方法后应用实例与主机规格的对应关系,如图2所示,期望中WebApp、OHApp、PCApp以及OMApp分别需要分配16G内存的主机,当前有内存规格为64G的主机,如果在主机上仅部署上述四个应用其中一个,则该主机的资源利用率仅为25%,为了提高主机的资源利用率,可将WebApp、OHApp、PCbApp以及OMApp全都部署到该主机中,此时可将该主机的资源利用率提升至100%。
在云场景下,对应用实例执行伸缩操作作为一个重要特性被加入,按照上述应用合设的方法虽然可以提升主机的资源利用率,但由于多个应用实例合设在同一主机下,无法有效准确的对同一主机内的各个应用实例进行有效的伸缩。
具体的,如图2所示,在应用合设前,每一个应用实例集群(部署的同一类应用实例的总称)均对应一种特定的伸缩条件,但是在合设后,本应用实例集群的伸缩条件会对主机上的所有的应用实例集群同时生效,由于各个应用实例集群的伸缩条件可能发生冲突,从而导致伸缩过程出现异常或达不到预期目的,比如:WebApp对应的伸缩条件是CPU占用率大于等于50%伸展,而OHApp对应的伸缩条件是CPU占用率小于等于50%收缩,在合设前,各个应用实例均能按照各自对应的伸缩规则进行伸缩操作,但在合设后,当CPU占用率等于50%时无法确定是执行伸展操作还是收缩操作,从而无法准确的对WebApp和OHApp进行有效的伸缩操作。在另一种场景中,即使主机中的所有应用实例集群对应的伸缩条件不发生冲突,同样会增加伸缩的时延,比如:WebApp对应的伸缩条件是CPU占用率大于等于50%伸展,并且其他三个应用实例的伸缩条件与WebApp的伸缩条件不冲突,主机在运行的过程中,当CPU占用率大于等于50%时,原来的伸缩条件是只需要在该主机中增加一个WebApp,但由于该主机中本身部署了4个应用实例,所以在增加WebApp的同时,会在该主机中增加OHApp、PCbApp以及OMApp,也即,该主机中会增加4个应用实例,但在实际应用中,并没有增加其他三个应用实例的需求,在该种情况下,由于增加了4个应用实例,该过程所需的时延大于仅增加一个应用实例的时延,从而增加了伸缩操作的时间,从而无法准确的对各个应用实例进行有效的伸缩操作。
基于上述问题,发明人在研究中发现,可以通过在单台主机上部署多份相同的应用实例,从而可以有效避免在增加主机资源利用率的同时无法准确的对同一主机内的各个应用实例执行有效的伸缩操作的问题。
下面采用几个具体的实施例,对本发明的技术方案进行详细说明。
本实施例的方法可以应用于图3所示的云计算的系统架构图。
如图3所示,该云计算的系统架构图中包含I层资源管理系统、P层应用管理系统,以及它所管理的物理机(PhysicalMachine,简称为:PM)(多个PM:PMA到PMN)、虚拟机(VirtualMachine简称为:VM)(多个VM:VMA到VMN)、多个应用(Application)(应用A到应用N),其中,应用部署在物理机或虚拟机上。
I层资源管理系统用于执行常规的PM或VM操作,如申请、释放、启动、停止等,P层应用管理系统与I层资源管理系统通过接口调用以执行PM或VM相关操作,同时P层应用管理系统还管理应用、PM、VM,并维护应用实例、PM或VM之间的关系(PM或VM上有哪些应用在运行);通过获取PM或VM规格(中央处理器CPU核数、内存大小、磁盘大小)与应用实例所需的资源中的信息(CPU核数、内存大小、磁盘大小)进行分析,以确定符合应用实例需求的PM或VM。
实施例一
图4所示为本发明实施例提供的应用实例部署方法的流程图,本实施例的方法可以包括:
步骤101、获取应用实例部署信息,应用实例部署信息包括:部署应用实例的主机信息、第i个主机中部署应用实例的数量Ni,主机信息包括所需主机数量M、主机的配置信息,M和Ni均为大于等于1的正整数,i=1,…,M。
具体的,管理员可以在规划设计阶段根据业务的具体需求设置应用实例部署信息,应用实例部署信息包括部署所述应用实例所需的主机数量和主机的配置信息、每个主机中应该部署的应用实例的数量,并根据此应用实例部署信息生成规划设计文件。
当获取到该规划设计文件后,得到其中的应用实例部署信息,并根据该应用实际部署信息部署应用实例。
例如:该应用实例部署信息可以为:需要两个64G的主机,每个主机部署3个WebApp,或,需要两个64G的主机,其中一个主机部署3个WebApp,另一个主机部署4个WebApp等。
步骤102、根据主机信息确定主机。
其中,主机的配置信息可以为:主机的CPU的核数、内存的大小以及磁盘的大小。
根据应用实例部署信息中的主机的配置信息以及主机的数量在系统中的多个主机中匹配与上述应用实例部署信息中的主机的配置信息匹配的主机,其中,根据主机信息确定主机的方法与现有技术中相同,此处不再赘述。
步骤103、根据应用实例部署信息在第i个主机中部署Ni个应用实例,且主机中仅部署相同类型的应用实例。
当确定了可以部署应用实例的主机后,在该些主机中根据应用实例部署信息部署应用实例。
由于在确定的主机中部署多个相同的应用实例,从而有效提高了主机的资源利用率,并且每个主机中仅部署相同类型的应用实例,由于该些应用实例的伸缩条件均相同,从而在增加主机资源利用率的同时还可以准确的对同一主机内的各个应用实例执行有效的伸缩操作。
本实施例中,首先,获取应用实例部署信息,所述应用实例部署信息包括:部署所述应用实例的主机信息、第i个主机中部署所述应用实例的数量Ni,所述主机信息包括所需所述主机数量M、所述主机的配置信息,所述M和所述Ni均为大于等于1的正整数,所述i=1,…,M;然后,根据所述主机信息确定所述主机;最后,根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,且所述主机中仅部署相同类型的所述应用实例。其中,通过在确定的主机中仅部署相同类型的应用实例,从而有效提高了主机的资源利用率以及对应用实例的有效伸缩。
如果应用实例在同一机器上部署多次时,第二次会覆盖掉第一次部署的,要不覆盖,需要部署在不同的主机中,因此现有技术都是将同一类型的应用实例部署在不同的主机中,为解决在同一主机中部署各个应用实例相互覆盖的情况,本发明中,当在某个主机i中部署的应用实例的数量Ni大于等于2时,首先在该主机i中根据所述原始部署路径信息部署第一个所述应用实例,然后根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息,所述N=1,2,…,Ni,最后根据所述第N部署路径信息部署第N个所述应用实例。
其中,根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息的一种可实现的方式为:将所述原始部署路径信息的最后一位替换为所述N得到用于部署第N个所述应用实例的第N部署路径信息,例如:当前部署第3个应用实例,则将原始部署路径信息中的的最后一位替换为3;可选的,还可以为将原始部署路径信息+3后缀。
上述原始路径部署信息可以携带在应用实例部署信息中。
本方法可以有效避免在同一主机中部署多个应用实例时,出现的应用实例相互覆盖的问题,提高了主机的资源利用率。
现有技术中,由于应用实例进行了合设,因此各个应用实例之间的网络连接、端口规划等都发生了变化,需要重新规划,图5所示为合设前与合设后的网络规划示意图,如图5所示,合设前每个应用实例使用80端口通过交换机互联通信,合设后为避免端口号冲突,需要将各个应用实例的端口号分别变更为80、81、82、83,同时由于是内部通信,交换机的配置也不需要了。若考虑到网络区域问题(安全域、信任域等),实际情况可能更加复杂。而本发明中,由于是在同一主机内仅部署相同类型的应用实例,其网络规划(端口、连接等)无需变动。
在某个主机i中部署的应用实例的数量Ni大于等于2时,仅需要为每个应用实例分配端口号,本发明中,在第i个主机中部署的第一个应用实例的端口号为原始端口号;然后,根据原始端口号确定在第i个主机中部署的第N个应用实例的端口号,N=1,2,…,Ni。
其中,根据原始端口号确定在第i个主机中部署的第N个应用实例的端口号的一种可实现方式为:将原始端口号加上N得到在第i个主机中部署的第N个应用实例的端口号。例如:在部署第3个应用实例时,该应用实例的端口号为原始端口号+3。
上述原始端口号可以携带在应用实例部署信息中。
值得注意的是,当主机中部署多个应用实例时,本发明中并不对部署的路径信息的生成方式以及端口号的生成方式加以限制,上述只是一种举例。
应用伸缩操作是云计算的基本特征之一,它是指应用根据实际业务或计算需要,灵活地使用云资源,真正实现按需使用。例如:特定应用可能需要100个应用实例来处理其峰值工作负载,但是可能仅需要40个应用实例来处理其平均工作负载,在上述例子中,应用可以被配置为使用40个应用实例来操作,但是此配置将会不能适应应用的峰值工作负载,同样,应用可以被配置为一直使用100个应用实例来操作,但是此配置将会导致资源的低效使用,因为部分应用实例可能在非峰值工作负载期间处于空闲或未被充分利用,从到导致应用资源浪费,弹性云计算可以通过控制云平台上各应用运行的应用实例的数量来支持不同负载的业务,当外界对应用的访问请求增多时,可通过复制更多的应用实例,来增强应用的运行能力,反之,当外界对应用的访问请求减少时,为避免资源浪费,则减少应用的应用实例数,从而可以将节省下的资源用于其他应用的需求,从而实现云计算系统资源的有效利用。
在本发明实施例中,在完成应用集群部署(部署的所有的相同类型的应用实例构成一个应用集群)后,启动应用集群中的各个应用实例,执行相应的功能,在该些应用实例工作的过程中,为了有效节省系统资源,还需要对应用集群进行监控,如果当前的业务无需过多的应用实例,系统会减小应用实例的数量,以减小主机的资源开销,如果当前的业务需要过多的应用实例,系统会增加应用实例的数量,来增强应用实例的运行能力,满足应用运行的需求。
例如:若监测应用每秒收到的超文本传输协议(HyperText Transfer Protocol,简称为:HTTP)访问请求数大于100时,则在当前运行应用中增加一个实例;当HTTP访问量大于150时,又增加一个实例,以次类推,应用最多可以有10个实例。若监测应用每秒收到的HTTP访问请求数少于50时,则减少1个实例,应用最少为2个实例。
本发明中通过判断应用集群的关键性能指标KPI来确定是否需要对该应用集群执行伸缩操作,如果需要,则对应用集群执行伸缩操作。
其中,如果判断结果为需要对应用集群执行伸缩操作,则还需要:判断对应用集群执行伸展操作还是收缩操作,若执行伸展操作,则确定执行伸展操作的主机,并在执行伸展操作的主机中部署第j个应用实例,j=Ni+1,Ni+2,…,Ni+F,F为应伸展的应用实例的数量,且F为大于等于1的正整数;若执行收缩操作,则确定执行收缩操作的主机,并删除执行收缩操作的主机中的一个或多个应用实例。
具体的,系统设定第一预设阈值和第二预设阈值,并且所述第二预设阈值大于所述第一预设阈值,当系统判断KPI在该第一预设阈值和第二预设阈值之间,则确定不需要对该应用集群执行伸缩操作,如果系统判断KPI不在该第一预设阈值和第二预设阈值之间,则确定需要对该应用集群执行伸缩操作,然后系统会进一步KPI是小于第一预设阈值还是大于第二预设阈值,当KPI是小于第一预设阈值时,则确定对所述应用集群执行收缩操作,当KPI是大于第二预设阈值时,则确定对所述应用集群执行伸展操作。
当系统确定需要对应用集群执行伸展操作时,还需确定需要执行伸展操作的主机,该主机的确定可以提前在系统中预设规则,比如,可以为确定部署应用实例较少的主机为该需要执行伸展操作的主机,或部署第一个应用实例的主机为需要执行伸展操作的主机等,也可以为系统随机的在多个主机中选择一个主机作为需要执行伸展操作的主机。
相应的,当系统确定需要对应用集群执行收缩操作时,还需确定需要执行收缩操作的主机,该主机的确定可以提前在系统中预设规则,比如,可以为确定部署应用实例较多的主机为该需要执行收缩操作的主机,或部署第一个应用实例的主机为需要执行收缩操作的主机等,也可以为系统随机的在多个主机中选择一个主机作为需要执行收缩操作的主机。
上述在需要执行伸展操作的主机中增加应用实例的方法与在该主机中部署第2个以后的应用实例的方法相同,也即,继续按照上述描述,将原始端口号加上j得到在执行伸展操作的主机中部署的第j个应用实例的端口号。将原始部署路径信息的最后一位替换为j得到用于在执行伸展操作的主机中部署第j个应用实例的第j部署路径信息;根据第j部署路径信息在执行伸展操作的主机中部署第j个应用实例。具体执行方法详见上述描述。
其中不同类型的应用实例对应不同的KPI,各种类型应用实例对应的KPI与现有技术中相同。
本实施例中,由于主机中的应用实例类型均相同,从而伸缩条件相同,伸缩过程中,只需按需增减相应的应用实例的数量,无需额外的增加其他的应用实例,从而可以对应用实例进行有效的伸缩操作。
实施例二
图6所示为发明实施例提供的应用实例部署装置的结构示意图,如图6所示,该应用实例部署装置包括:获取模块201、处理模块202和部署模块203,
获取模块201,用于获取应用实例部署信息,所述应用实例部署信息包括:部署所述应用实例的主机信息、第i个主机中部署所述应用实例的数量Ni,所述主机信息包括所需所述主机数量M、所述主机的配置信息,所述M和所述Ni均为大于等于1的正整数,所述i=1,…,M;
处理模块202,用于根据所述主机信息确定所述主机;
部署模块203,用于根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,且所述主机中仅部署相同类型的所述应用实例。
可选的,所述应用实例部署信息中还包括:所述应用实例的原始部署路径信息,
若所述Ni大于等于2,所述部署模块203具体用于:
在第i个所述主机中根据所述原始部署路径信息部署第一个所述应用实例;
根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息,所述N=1,2,…,Ni;
根据所述第N部署路径信息部署第N个所述应用实例。
可选的,所述部署模块203具体用于:
将所述原始部署路径信息的最后一位替换为所述N得到用于部署第N个所述应用实例的第N部署路径信息。
可选的,所述应用实例部署信息中还包括:所述应用实例的原始端口号,
若所述Ni大于等于2,所述部署模块203还用于:
在第i个所述主机中部署的第一个所述应用实例的端口号为所述原始端口号;
根据所述原始端口号确定在第i个所述主机中部署的第N个所述应用实例的端口号,所述N=1,2,…,Ni。
可选的,所述部署模块203具体用于:
将所述原始端口号加上所述N得到在第i个所述主机中部署的第N个所述应用实例的端口号。
可选的,所述获取模块201,还用于在所述部署模块203根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例之后,获取部署的应用集群的关键性能指标KPI,所述应用集群包括所有所述应用实例;
所述处理模块202,还用于根据所述关键性能指标KPI确定是否需要对所述应用集群执行伸缩操作;
若需要,则对所述应用集群执行伸缩操作。
可选的,所述处理模块202具体用于:
判断对所述应用集群执行伸展操作还是收缩操作;
若执行伸展操作,
确定执行伸展操作的主机,并在所述执行伸展操作的主机中部署第j个所述应用实例,所述j=Ni+1,Ni+2,…,Ni+F,所述F为应伸展的所述应用实例的数量,且F为大于等于1的正整数;
若执行收缩操作;
确定执行收缩操作的主机,并删除所述执行收缩操作的主机中的一个或多个所述应用实例。
可选的,所述处理模块202具体用于:
将所述原始端口号加上所述j得到在所述执行伸展操作的主机中部署的第j个所述应用实例的端口号。
将所述原始部署路径信息的最后一位替换为所述j得到用于在所述执行伸展操作的主机中部署第j个所述应用实例的第j部署路径信息;
根据所述第j部署路径信息在所述执行伸展操作的主机中部署第j个所述应用实例。
可选的,所述处理模块202具体用于:
若所述KPI是否在第一预设阈值和第二预设阈值之间,则确定需要对所述应用集群执行伸缩操作,其中,所述第二预设阈值大于所述第一预设阈值;
所述判断对所述应用集群执行伸展操作还是收缩操作,包括:
若所述KPI小于所述第一预设阈值,则确定对所述应用集群执行收缩操作;
若所述KPI大于所述第二预设阈值,则确定对所述应用集群执行伸展操作。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种应用实例部署方法,其特征在于,包括:
获取应用实例部署信息,所述应用实例部署信息包括:部署所述应用实例的主机信息、第i个主机中部署所述应用实例的数量Ni,所述主机信息包括所需所述主机的数量M和所述主机的配置信息,所述M和所述Ni均为大于等于1的正整数,所述i=1,…,M;
根据所述主机信息确定所述主机;
根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,且所述主机中仅部署相同类型的所述应用实例;
所述应用实例部署信息中还包括:所述应用实例的原始部署路径信息,
若所述Ni大于等于2,所述根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,包括:
在第i个所述主机中根据所述原始部署路径信息部署第一个所述应用实例;
根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息,所述N=1,2,…,Ni;
根据所述第N部署路径信息部署第N个所述应用实例。
2.根据权利要求1所述的方法,其特征在于,所述根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息,包括:
将所述原始部署路径信息的最后一位替换为所述N得到用于部署第N个所述应用实例的第N部署路径信息。
3.根据权利要求1或2所述的方法,其特征在于,所述应用实例部署信息中还包括:所述应用实例的原始端口号,
若所述Ni大于等于2,所述根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,还包括:
在第i个所述主机中部署的第一个所述应用实例的端口号为所述原始端口号;
根据所述原始端口号确定在第i个所述主机中部署的第N个所述应用实例的端口号,所述N=1,2,…,Ni。
4.根据权利要求3所述的方法,其特征在于,所述根据所述原始端口号确定在第i个所述主机中部署的第N个所述应用实例的端口号,包括:
将所述原始端口号加上所述N得到在第i个所述主机中部署的第N个所述应用实例的端口号。
5.根据权利要求1-2、4任一项所述的方法,其特征在于,所述根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例之后,还包括:
获取部署的应用集群的关键性能指标KPI,所述应用集群包括所有所述应用实例;
根据所述关键性能指标KPI确定是否需要对所述应用集群执行伸缩操作;
若需要,则对所述应用集群执行伸缩操作。
6.根据权利要求5所述的方法,其特征在于,所述对所述应用集群执行伸缩操作,包括:
判断对所述应用集群执行伸展操作还是收缩操作;
若执行伸展操作,
确定执行伸展操作的主机,并在所述执行伸展操作的主机中部署第j个所述应用实例,所述j=Ni+1,Ni+2,…,Ni+F,所述F为应伸展的所述应用实例的数量,且F为大于等于1的正整数;
若执行收缩操作;
确定执行收缩操作的主机,并删除所述执行收缩操作的主机中的一个或多个所述应用实例。
7.根据权利要求6所述的方法,其特征在于,所述在所述执行伸展操作的主机中部署第j个所述应用实例,包括:
将原始端口号加上所述j得到在所述执行伸展操作的主机中部署的第j个所述应用实例的端口号;
将所述原始部署路径信息的最后一位替换为所述j得到用于在所述执行伸展操作的主机中部署第j个所述应用实例的第j部署路径信息;
根据所述第j部署路径信息在所述执行伸展操作的主机中部署第j个所述应用实例。
8.根据权利要求6或7所述的方法,其特征在于,所述根据所述关键性能指标KPI确定是否需要对所述应用集群执行伸缩操作,包括:
若所述KPI在第一预设阈值和第二预设阈值之间,则确定不需要对所述应用集群执行伸缩操作,其中,所述第二预设阈值大于所述第一预设阈值;
所述判断对所述应用集群执行伸展操作还是收缩操作,包括:
若所述KPI小于所述第一预设阈值,则确定对所述应用集群执行收缩操作;
若所述KPI大于所述第二预设阈值,则确定对所述应用集群执行伸展操作。
9.一种应用实例部署装置,其特征在于,包括:
获取模块,用于获取应用实例部署信息,所述应用实例部署信息包括:部署所述应用实例的主机信息、第i个主机中部署所述应用实例的数量Ni,所述主机信息包括所需所述主机的数量M和所述主机的配置信息,所述M和所述Ni均为大于等于1的正整数,所述i=1,…,M;
处理模块,用于根据所述主机信息确定所述主机;
部署模块,用于根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例,且所述主机中仅部署相同类型的所述应用实例;
所述应用实例部署信息中还包括:所述应用实例的原始部署路径信息,
若所述Ni大于等于2,所述部署模块具体用于:
在第i个所述主机中根据所述原始部署路径信息部署第一个所述应用实例;
根据所述原始部署路径信息确定用于部署第N个所述应用实例的第N部署路径信息,所述N=1,2,…,Ni;
根据所述第N部署路径信息部署第N个所述应用实例。
10.根据权利要求9所述的应用实例部署装置,其特征在于,所述部署模块具体用于:
将所述原始部署路径信息的最后一位替换为所述N得到用于部署第N个所述应用实例的第N部署路径信息。
11.根据权利要求9或10所述的应用实例部署装置,其特征在于,所述应用实例部署信息中还包括:所述应用实例的原始端口号,
若所述Ni大于等于2,所述部署模块还用于:
在第i个所述主机中部署的第一个所述应用实例的端口号为所述原始端口号;
根据所述原始端口号确定在第i个所述主机中部署的第N个所述应用实例的端口号,所述N=1,2,…,Ni。
12.根据权利要求11所述的应用实例部署装置,其特征在于,所述部署模块具体用于:
将所述原始端口号加上所述N得到在第i个所述主机中部署的第N个所述应用实例的端口号。
13.根据权利要求9-10、12任一项所述的应用实例部署装置,其特征在于,所述获取模块,还用于在所述部署模块根据所述应用实例部署信息在第i个所述主机中部署Ni个所述应用实例之后,获取部署的应用集群的关键性能指标KPI,所述应用集群包括所有所述应用实例;
所述处理模块,还用于根据所述关键性能指标KPI确定是否需要对所述应用集群执行伸缩操作;
若需要,则对所述应用集群执行伸缩操作。
14.根据权利要求13所述的应用实例部署装置,其特征在于,所述处理模块具体用于:
判断对所述应用集群执行伸展操作还是收缩操作;
若执行伸展操作,
确定执行伸展操作的主机,并在所述执行伸展操作的主机中部署第j个所述应用实例,所述j=Ni+1,Ni+2,…,Ni+F,所述F为应伸展的所述应用实例的数量,且F为大于等于1的正整数;
若执行收缩操作;
确定执行收缩操作的主机,并删除所述执行收缩操作的主机中的一个或多个所述应用实例。
15.根据权利要求14所述的应用实例部署装置,其特征在于,所述处理模块具体用于:
将原始端口号加上所述j得到在所述执行伸展操作的主机中部署的第j个所述应用实例的端口号;
将所述原始部署路径信息的最后一位替换为所述j得到用于在所述执行伸展操作的主机中部署第j个所述应用实例的第j部署路径信息;
根据所述第j部署路径信息在所述执行伸展操作的主机中部署第j个所述应用实例。
16.根据权利要求14或15所述的应用实例部署装置,其特征在于,所述处理模块具体用于:
若所述KPI在第一预设阈值和第二预设阈值之间,则确定不需要对所述应用集群执行伸缩操作,其中,所述第二预设阈值大于所述第一预设阈值;
所述判断对所述应用集群执行伸展操作还是收缩操作,包括:
若所述KPI小于所述第一预设阈值,则确定对所述应用集群执行收缩操作;
若所述KPI大于所述第二预设阈值,则确定对所述应用集群执行伸展操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510549206.4A CN105159759B (zh) | 2015-08-31 | 2015-08-31 | 应用实例部署方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510549206.4A CN105159759B (zh) | 2015-08-31 | 2015-08-31 | 应用实例部署方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105159759A CN105159759A (zh) | 2015-12-16 |
CN105159759B true CN105159759B (zh) | 2019-01-08 |
Family
ID=54800623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510549206.4A Active CN105159759B (zh) | 2015-08-31 | 2015-08-31 | 应用实例部署方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159759B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589747B (zh) * | 2016-02-25 | 2018-10-23 | 深圳市创想天空科技股份有限公司 | 应用程序多开的控制方法及系统 |
CN107786587B (zh) * | 2016-08-25 | 2021-02-09 | 华为技术有限公司 | 一种调整应用资源的方法以及云控制器 |
CN110289982B (zh) * | 2019-05-17 | 2022-08-23 | 平安科技(深圳)有限公司 | 容器应用的扩容方法、装置、计算机设备及存储介质 |
CN110457114B (zh) * | 2019-07-24 | 2020-11-27 | 杭州数梦工场科技有限公司 | 应用集群部署方法及装置 |
CN111930392B (zh) * | 2020-07-09 | 2024-02-23 | 北京皮尔布莱尼软件有限公司 | 一种应用服务部署方法、计算设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609309A (zh) * | 2012-01-19 | 2012-07-25 | 中兴通讯股份有限公司 | 一种用于云计算的策略调度系统和方法 |
CN103257683A (zh) * | 2013-05-07 | 2013-08-21 | 华为技术有限公司 | 一种云计算业务伸缩的方法和装置 |
US8762986B2 (en) * | 2008-02-20 | 2014-06-24 | Sap Ag | Advanced packaging and deployment of virtual appliances |
CN104283951A (zh) * | 2014-09-29 | 2015-01-14 | 华为技术有限公司 | 一种实例迁移的方法、装置及系统 |
-
2015
- 2015-08-31 CN CN201510549206.4A patent/CN105159759B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762986B2 (en) * | 2008-02-20 | 2014-06-24 | Sap Ag | Advanced packaging and deployment of virtual appliances |
CN102609309A (zh) * | 2012-01-19 | 2012-07-25 | 中兴通讯股份有限公司 | 一种用于云计算的策略调度系统和方法 |
CN103257683A (zh) * | 2013-05-07 | 2013-08-21 | 华为技术有限公司 | 一种云计算业务伸缩的方法和装置 |
CN104283951A (zh) * | 2014-09-29 | 2015-01-14 | 华为技术有限公司 | 一种实例迁移的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105159759A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159759B (zh) | 应用实例部署方法和装置 | |
EP3380937B1 (en) | Techniques for analytics-driven hybrid concurrency control in clouds | |
CN105025095B (zh) | 实现云计算弹性服务的集群架构 | |
CN103955399B (zh) | 一种虚拟机迁移方法和装置及物理主机 | |
US9430257B2 (en) | Scheduling virtual machines using user-defined rules | |
US10303450B2 (en) | Systems and methods for a policy-driven orchestration of deployment of distributed applications | |
CN107526645B (zh) | 一种通信优化方法及系统 | |
CN110308984B (zh) | 一种用于处理地理分布式数据的跨集群计算系统 | |
CN110677305B (zh) | 一种云计算环境下的自动伸缩方法和系统 | |
CN103176849B (zh) | 一种基于资源分类的虚拟机集群的部署方法 | |
Ubarhande et al. | Novel data-distribution technique for Hadoop in heterogeneous cloud environments | |
CN101799773A (zh) | 并行计算的内存访问方法 | |
CN109726004B (zh) | 一种数据处理方法及装置 | |
CN106293944A (zh) | 虚拟化多核环境下基于非一致性i/o访问系统和优化方法 | |
US11184263B1 (en) | Intelligent serverless function scaling | |
CN110661842A (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
CN103885811B (zh) | 虚拟机系统全系统在线迁移的方法、系统与装置 | |
CN113806097B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
Petrov et al. | Adaptive performance model for dynamic scaling Apache Spark Streaming | |
CN103488538B (zh) | 云计算系统中的应用扩展装置和应用扩展方法 | |
Huang et al. | The improvement of auto-scaling mechanism for distributed database-A case study for MongoDB | |
CN109960579B (zh) | 一种调整业务容器的方法及装置 | |
CN106095335A (zh) | 一种电力大数据弹性云计算存储平台架构方法 | |
CN109271247A (zh) | 内存优化方法、装置、计算机装置以及存储介质 | |
CN107562520A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200217 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 210012 Ande Gate No. 94, Yuhuatai District, Jiangsu, Nanjing Patentee before: Huawei Technologies Co.,Ltd. |