云平台下自动弹性地分配资源的方法和系统的制作方法

文档序号:9399311
云平台下自动弹性地分配资源的方法和系统的制作方法
【技术领域】
[0001]本发明涉及云计算,尤其涉及一种云平台下自动弹性地分配资源的方法和系统。
【背景技术】
[0002]云计算是网格计算、分布式计算、并行计算、网络存储、虚拟化等传统计算机和网络技术发展融合的产物,是下一代网络计算平台的核心技术,它将计算任务分布在大量物理计算机构成的资源池上,使各种应用能够按需获取计算能力、存储空间和信息服务,从而实现资源的全面透明共享,数据的可靠安全存储,它从根本上改变了信息发布、获取和共享的方式。
[0003]随着云计算时代的到来,应用的部署从单机演变为分布式集群部署来提高应用的服务能力,但是也存在部署复杂、资源利用率低等问题。因此,如何利用当前流行的container (容器)虚拟化技术(如docker技术)构建云计算平台,使应用以container作为载体直接进行启动和停止,通过对性能指标进行监控,根据守护和弹性规则来增减应用数量,保证应用健康运行的同时提高服务器资源的利用率已经成为一种趋势。
[0004]Container (容器)是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其它复杂性。
[0005]Docker是一个开源的应用容器引擎,开发者可以利用docker技术将应用打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),几乎没有性能开销,可以很容易地在机器和数据中心中运行,最重要的是,它们不依赖于任何语言、框架,包括系统。
[0006]目前本领域主要使用如下两种方案进行守护与弹性扩展。第一种,研发人员自己实现守护与弹性策略;在早期的系统中,为了让系统能具有横向的扩展能力,很多的研发人员会自己给系统增加这样的弹性扩展功能,能让应用程序在计算量巨大的时候利用更多的服务器来更快的解决问题,典型的例子如hadoop等。第二种是手动部署扩展;这种方式常常用于老的系统,系统在研发的时候,架构师预留了横向扩展的能力,但是扩展方式只能是手动的增删节点。对于计算量波动不大,应用程序不多,服务器较少的企业来说,这也是一种非常好的思路。因为系统扩展的需求不会很频繁,手工操作也能满足需求。
[0007]然而,上述现有的第一种方法最大的缺点在于弹性模块不能复用,每个系统由于部署方法不同,系统架构不同,都需要重新实现弹性模块,因此会增加很多的工作量。对于上述现有的第二种方法,大型互联网公司由于系统和服务器比较多,需要太多的人力参与。而且,像电子商务等业务的流量波动非常大,例如京东晚上的流量肯定要大于白天的流量,618等节假日的流量也要远大于平时的流量。流量分布不均匀导致系统对于弹性扩展的响应时间有较高的要求。再者,现有的技术方案通常是将应用程序直接部署到物理机上,因此在部署之前需要安装依赖文件,拷贝配置文件,应用下线后还需要清理系统环境,因此,部署流程繁琐,需要复杂的人工操作。
[0008]因此,为了解决上述所提到的现有技术中进行守护与弹性扩展而产生的流程繁琐、工作量大以及响应不够迅速等问题,本发明提出了一种云平台下自动弹性地分配资源的方法和系统。

【发明内容】

[0009]本发明的目的在于提供一种云平台下自动弹性地分配资源的方法和系统,其主要为了使得应用程序在不需要自身实现守护与弹性规则的情况下,由云平台根据其资源的使用情况,快速的进行横向的弹性伸缩。
[0010]本申请的云平台下自动弹性地分配资源的方法,包括以下步骤:A)应用部署文件;B)下载应用的部署文件、解析所述部署文件并将部署信息存储到数据库;C)根据部署信息给该应用分配所需资源;D)下载应用镜像文件、启动容器并运行应用,以及形成应用容器集群;E)判断分配的资源是否与所述部署文件一致,如果所述分配的资源不能满足所述部署文件,未被满足的部分部署文件等待服务器资源管理平台的再次分配;F)自动监控读取应用容器集群的监控数据,同时监控当前存活的应用数量,并计算第一时间段内应用容器集群的平均监控数据;G)比较当前存活的应用数量是否满足守护规则,如果所述当前存活的应用数量在阈值范围内,则重复步骤C) -G)。
[0011]优选地,所述步骤G)具体为:a)如果所述当前存活的应用数量等于最小应用数量,则等待第二时间段,继续执行步骤F)_G) ;b)如果所述当前存活的应用数量小于最小应用数量,则重复步骤C)_G) ;c)如果所述当前存活的应用数量大于最小应用数量,则进行弹性规则判断。
[0012]优选地,所述步骤(G)进一步包括:
[0013]i)如果某一指标低于其阈值的下限值,通知服务器资源管理平台回收资源,每次回收一个应用资源;
[0014]ii)如果某一指标高于或等于其阈值的上限值,通知服务器资源管理平台根据应用配置分配资源,每次仅分配一个应用资源,重复步骤D)-G)。
[0015]优选地,所述步骤D)中的所述镜像文件包含了运行时环境的应用程序包。
[0016]优选地,所述弹性规则包括..CPU利用率、内存利用率、磁盘10、磁盘利用率以及网络1的上下限阈值;是否开启弹性规则;以及运行过程中阈值可调整。
[0017]本申请的云平台下自动弹性地分配资源的系统,包括:应用模块A,用于应用部署文件;下载解析模块B,用于下载应用的部署文件、解析所述部署文件并将部署信息存储到数据库;分配模块C,用于根据部署信息给该应用分配所需资源;下载应用镜像文件模块D,用于下载应用镜像文件、启动容器并运行应用以及形成应用容器集群;判断模块E,用于判断分配的资源是否与所述部署文件一致,如果所述分配的资源不能满足所述部署文件,未被满足的部分部署文件等待服务器资源管理平台的再次分配;数据监控模块F,用于自动监控读取应用容器集群的监控数据、同时监控当前存活的应用数量并计算第一时间段内应用容器集群的平均监控数据;比较模块G,用于比较当前存活的应用数量是否满足守护规贝1J,如果所述当前存活的应用数量在阈值范围内,则模块C-G依次操作。
[0018]优选地,所述比较模块G具体进行如下操作:
[0019]a)如果所述当前存活的应用数量等于最小应用数量,则等待第二时间段,然后模块F-G依次操作;
[0020]b)如果所述当前存活的应用数量小于最小应用数量,则模块C-G依次重复操作;
[0021]c)如果所述当前存活的应用数量大于最小应用数量,则进行弹性规则判断。
[0022]优选地,所述模块G进一步进行如下操作:
[0023]i)如果某一指标低于其阈值的下限值,通知服务器资源管理平台回收资源,每次回收一个应用资源;
[0024]ii)如果某一指标高于或等于其阈值的上限值,则根据应用配置分配资源,每次仅分配一个应用资源,模块D-G依次操作。
[0025]优选地,所述模块D中的所述镜像文件包含了运行时环境的应用程序包。
[0026]优选地,所述弹性规则包括..CPU利用率、内存利用率、磁盘10、磁盘利用率以及网络1的上下限阈值;是否开启弹性规则;以及运行过程中阈值可调整。
[0027]通过采用本发明的上述技术方案,能够获得以下有益效果:1)简化应用的部署流程,无需复杂的人工操作,通过镜像文件可直接部署成功;2)支持任何的应用程序,无需应用程序自身实现弹性功能;3)规则灵活:守护规则能保证应用程序能无中断的服务,弹性规则能让应用程序根据业务需求设计出不同的弹性策略;4)响应迅速:监控数据可以做到秒级,应用守护和弹性可以做到分钟级别。
【附图说明】
[0028]图1是本申请的云平台下自动弹性地分配资源的方法的流程图;
[0029]图2是本申请的云平台下自动弹性地分配资源的系统的框图。
【具体实施方式】
[0030]本申请提出了一种云平台下自动弹性地分配资源的方法。如图1所示,本申请所述的方法主要包括以下步骤:A)应用部署文件;B)下载应用的部署文件、解析部署文件并将部署信息存储到数据库,所述部署文件包括应用的基础信息(如应用名称、版本、开发者、维护人等)、启动信息(依赖的应用、启动命令等)、弹性规则(CPU利用率、内存利用率、磁盘10、磁盘利用率、网络1等的上下限阈值,是否开启弹性规则,运行过程中阈值可调整)、部署信息(CHJ核数、内存大小、磁盘大小、带宽、最小应用数量等);C)服务器资源管理平台根据部署信息给该应用分配所需资源;D)下载镜像文件,启动容器(container)并运行应用,形成应用容器集群,其中所述镜像文件是包含了运行时环境的应用程序包,任何可执行的文件都可以制作成镜像文件;E)判断分配的资源是否与部署文件一致,如果所述分配的资源不能满足所述部署文件,未被满足的部分部署文件等待服务器资源管理平台的再次分配;F)自动监控读取
再多了解一些
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1