PaaS平台中实现负载分配的方法和装置制造方法及图纸

技术编号:11210418 阅读:131 留言:0更新日期:2015-03-26 19:51
本发明专利技术提供了一种PaaS平台中实现负载分配的方法和装置,包括:预先设置亲和度和负载阀值;若当前应用依赖于外部服务,获取当前应用对PaaS平台中所有承载节点的亲和度,将满足预设第一条件的亲和度对应的承载节点作为目标承载节点;如果目标承载节点的负载超过负载阀值,获取目标承载节点上所有应用对目标承载节点的亲和度,并获取小于当前应用对目标承载节点亲和度的应用的应用痕迹,将满足预设第二条件的应用痕迹对应的应用进行迁移,并在迁移完成后,将当前应用部署在目标承载节点上。本发明专利技术保障了应用性能且实现了负载均衡。

【技术实现步骤摘要】
PaaS平台中实现负载分配的方法和装置
本专利技术涉及数据传输
,尤其涉及一种平台即服务(PaaS,Platform-as-a-Service)平台中实现负载分配的方法和装置。
技术介绍
随着电信市场竞争的激烈,运营商纷纷拓展新业务,云计算是拓展的新业务之一,其中,PaaS是面向开发者服务,提供弹性伸缩的中间件服务和应用部署的平台。近年来,基于轻量级Linux容器构建PaaS平台逐渐成为主流,如开源平台Cloud Foundry和Red Hat公司的OpenShift均采用这种方式。Linux容器可以很好地封装各种中间件系统和用户的应用,用户不需要再搭建消息中间件、数据库、应用容器等中间件系统,只需要简单的需求文件中说明,PaaS平台就会自动为之适配。因此,PaaS平台集合众多底层平台、中间件和应用开发工具,转变传统一对一的产品交付方式为云端分享型的服务交付方式,从而为企业传统IT和应用开发者把整个开发、部署与客户服务的生命周期搬到云上创造了条件。 PaaS平台一般将资源池划分为多个区域,称为不同的自治域(AZ,AvailablityZone)。在现有技术中,为了实现资源利用的负载均衡,当用户部署请求服务资源时,通常采用基于Round Robin的随机算法选择一个AZ,并从该AZ中选择一个承载节点承载。假设用户的应用负载大致相当,则随机算法能够取得较好的负载均衡。 出于数据安全的考虑,很多用户并不愿意把敏感数据托管到云端,而仅仅将数据处理和展现的业务逻辑封装成应用托管到云端,而包含敏感数据的数据库依旧由用户独立维护,当云端应用需要访问数据库时,需要通过数据库的远程接口远端调用用户数据库的数据访问接口。 这种处理逻辑在云端,而数据源在用户本地的应用模式,由于用户经常访问可能会引起应用到某些AZ或者承载节点的倾向性。但是,基于Round Robin的随机算法的基本假设是应用部署到任何AZ的任何承载节点均是无差异的,因此,现有的处理逻辑在云端,数据源在用户本地的应用模式将使基于Round Robin的随机算法失效,从而无法实现应用的优化部署。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种PaaS平台中实现负载分配的方法和装置,能够保障应用的性能且实现PaaS平台中节点的负载均衡。 为了达到本专利技术目的,本专利技术提供了一种PaaS平台中实现负载分配的方法,包括:预先设置应用对承载节点的亲和度和承载节点的负载阀值;若当前应用依赖于外部服务,获取当前应用对PaaS平台中所有承载节点的亲和度,将满足预设第一条件的亲和度对应的承载节点作为目标承载节点;如果所述目标承载节点的负载超过负载阀值,获取所述目标承载节点上所有应用对所述目标承载节点的亲和度,并获取小于所述当前应用对所述目标承载节点亲和度的应用的应用痕迹,将满足预设第二条件的应用痕迹对应的应用作为待迁移应用,在所述待迁移应用迁移完成后,将所述当前应用部署在所述目标承载节点上。 进一步地,所述亲和度计算公式为:a(app,node) = MIN(bw (SNi (app), node)) i=1,…k;其中,a (app, node)表示亲和度,app为应用,node为承载节点,如果应用没有外部服务,a (app, node) = O ;如果应用依赖于k个外部服务,SNi (app)表示应用所依赖的第i个外部服务节点;bw(SNi (app) ,node)表示第i个外部服务节点到PaaS平台中承载节点的带宽,当第i个外部服务节点到PaaS平台中承载节点之间没有网络链路时,bw(SNi (app),node) = O。 进一步地,所述将满足预设第一条件的亲和度对应的承载节点作为目标承载节点之后,还包括:如果所述目标承载节点上所有应用对所述目标承载节点的亲和度都大于或等于所述当前应用对目标承载节点亲和度,则结束本流程。 进一步地,所述将满足预设第一条件的亲和度对应的承载节点作为目标承载节点包括:将亲和度最大值对应的承载节点作为目标承载节点;所述将亲和度最大值对应的承载节点作为目标承载节点之后,还包括:如果所述目标承载节点的负载没有超过负载阀值,将所述当前应用部署在所述目标承载节点上,结束本流程。 进一步地,所述将满足预设第二条件的应用痕迹对应的应用作为待迁移应用包括:将应用痕迹最小值对应的应用作为待迁移应用;所述将应用痕迹最小值对应的应用作为待迁移应用之后,还包括:如果所述待迁移应用对所述目标承载节点的亲和度不为零,则获取所述待迁移应用对PaaS平台中其他承载节点的亲和度,将亲和度最大值对应的承载节点作为所述待迁移应用的目标承载节点;如果所述待迁移应用对所述目标承载节点的亲和度为零,则获取同一自治域中其他承载节点的负载,将负载最小值对应的承载节点作为所述待迁移应用的目标承载节点。 一种PaaS平台中实现负载分配的装置,包括:设置模块,用于预先设置应用对承载节点的亲和度和承载节点的负载阀值;获取模块,用于若当前应用依赖于外部服务,获取所述当前应用对PaaS平台中所有承载节点的亲和度,将满足预设第一条件的亲和度对应的承载节点作为目标承载节点;判断模块,用于判断所述目标承载节点的负载是否超过负载阀值;如果超过,触发所述获取模块获取所述目标承载节点上所有应用对所述目标承载节点的亲和度,并获取小于所述当前应用对所述目标承载节点亲和度的应用的应用痕迹,将满足预设第二条件的应用痕迹对应的应用作为待迁移应用;迁移模块,用于从所述目标承载节点上迁移出所述待迁移应用;部署模块,用于在所述迁移模块对所述待迁移应用迁移完成后,将所述当前应用部署在所述目标承载节点上。 进一步地,所述亲和度计算公式为:a(app, node) = MIN (bw (SNi (app), node))i = I, ---k ;;其中,a (app, node)表示亲和度,app为应用,node为承载节点,如果应用没有外部服务,ct (app, node) = O ;如果应用依赖于k个外部服务,SNi (app)表示应用所依赖的第i个外部服务节点;bw(SNi(app), node)表示第i个外部服务节点到PaaS平台中承载节点的带宽,当第i个外部服务节点到PaaS平台中承载节点之间没有网络链路时,bw (SNi (app),node) = O。 进一步地,所述判断模块,还用于如果所述目标承载节点的负载没有超过负载阀值,触发部署模块将所述当前应用部署在所述目标承载节点上。 进一步地,所述获取模块,还用于如果所述待迁移应用对所述目标承载节点的亲和度不为零,则获取所述待迁移应用对PaaS平台中其他承载节点的亲和度,将亲和度最大值对应的承载节点作为所述待迁移应用的目标承载节点;如果所述待迁移应用对所述目标承载节点的亲和度为零,则获取同一自治域中其他承载节点的负载,将负载最小值对应的承载节点作为所述待迁移应用的目标承载节点。 与现有技术相比,本专利技术包括:预先设置应用对承载节点的亲和度和承载节点的负载阀值;若当前应用依赖于外部服务,获取当前应用对PaaS平台中所有承载节点的亲和度,将满足预设第一条件的亲和度对应的承载节点作为目标承载节点;如果所本文档来自技高网
...
PaaS平台中实现负载分配的方法和装置

【技术保护点】
一种PaaS平台中实现负载分配的方法,其特征在于,包括:预先设置应用对承载节点的亲和度和承载节点的负载阀值;若当前应用依赖于外部服务,获取当前应用对PaaS平台中所有承载节点的亲和度,将满足预设第一条件的亲和度对应的承载节点作为目标承载节点;如果所述目标承载节点的负载超过负载阀值,获取所述目标承载节点上所有应用对所述目标承载节点的亲和度,并获取小于所述当前应用对所述目标承载节点亲和度的应用的应用痕迹,将满足预设第二条件的应用痕迹对应的应用作为待迁移应用,在所述待迁移应用迁移完成后,将所述当前应用部署在所述目标承载节点上。

【技术特征摘要】
1.一种PaaS平台中实现负载分配的方法,其特征在于,包括:预先设置应用对承载节点的亲和度和承载节点的负载阀值; 若当前应用依赖于外部服务,获取当前应用对PaaS平台中所有承载节点的亲和度,将满足预设第一条件的亲和度对应的承载节点作为目标承载节点; 如果所述目标承载节点的负载超过负载阀值,获取所述目标承载节点上所有应用对所述目标承载节点的亲和度,并获取小于所述当前应用对所述目标承载节点亲和度的应用的应用痕迹,将满足预设第二条件的应用痕迹对应的应用作为待迁移应用,在所述待迁移应用迁移完成后,将所述当前应用部署在所述目标承载节点上。2.根据权利要求1所述的方法,其特征在于,所述亲和度计算公式为: a (app,node) = MIN(bw(SNi (app), node)) i = I,...k ; 其中,a (app, node)表示亲和度,app为应用,node为承载节点,如果应用没有外部服务,a (app, node) = O ; 如果应用依赖于k个外部服务,SNi (app)表示应用所依赖的第i个外部服务节点;bw (SNi (app), node)表示第i个外部服务节点到PaaS平台中承载节点的带宽,当第i个外部服务节点到PaaS平台中承载节点之间没有网络链路时,bw(SNi (app), node) = O。3.根据权利要求1或2所述的方法,其特征在于,所述将满足预设第一条件的亲和度对应的承载节点作为目标承载节点之后,还包括: 如果所述目标承载节点上所有应用对所述目标承载节点的亲和度都大于或等于所述当前应用对目标承载节点亲和度,则结束本流程。4.根据权利要求1或2所述的方法,其特征在于,所述将满足预设第一条件的亲和度对应的承载节点作为目标承载节点包括:将亲和度最大值对应的承载节点作为目标承载节占.所述将亲和度最大值对应的承载节点作为目标承载节点之后,还包括: 如果所述目标承载节点的负载没有超过负载阀值,将所述当前应用部署在所述目标承载节点上,结束本流程。5.根据权利要求4所述的方法,其特征在于,所述将满足预设第二条件的应用痕迹对应的应用作为待迁移应用包括:将应用痕迹最小值对应的应用作为待迁移应用; 所述将应用痕迹最小值对应的应用作为待迁移应用之后,还包括: 如果所述待迁移应用对所述目标承载节点的亲和度不为零,则获取所述待迁移应用对PaaS平台中其他承载节点的亲和度,将亲和度最大值对应的承载节点作为所述待迁移应用的目标承载节点; 如果所述待迁移应用对所述目标承载节点的亲和度为零,则获取同一自治域中其他承载节点的负载,将负载最小值...

【专利技术属性】
技术研发人员:雷磊王志军房秉毅
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1