CN102932418B - 一种云应用部署方法和装置 - Google Patents

一种云应用部署方法和装置 Download PDF

Info

Publication number
CN102932418B
CN102932418B CN201210370488.8A CN201210370488A CN102932418B CN 102932418 B CN102932418 B CN 102932418B CN 201210370488 A CN201210370488 A CN 201210370488A CN 102932418 B CN102932418 B CN 102932418B
Authority
CN
China
Prior art keywords
virtual machine
load
functional module
service request
current
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.)
Expired - Fee Related
Application number
CN201210370488.8A
Other languages
English (en)
Other versions
CN102932418A (zh
Inventor
毛军
考明军
张霞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Priority to CN201210370488.8A priority Critical patent/CN102932418B/zh
Publication of CN102932418A publication Critical patent/CN102932418A/zh
Application granted granted Critical
Publication of CN102932418B publication Critical patent/CN102932418B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明实施例公开了一种云应用部署方法和装置,该方法具体为,获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载;设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值;在当前虚拟机负载高于虚拟机负载上限值的情况下,新建一目标虚拟机,将当前虚拟机上的功能模块迁移到所述目标虚拟机中;在当前虚拟机负载低于虚拟机负载下限值的情况下,则根据各个功能模块的业务请求负载以及业务请求负载的上限值,判断当前虚拟机上是否存在至少一个功能模块的业务请求负载高于业务请求负载的上限值;如果否,则将该当前虚拟机与满足合并条件的其他虚拟机合并。

Description

一种云应用部署方法和装置
技术领域
本发明涉及互联网技术领域,具体涉及一种云应用部署方法和装置。
背景技术
云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。而基于模块化应用开发框架的云应用的各个功能模块被部署在分布于云环境中的虚拟机中。随着云计算的广泛使用,越来越多的企业开始关心云应用如何更合理的部署在云环境中,使得云资源的利用率更高,云应用响应更灵活。
目前,当现有技术需要解决云应用在云环境中的部署问题时,必须先了解底层云环境的具体情况,再根据云环境的具体情况对云应用本身进行代码修改,通过修改云应用本身的代码使得其在云环境中更合理的被整体部署。
现有技术中通过复杂的修改代码的方法解决云应用的部署问题,使得实现云应用部署过程十分繁琐,而且,当对云应用进行代码修改时,访问云应用的业务不得不被迫中断,同时整体应用的部署方式在一定程度上导致了云资源利用率低、云应用响应不够灵活的后果。同时现有技术只考虑了云环境对云应用部署的影响,忽略云应用的各个功能模块本身的被调用情况对云应用部署的影响,这同样会导致云资源的利用率较低、云应用响应不灵活的弊端。
发明内容
为了解决云资源的利用率较低以及云应用响应不灵活问题,本发明提供了一种云应用部署方法和装置。
本发明提供了一种云应用部署方法,所述方法包括:
获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载;
设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值;
在所述当前虚拟机负载高于所述虚拟机负载上限值的情况下,新建一目标虚拟机,将该当前虚拟机上的功能模块迁移到所述目标虚拟机中;
在所述当前虚拟机负载低于所述虚拟机负载下限值的情况下,则根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值;
如果否,则将该当前虚拟机与满足合并条件的其他虚拟机合并,所述合并条件为:虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
优选地,所述获取当前虚拟机的虚拟机负载具体为:
采用如下所示的计算公式计算所述虚拟机负载:
Vp = 1 ( 1 - cpu uti ) * ( 1 - mem uti ) * ( 1 - net uti ) ,
其中,所述Vp表示当前虚拟机的虚拟机负载,所述cpuuti表示当前虚拟机的CPU利用率,所述memuti表示当前虚拟机的内存利用率,所述netuti表示当前虚拟机的网络带宽利用率。
优选地,所述获取各个功能模块的业务请求负载具体为:
采用如下所示的计算公式计算所述业务请求负载:
Bp=reqm*treq
所述Bp表示当前功能模块的业务请求负载,所述reqm表示当前功能模块每分钟平均被请求个数,treq表示当前功能模块被请求平均响应时间。
优选地,所述将该当前虚拟机上的功能模块迁移到所述目标虚拟机中具体为:
判断该当前虚拟机上是否存在多个功能模块,如果是,则将该当前虚拟机上功能模块分为两组,并将其中任意一组迁移到所述目标虚拟机中,如果否,则将该当前虚拟机上的一个功能模块迁移到所述目标虚拟机中。
优选地,所述将该当前虚拟机上功能模块分为两组具体为:
将该当前虚拟机上的功能模块分为业务请求负载之和最接近的两组功能模块。
优选地,所述将该当前虚拟机上的一个功能模块迁移到所述目标虚拟机中具体为:
依据所述当前虚拟机负载过高的指标类型调高目标虚拟机的对应指标类型;
将该当前虚拟机上的一个功能模块迁移到所述目标虚拟机中。
优选地,所述将该当前虚拟机上的一个功能模块迁移到所述目标虚拟机中之后,或者,将该当前虚拟机与满足合并条件的其他虚拟机合并之后,还包括:
删除所述当前虚拟机。
优选地,所述将该当前虚拟机上的功能模块迁移到所述目标虚拟机中之后,或者将该当前虚拟机与满足合并条件的其他虚拟机合并之后,还包括:
更新当前虚拟机和目标虚拟机中各个功能模块的状态。
本发明还提供了一种云应用部署的装置,所述装置包括:
获取模块,用于获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载;
设置模块,用于设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值;
新建虚拟机模块,用于在所述当前虚拟机负载高于所述虚拟机负载上限值的情况下,新建一目标虚拟机;
迁移模块,用于将该当前虚拟机上的功能模块迁移到所述新建虚拟机模块中的所述目标虚拟机中;
第一判断模块,用于在所述当前虚拟机负载低于所述虚拟机负载下限值的情况下,则根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值;
合并模块,用于在所述第一判断模块结果为否时,将该当前虚拟机与满足合并条件的其他虚拟机合并,所述合并条件为:虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
优选地,所述获取模块用于获取当前虚拟机的虚拟机负载时,具体采用如下所示的计算公式计算所述虚拟机负载:
Vp = 1 ( 1 - cpu uti ) * ( 1 - mem uti ) * ( 1 - net uti ) ,
其中,所述Vp表示当前虚拟机的虚拟机负载,所述cpuuti表示当前虚拟机的CPU利用率,所述memuti表示当前虚拟机的内存利用率,所述netuti表示当前虚拟机的网络带宽利用率。
优选地,所述获取模块用于获取各个功能模块的业务请求负载时具体采用如下所示的计算公式计算所述业务请求负载:
Bp=reqm*treq
所述Bp表示当前功能模块的业务请求负载,所述reqm表示当前功能模块每分钟平均被请求个数,treq表示当前功能模块被请求平均响应时间。
与现有技术相比,本发明首先获得任一虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载,可见本发明不仅考虑了云环境对云应用部署的影响,而且也考虑到了云应用的各个功能模块本身的被调用情况对云应用部署的影响。其次,设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值,使得在使用本发明进行云应用部署时,用户可以根据自己的需求设置不同的所述上下限值,进而尽量满足用户的部署要求。再次,根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该任一虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值,充分体现了本发明的考虑云应用的各个功能模块本身的被调用情况对云应用部署的影响。总之,本发明不仅考虑到了虚拟机负载体现出的云环境对云应用部署的影响,还考虑到了业务请求负载所体现的云应用的各个功能模块本身的被调用情况,对云应用部署的影响,与现有技术相比,本发明考虑到各方面影响云应用部署的因素的方式使得云资源被利用的更充分。
附图说明
图1为本发明实施例一的云应用部署方法的流程图;
图2为本发明实施例二的云应用部署方法的流程图;
图3为本发明实施例三的云应用部署方法的流程图;
图4为本发明实施例四的云应用部署装置的结构图;
图5为本发明实施例五的云应用部署装置的结构图;
图6为本发明实施例六的云应用部署装置的结构图。
具体实施方式
实施例一、
参考图1,图1为本发明提供的一种云应用部署方法实施例一的流程图,本实施例具体可以包括:
步骤101、获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载;
本实施例与现有技术不同的是,云应用部署的方法不仅要考虑虚拟机负载对云应用部署的影响,也要考虑到云应用的各个功能模块的业务请求频率等对云应用部署的影响。
首先,本实施例需要获取当前虚拟机的虚拟机负载,由于虚拟机负载与当前虚拟机的CPU利用率、内存利用率以及网络带宽利用率等有关,所以本实施例首先要获取到当前虚拟机的CPU利用率、内存利用率以及网络带宽利用率。其次,本实施例需要获取云应用的各个功能模块的业务请求负载,又由于业务请求负载与当前功能模块每分钟平均被请求个数以及被请求平均响应时间有关,所以本实施例首先要获取到当前功能模块每分钟平均被请求个数以及被请求平均响应时间。最后通过计算得到当前虚拟机的虚拟机负载与各个功能模块的业务请求负载。
步骤102、设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值。
由于本实施例以下步骤的判断操作中,某些参数需要和虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值进行比较,所以要预先设置出虚拟机负载的上限值和下限值以及业务请求负载的上限值和下限值,以供后续步骤比较使用。
具体的,虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值的设置与当前虚拟机负载、业务请求负载以及具体的当前运行环境可能有关,例如,在当前虚拟机负载、业务请求负载均较高时,将虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值均设置的较高,或者在当前虚拟机负载、业务请求负载均较低时,将虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值均对应调低,但是对于不同的用户也可以在不考虑当前虚拟机负载、业务请求负载以及具体的当前运行环境的情况下,根据自己的经验或者需求对虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值进行适应性设置,同时,在云应用部署的过程中,可以根据云应用部署的需要对已经设置的虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值做适应性调整,进而得到更准确的上下限值,以更好的满足用户的需求。
步骤103、在所述当前虚拟机负载高于所述虚拟机负载上限值的情况下,新建一目标虚拟机。
本实施例中,当前虚拟机负载高于所述虚拟机负载上限值时,即当前虚拟机的负载超负荷的情况下,为了缓解当前虚拟机的负载压力,需要新建一目标虚拟机,用来分担高负载虚拟机的功能模块。
步骤104、将该当前虚拟机上的功能模块迁移到所述目标虚拟机中。
本实施例中,在当前虚拟机的负载超负荷的情况下,即当前虚拟机负载高于上述已设置的虚拟机负载上限值时,新建了一目标虚拟机,同时将该当前虚拟机上的功能模块迁移到新建的目标虚拟机中,以缓解当前虚拟机的负载压力。
具体的,新建的目标虚拟机用于承载当前虚拟机所迁移出去的功能模块,进而缓解当前虚拟机的负载超负荷。
步骤105、在所述当前虚拟机负载低于所述虚拟机负载下限值的情况下,则根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值,如果否,则进入步骤106。
本实施例中,首先比较当前虚拟机负载是否低于已设置的虚拟机负载下限值,如果当前虚拟机负载低于已设置的虚拟机负载下限值,则当前虚拟机不需要被重新部署,即不需要执行后续步骤;如果当前虚拟机负载是不低于已设置的虚拟机负载下限值的,则根据已获得的各个功能模块的业务请求负载以及已设置的业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于已设置的业务请求负载的上限值,如果当前虚拟机上不存在这样的功能模块,其业务请求负载高于已设置的业务请求负载的上限值,则执行步骤106。
如果当前虚拟机上存在业务请求负载高于已设置的业务请求负载的上限值的功能模块,即说明当前虚拟机上存在着被调用率较高的功能模块,则在此情况下,当前虚拟机不需要被重新部署,即不需要执行后续步骤。
步骤106、将该当前虚拟机与满足合并条件的其他虚拟机合并,所述合并条件为:虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
在当前虚拟机负载低于已设置的虚拟机负载下限值的情况下,比较当前功能模块的业务请求负载与已设置的业务请求负载的上限值的大小,当当前虚拟机上不存在一个或更多的功能模块的业务请求负载高于已设置的业务请求负载的上限值时,此虚拟机需要被重新部署,进而将当前虚拟机与同样满足此合并条件的其他虚拟机合并。
其中,合并条件具体可以为,当前虚拟机负载低于已设置的虚拟机负载下限值并且不存在任意一个功能模块的业务请求负载高于已设置的业务请求负载的上限值。
上述合并具体可以为,把满足上述合并条件的两个虚拟机合并,即将其中一个虚拟机上的功能模块迁移到另一个虚拟机上。
本实施例中,首先,获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载,可见本实施例不仅考虑了云环境对云应用部署的影响,而且也考虑到了云应用的各个功能模块本身的被调用情况对云应用部署的影响。其次,设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值,使得在使用本实施例的方法进行云应用部署时,用户可以根据自己的需求设置不同的所述上下限值,进而尽量满足了用户的部署要求。再次,根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该任一虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值,充分体现了本实施例考虑云应用的各个功能模块本身的被调用情况对云应用部署的影响。
总之,本发明不仅考虑到了虚拟机负载体现出的云环境对云应用部署的影响,还考虑到了业务请求负载所体现的云应用的各个功能模块本身的被调用情况,对云应用部署的影响,与现有技术相比,本发明考虑到各方面影响云应用部署的因素的方式使得云资源被利用的更充分。
实施例二、
参考图2,图2为本发明提供的一种云应用部署方法实施例二的流程图,本实施例具体可以包括:。
步骤201、采用计算公式(1)计算当前虚拟机负载:
Vp = 1 ( 1 - cpu uti ) * ( 1 - mem uti ) * ( 1 - net uti ) - - - ( 1 ) ;
采用计算公式(2)计算各个功能模块的业务请求负载:
Bp=reqm*treq(2)。
本实施例中,首先,需要获得当前虚拟机的负载,依据上述计算当前虚拟机负载的公式,必须预先获得当前虚拟机的CPU利用率cpuuti、内存利用率memuti以及网络带宽利用率netuti等有关参数,进而将相关参数通过计算当前虚拟机负载的公式进行计算,从而得到当前虚拟机的负载值;其次,本实施例还需要获得云应用的各个功能模块的业务请求负载,同样依据上述计算业务请求负载的计算公式,必须预先获得当前功能模块每分钟平均被请求个数reqm以及被请求平均响应时间treq等有关参数,进而将相关参数通过计算业务请求负载公式计算得到各个功能模块的业务请求负载值。
值得注意的是,计算当前虚拟机负载值和计算各个功能模块的业务请求负载值的方法很多,并不仅仅局限于本实施例所使用的方法,也就是说,通过其他方法获得当前虚拟机负载值和各个功能模块的业务请求负载值的行为也属于本申请的保护范围。
步骤202、设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值;
步骤203、在所述当前虚拟机负载高于所述虚拟机负载上限值的情况下,新建一目标虚拟机;
由于本实施例中的步骤202-步骤203与实施例一中的步骤102-步骤103相同,所以在此不再赘述具体过程。
步骤204、判断该当前虚拟机上是否存在多个功能模块,如果是,则执行步骤205,如果否,则执行步骤206。
本实施例中,在当前虚拟机负载高于已设置的虚拟机负载上限值的情况下,即当前虚拟机负载超负荷时,需要进一步对当前虚拟机存在的功能模块的情况进行判断,以便更高效合理的对云应用进行部署。
本步骤即是通过判断当前虚拟机上的功能模块的个数是否大于1,确定下述需要执行的具体步骤。
步骤205、将该当前虚拟机上功能模块分为业务请求负载之和最接近的两组功能模块,并将其中任意一组迁移到所述目标虚拟机中,执行步骤208。
当前虚拟机上的功能模块的个数大于1的情况下,通过计算各个功能模块业务请求负载相加之和,将当前虚拟机上的功能模块分为业务请求负载之和最接近的两组,并将获得的两组功能模块中的任意一组迁移到新建的目标虚拟机中,以缓解当前虚拟机的超负荷情况。
本实施例中的分组方法为按照当前虚拟机上的各个功能模块的业务请求负载之和最接近的标准,将当前虚拟机上的功能模块分为两组。实际操作中,本领域技术人员很容易想到还有其他的分组方法,在此不再一一赘述,值得强调的是,其他分组方法也能达到云应用重新部署的效果,但是本实施例中的分组方法为优选方法。
步骤206、依据所述当前虚拟机负载过高的指标类型调高目标虚拟机的对应指标类型,并将该当前虚拟机上的一个功能模块迁移到所述调高的目标虚拟机中。
当前虚拟机负载高于已设置的虚拟机负载上限值时,即当前虚拟机处于负载超负荷的情况,并且同时当前虚拟机上的功能模块的个数等于1,本实施例通过判断造成当前虚拟机负载过高的指标类型,对目标虚拟机的对应指标类型进行调高,例如当判断造成当前虚拟机负载过高的指标类型为CPU利用率过高时,可以对应调高目标虚拟机CPU;同样,当判断造成当前虚拟机负载过高的指标类型为内存利用率过高时,可以对应调高目标虚拟机内存。进而得到调高后的目标虚拟机,并将当前虚拟机上唯一一个功能模块迁移到调高后的目标虚拟机中。
实际操作中,造成虚拟机负载过高的指标类型可以是CPU利用率或者内存利用率。
步骤207、删除所述当前虚拟机,并执行步骤208。
将当前虚拟机上的一个功能模块迁移到调高后的目标虚拟机之后,再删除当前虚拟机,以免造成云资源的浪费。
步骤208、更新当前虚拟机和目标虚拟机中各个功能模块的状态。
本实施例通过新建目标虚拟机,并将当前虚拟机上的功能模块迁移到目标虚拟机的方法,实现云应用的重新部署。其中,相关虚拟机的状态发生了变化,例如当前虚拟机上的功能模块个数可能减少了,或者当前虚拟机被删除了,所以为方便系统中的其他应用调用当前虚拟机或者目标虚拟机中的各个功能模块,在完成云应用部署的最后,对当前虚拟机和目标虚拟机中各个功能模块的状态进行更新操作。
与实施例一相比,本实施例通过具体优选的公式计算当前虚拟机负载和各个功能模块的业务请求负载;同时在当前虚拟机负载高于已设置的虚拟机负载上限值且当前虚拟机上有多于1个功能模块的情况下,通过分组的方法,将功能模块分为两组,并将其中一组迁移到新建目标虚拟机中,进而缓解了当前虚拟机的负载压力,达到云应用重新部署的目的;在当前虚拟机负载高于已设置的虚拟机负载上限值且当前虚拟机上存在1个功能模块的情况下,通过调节目标虚拟机的指标类型得到调高后的目标虚拟机,进而将当前虚拟机上的功能模块迁移到调高后的目标虚拟机中,以缓解当前虚拟机的压力,最终达到云应用重新部署的目的。
实施例三、
参考图3,图3为本发明提供的一种云应用部署方法实施例三的流程图,本实施例具体可以包括:
步骤301、采用计算公式(1)计算当前虚拟机负载:
Vp = 1 ( 1 - cpu uti ) * ( 1 - mem uti ) * ( 1 - net uti ) - - - ( 1 ) ;
采用计算公式(2)计算各个功能模块的业务请求负载:
Bp=reqm*treq(2)。
由于本步骤已在实施例二中的步骤201详细介绍过,所以在此不再赘述。
步骤302、设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值;
步骤303、在所述当前虚拟机负载低于所述虚拟机负载下限值的情况下,则根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值,如果否,则执行步骤304。
步骤304、将该当前虚拟机与满足合并条件的其他虚拟机合并,所述合并条件为:虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
由于本实施例中的步骤302-步骤304与实施例一中的步骤102、步骤105、步骤106相同,所以在此不再赘述具体过程。
步骤305、删除已不存在功能模块的当前虚拟机。
本实施例在将当前虚拟机与满足合并条件的其他虚拟机合并后,两个虚拟机上的功能模块就会合并到一个虚拟机中,为了避免造成云资源的浪费,将合并后不存在功能模块的虚拟机删除。
步骤306、更新相关虚拟机中各个功能模块的状态。
本实施例通过合并两个满足“虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值”合并条件的虚拟机,达到云应用重新部署的目的。其中,两个被合并的虚拟机的状态发生了变化,例如当前虚拟机上的功能模块可能被合并到了其他虚拟机中并且被删除了,所以为方便系统中的其他应用调用本实施例相关虚拟机中的各个功能模块,在完成云应用部署的最后,对相关虚拟机中各个功能模块的状态进行更新操作。
本实施例通过合并两个负载压力过低的虚拟机,达到云应用重新部署的目的。不仅考虑到了虚拟机负载体现出的云环境对云应用部署的影响,还考虑到了业务请求负载所体现的云应用的各个功能模块本身的被调用情况,对云应用部署的影响,本发明全面考虑到各方面影响云应用部署的因素的方式使得云资源被利用的更充分。
实施例四、
参考图4,图4为本发明提供的一种云应用部署装置实施例四的装置结构图,本实施例具体可以包括:
获取模块401,用于获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载。
设置模块402,用于设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值。
新建虚拟机模块403,用于在所述当前虚拟机负载高于所述虚拟机负载上限值的情况下,新建一目标虚拟机。
迁移模块404,用于将该当前虚拟机上的功能模块迁移到所述新建虚拟机模块中的所述目标虚拟机中。
第一判断模块405,用于在所述当前虚拟机负载低于所述虚拟机负载下限值的情况下,则根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
合并模块406,用于在所述第一判断模块结果为否时,将该当前虚拟机与满足合并条件的其他虚拟机合并,所述合并条件为:虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
本实施例首先获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载,可见本实施例不仅考虑了云环境对云应用部署的影响,而且也考虑到了云应用的各个功能模块本身的被调用情况对云应用部署的影响。其次设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值,使得在使用本实施例的方法进行云应用部署时,用户可以根据自己的需求设置不同的所述上下限值,进而尽量满足了用户的部署要求。再次,根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该任一虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值,充分体现了本实施例考虑云应用的各个功能模块本身的被调用情况对云应用部署的影响。与现有技术相比,本发明考虑到各方面影响云应用部署的因素的方式使得云资源被利用的更充分。
实施例五、
参考图5,图5为本发明提供的一种云应用部署装置实施例五的装置结构图,本实施例具体可以包括:
第一获取模块501,用于获取当前虚拟机的虚拟机负载时,具体采用计算公式(1)计算所述虚拟机负载:
Vp = 1 ( 1 - cpu uti ) * ( 1 - mem uti ) * ( 1 - net uti ) - - - ( 1 ) ,
其中,所述Vp表示当前虚拟机的虚拟机负载,所述cpuuti表示当前虚拟机的CPU利用率,所述memuti表示当前虚拟机的内存利用率,所述netuti表示当前虚拟机的网络带宽利用率。
第二获取模块502,用于获取各个功能模块的业务请求负载时具体采用计算公式(2)计算所述业务请求负载:
Bp=reqm*treq(2),
所述Bp表示当前功能模块的业务请求负载,所述reqm表示当前功能模块每分钟平均被请求个数,treq表示当前功能模块被请求平均响应时间。
设置模块402,用于设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值。
新建虚拟机模块403,用于在所述当前虚拟机负载高于所述虚拟机负载上限值的情况下,新建一目标虚拟机。
第二判断模块503,用于判断该当前虚拟机上是否存在多个功能模块;
分组模块504,用于将该当前虚拟机上功能模块分为业务请求负载之和最接近的两组功能模块。
第一迁移模块505,用于将分组模块504分组所得的两个组中的任意一组迁移到所述目标虚拟机中。
调高模块506,用于依据所述当前虚拟机负载过高的指标类型调高目标虚拟机的对应指标类型。
第二迁移模块507,用于将该当前虚拟机上的一个功能模块迁移到调高模块506所得到的调高后的目标虚拟机中;
第一删除模块508,用于删除所述当前虚拟机。
第一更新模块509,用于更新当前虚拟机和目标虚拟机中各个功能模块的状态。
本实施例通过具体优选的公式计算当前虚拟机负载和各个功能模块的业务请求负载;同时在当前虚拟机负载高于已设置的虚拟机负载上限值且当前虚拟机上有多于1个功能模块的情况下,通过分组的方法,将功能模块分为两组,并将其中一组迁移到新建目标虚拟机中,进而缓解了当前虚拟机的负载压力,达到云应用重新部署的目的;在当前虚拟机负载高于已设置的虚拟机负载上限值且当前虚拟机上存在1个功能模块的情况下,通过调节目标虚拟机的指标类型得到调高后的目标虚拟机,进而将当前虚拟机上的功能模块迁移到调高后的目标虚拟机中,以缓解当前虚拟机的压力,最终达到云应用重新部署的目的。
实施例六、
参考图6,图6为本发明提供的一种云应用部署装置实施例六的装置结构图,本实施例具体可以包括:
第一获取模块501,用于获取当前虚拟机的虚拟机负载时,具体采用计算公式(1)计算所述虚拟机负载:
Vp = 1 ( 1 - cpu uti ) * ( 1 - mem uti ) * ( 1 - net uti ) - - - ( 1 ) ,
其中,所述Vp表示当前虚拟机的虚拟机负载,所述cpuuti表示当前虚拟机的CPU利用率,所述memuti表示当前虚拟机的内存利用率,所述netuti表示当前虚拟机的网络带宽利用率。
第二获取模块502,用于获取各个功能模块的业务请求负载时具体采用计算公式(2)计算所述业务请求负载:
Bp=reqm*treq(2),
所述Bp表示当前功能模块的业务请求负载,所述reqm表示当前功能模块每分钟平均被请求个数,treq表示当前功能模块被请求平均响应时间。
设置模块402,用于设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值。
第一判断模块405,用于在所述当前虚拟机负载低于所述虚拟机负载下限值的情况下,则根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
合并模块406,用于在所述第一判断模块结果为否时,将该当前虚拟机与满足合并条件的其他虚拟机合并,所述合并条件为:虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
第二删除模块601,用于删除已不存在功能模块的当前虚拟机。
第二更新模块602,用于更新各个虚拟机中各个功能模块的状态。
本实施例通过合并两个负载压力过低的虚拟机,达到云应用重新部署的目的。不仅考虑到了虚拟机负载体现出的云环境对云应用部署的影响,还考虑到了业务请求负载所体现的云应用的各个功能模块本身的被调用情况,对云应用部署的影响,本发明全面考虑到各方面影响云应用部署的因素的方式使得云资源被利用的更充分。
以上对本发明实施例所提供的云应用部署方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种云应用部署方法,其特征在于,所述方法包括:
获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载;
设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值和下限值;
在所述当前虚拟机负载高于所述虚拟机负载上限值的情况下,新建一目标虚拟机,将该当前虚拟机上的功能模块迁移到所述目标虚拟机中;
在所述当前虚拟机负载低于所述虚拟机负载下限值的情况下,则根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值;
如果否,则将该当前虚拟机与满足合并条件的其他虚拟机合并,所述合并条件为:虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
2.根据权利要求1所述的方法,其特征在于,所述获取当前虚拟机的虚拟机负载具体为:
采用如下所示的计算公式计算所述虚拟机负载:
Vp = 1 ( 1 - cpu uti ) * ( 1 - mem uti ) * ( 1 - net uti ) ,
其中,所述Vp表示当前虚拟机的虚拟机负载,所述cpuuti表示当前虚拟机的CPU利用率,所述memuti表示当前虚拟机的内存利用率,所述netuti表示当前虚拟机的网络带宽利用率。
3.根据权利要求1所述的方法,其特征在于,所述获取各个功能模块的业务请求负载具体为:
采用如下所示的计算公式计算所述业务请求负载:
Bp=reqm*treq
所述Bp表示当前功能模块的业务请求负载,所述reqm表示当前功能模块每分钟平均被请求个数,treq表示当前功能模块被请求平均响应时间。
4.根据权利要求1所述的方法,其特征在于,所述将该当前虚拟机上的功能模块迁移到所述目标虚拟机中具体为:
判断该当前虚拟机上是否存在多个功能模块,如果是,则将该当前虚拟机上功能模块分为两组,并将其中任意一组迁移到所述目标虚拟机中,如果否,则将该当前虚拟机上的一个功能模块迁移到所述目标虚拟机中。
5.根据权利要求4所述的方法,其特征在于,所述将该当前虚拟机上功能模块分为两组具体为:
将该当前虚拟机上的功能模块分为业务请求负载之和最接近的两组功能模块。
6.根据权利要求4所述的方法,其特征在于,所述将该当前虚拟机上的一个功能模块迁移到所述目标虚拟机中之后,或者,将该当前虚拟机与满足合并条件的其他虚拟机合并之后,还包括:
删除所述当前虚拟机。
7.根据权利要求1所述的方法,其特征在于,所述将该当前虚拟机上的功能模块迁移到所述目标虚拟机中之后,或者将该当前虚拟机与满足合并条件的其他虚拟机合并之后,还包括:
更新当前虚拟机和目标虚拟机中各个功能模块的状态。
8.一种云应用部署的装置,其特征在于,所述装置包括:
获取模块,用于获取当前虚拟机的虚拟机负载,以及其中云应用的各个功能模块的业务请求负载;
设置模块,用于设置虚拟机负载的上限值和下限值,以及业务请求负载的上限值;
新建虚拟机模块,用于在所述当前虚拟机负载高于所述虚拟机负载上限值的情况下,新建一目标虚拟机;
迁移模块,用于将该当前虚拟机上的功能模块迁移到所述新建虚拟机模块中的所述目标虚拟机中;
第一判断模块,用于在所述当前虚拟机负载低于所述虚拟机负载下限值的情况下,则根据所述各个功能模块的业务请求负载以及所述业务请求负载的上限值,判断该当前虚拟机上是否存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值;
合并模块,用于在所述第一判断模块结果为否时,将该当前虚拟机与满足合并条件的其他虚拟机合并,所述合并条件为:虚拟机负载低于所述虚拟机负载下限值且不存在至少一个功能模块的业务请求负载高于所述业务请求负载的上限值。
9.根据权利要求8所述的装置,其特征在于,所述获取模块用于获取当前虚拟机的虚拟机负载时,具体采用如下所示的计算公式计算所述虚拟机负载:
Vp = 1 ( 1 - cpu uti ) * ( 1 - mem uti ) * ( 1 - net uti ) ,
其中,所述Vp表示当前虚拟机的虚拟机负载,所述cpuuti表示当前虚拟机的CPU利用率,所述memuti表示当前虚拟机的内存利用率,所述netuti表示当前虚拟机的网络带宽利用率。
10.根据权利要求8所述的装置,其特征在于,所述获取模块用于获取各个功能模块的业务请求负载时具体采用如下所示的计算公式计算所述业务请求负载:
Bp=reqm*treq
所述Bp表示当前功能模块的业务请求负载,所述reqm表示当前功能模块每分钟平均被请求个数,treq表示当前功能模块被请求平均响应时间。
CN201210370488.8A 2012-09-27 2012-09-27 一种云应用部署方法和装置 Expired - Fee Related CN102932418B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210370488.8A CN102932418B (zh) 2012-09-27 2012-09-27 一种云应用部署方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210370488.8A CN102932418B (zh) 2012-09-27 2012-09-27 一种云应用部署方法和装置

Publications (2)

Publication Number Publication Date
CN102932418A CN102932418A (zh) 2013-02-13
CN102932418B true CN102932418B (zh) 2015-04-15

Family

ID=47647115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210370488.8A Expired - Fee Related CN102932418B (zh) 2012-09-27 2012-09-27 一种云应用部署方法和装置

Country Status (1)

Country Link
CN (1) CN102932418B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142861B (zh) * 2013-05-10 2018-06-08 中国电信股份有限公司 服务器资源的配置处理方法与装置
CN103559093B (zh) * 2013-11-15 2016-11-16 北京中指实证数据信息技术有限公司 一种服务器资源的配置方法及装置
CN103617086B (zh) * 2013-11-20 2017-02-08 东软集团股份有限公司 一种并行计算方法及系统
CN103957231B (zh) * 2014-03-18 2015-08-26 成都盛思睿信息技术有限公司 一种云计算平台下的虚拟机分布式任务调度方法
CN103986703A (zh) * 2014-05-12 2014-08-13 浪潮电子信息产业股份有限公司 一种新型云应用解决方法
CN105446790B (zh) * 2014-07-15 2019-10-18 华为技术有限公司 一种虚拟机迁移方法及装置
CN105975340A (zh) * 2016-03-24 2016-09-28 国云科技股份有限公司 一种虚拟机应用分配部署算法
CN107786586B (zh) * 2016-08-24 2019-11-05 腾讯科技(深圳)有限公司 业务的负载调度方法及装置
CN108933795A (zh) * 2017-05-22 2018-12-04 中兴通讯股份有限公司 云呼叫中心的处理方法及装置
CN107294865B (zh) * 2017-07-31 2019-12-06 华中科技大学 一种软件交换机的负载均衡方法及软件交换机
CN108429815A (zh) * 2018-03-23 2018-08-21 重庆邮电大学 基于OpenStack的动态资源调度方法
CN109491788B (zh) * 2018-11-01 2022-12-09 郑州云海信息技术有限公司 一种虚拟化平台负载均衡实现方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593133A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 虚拟机资源负载均衡方法及装置
CN102541622A (zh) * 2011-12-15 2012-07-04 杭州电子科技大学 一种负载相关的虚拟机放置方法
CN102611622A (zh) * 2012-02-28 2012-07-25 清华大学 一种弹性云计算平台下工作负载的调度方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069761A1 (en) * 2004-09-14 2006-03-30 Dell Products L.P. System and method for load balancing virtual machines in a computer network
JP5533005B2 (ja) * 2010-02-17 2014-06-25 富士通株式会社 情報処理装置、計算機システム及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593133A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 虚拟机资源负载均衡方法及装置
CN102541622A (zh) * 2011-12-15 2012-07-04 杭州电子科技大学 一种负载相关的虚拟机放置方法
CN102611622A (zh) * 2012-02-28 2012-07-25 清华大学 一种弹性云计算平台下工作负载的调度方法

Also Published As

Publication number Publication date
CN102932418A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102932418B (zh) 一种云应用部署方法和装置
CN102591702B (zh) 虚拟化处理方法及相关装置和计算机系统
CN103248535A (zh) 一种云系统测试方法及装置
CN103473115B (zh) 虚拟机放置方法和装置
CN105068874A (zh) 一种结合Docker技术的资源按需动态分配方法
Sarker et al. Performance-driven live migration of multiple virtual machines in datacenters
CN104601492A (zh) 一种nfv架构下进行业务流控的方法及装置
CN103279353A (zh) 一种应用优化策略确定方法、装置及系统
CN103414767A (zh) 将应用软件部署在云计算平台上的方法和装置
CN105975340A (zh) 一种虚拟机应用分配部署算法
CN104283951A (zh) 一种实例迁移的方法、装置及系统
CN102710779B (zh) 一种基于云计算环境下的服务资源分配的负载均衡策略
CN104754008A (zh) 网络存储节点、网络存储系统以及用于网络存储节点的装置和方法
CN103561055A (zh) 基于会话的云计算环境下Web应用自动弹性扩展方法
CN106909462A (zh) 一种云资源调度方法及装置
CN102637138A (zh) 一种计算调度虚拟机的方法
CN112925607A (zh) 一种系统扩缩容方法及装置、电子设备
CN102419753B (zh) 信息处理设备、信息处理方法和信息处理系统
CN103309833A (zh) 设备整合方法、终端装置和分布式多终端装置系统
CN109960579B (zh) 一种调整业务容器的方法及装置
CN102917044B (zh) 一种云管理平台和云平台间数据同步的方法
CN105760227A (zh) 云环境下资源调度方法及系统
CN115225506A (zh) 基于云平台的数据处理方法、系统、电子设备及存储介质
CN106126319B (zh) 中央处理器资源分配方法和计算节点
CN103501509A (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150415

Termination date: 20210927