一种云计算环境下的自动伸缩方法和系统与流程

文档序号:19664092发布日期:2020-01-10 21:23阅读:590来源:国知局
一种云计算环境下的自动伸缩方法和系统与流程

本申请是如下母案的分案申请:

申请号:2013102529710

申请日:2013年6月24日

发明名称:一种云计算环境下的自动伸缩方法和系统。

本发明涉及云计算领域,特别地,涉及云计算环境下的自动伸缩方法和系统。



背景技术:

传统上采用纵向伸缩方案或横向伸缩方案来实现负载均衡。具体来说,纵向伸缩通过增加单台物理设备的性能来提升服务能力,例如提升物理设备的cpu、内存以及网卡带宽等。这样的服务能力提升,往往需要物理设备进行停机维护,因此业务中断将无法避免。其次,物理设备性能提升是有极限瓶颈的,例如一台物理设备支持的cpu个数以及内存数受限于技术的成熟度。

传统上的横向扩展过程,一般都是通过采购和部署新的硬件设施来实现的,整个决策和执行过程往往是以星期为单位,效率很低。另外也可能存在计划外的并发请求突然增加,导致系统瘫痪的情况,为防备这种情况的出现,就需要增加更多的备用计算节点,造成硬件资源的大量浪费。



技术实现要素:

为解决上述问题,本发明提出了一种云计算环境下的自动伸缩方法,包括:通过iaas管理平台中的虚拟机监控接口来定时采集监控信息,并将其写入缓存中;分析所述缓存中的监控信息;判断所分析的监控信息是否达到伸缩阈值;在所分析的监控信息达到所述伸缩阈值时,根据所述iaas管理平台中预定义的伸缩配额、应用中预定义的伸缩配额以及伸缩策略来调用所述iaas管理平台中的伸缩接口来创建或移除虚拟机;以及通过所述iaas管理平台中的命令执行接口来完成应用和负载平衡的配置。

根据本发明的另一个方面,提供了一种云计算环境下的自动伸缩系统,包括:iaas管理平台和应用,其中,所述iaas管理平台包含用于根据虚拟机的ip地址来获取该虚拟机的运行信息的虚拟机监控接口、用于创建或移除虚拟机的伸缩接口以及命令执行接口;以及所述应用包含应用伸缩管理模块,所述应用伸缩管理模块含有如下功能单元:监控单元,用于通过所述iaas管理平台中的所述虚拟机监控接口来定时采集监控信息,并将其写入缓存中;分析单元,用于分析所述缓存中的监控信息;判断单元,用于判断所分析的监控信息是否达到伸缩阈值;伸缩单元,用于在所分析的监控信息达到所述伸缩阈值时,根据所述iaas管理平台中预定义的伸缩配额、应用中预定义的伸缩配额以及伸缩策略来调用所述iaas管理平台中的所述伸缩接口来创建或移除虚拟机;以及配置单元,用于通过所述iaas管理平台中的所述命令执行接口来完成应用和负载平衡的配置。

在上述自动伸缩系统中,所述iaas管理平台还包含用于查询伸缩任务的执行结果的任务查询接口。

在上述自动伸缩系统中,所述iaas管理平台还包含配额管理模块,用于提供预定义的伸缩配额。

在上述自动伸缩系统中,所述应用伸缩管理模块还含有:伸缩配额单元,用于对进行伸缩的虚拟机的数量进行控制;以及伸缩策略单元,用于提供伸缩策略和/或算法,其中,所述伸缩单元根据所述伸缩配额单元提供的预定义的伸缩配额以及所述伸缩策略单元提供的伸缩策略来创建或移除虚拟机。

在上述自动伸缩系统中,所述应用伸缩管理模块还含有:执行单元,用于使虚拟机执行用户下发的命令。

在上述自动伸缩系统,其中,所述虚拟机监控接口是面向用户的监控接口。

采用上述自动伸缩方案,可提供根据应用服务实时运行状况进行服务能力的扩展伸缩能力。并且,本发明所述的自动伸缩服务可实现全自动化流程,便于管理与应用。此外,本发明所述的自动伸缩方案由于与云环境下的虚拟化技术完美整合,可做到在充分利用资源的情况下(计算资源不专门闲置备用、动态配置)快速完成服务能力的自动扩展,大大降低了应对突发情况的响应速度与能力,从而提高了整个系统的效率。

附图说明

在参照附图阅读了本发明的具体实施方式以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是:这些附图仅仅用于配合具体实施方式说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。

图1示出支持负载均衡和横向扩展的javaweb应用架构;

图2是对图1所述的应用架构进行横向扩展的示意图;

图3是根据本发明的一个实施例的自动伸缩系统的示意图;

图4是根据本发明的一个实施例的自动伸缩方法的示意图。

具体实施方式

下面介绍的是本发明的多个可能实施例中的一些,旨在提供对本发明的基本了解,并不旨在确认本发明的关键或决定性的要素或限定所要保护的范围。容易理解,根据本发明的技术方案,在不变更本发明的实质精神下,本领域的一般技术人员可以提出可相互替换的其它实现方式。因此,以下具体实施方式以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。

在接下来的具体描述中会多次提到“iaas管理平台”。在本发明的上下文中,“iaas”是指云计算平台的最底层——it基础设施,即infrastructureasaservice。服务提供商将it基础设施(包括服务器、网络、存储、操作系统)虚拟化后变成一种程序可管理的虚拟资源,通过网络为用户提供计算和存储服务。“iaas管理平台”的设计目标是在云计算环境中将数据中心所有服务器、存储和网络设备集中统一管理,通过模版配置和动态调整等功能为用户提供整合的、高可用性的、可快速部署使用的it基础设施。因此该平台具备云资源管理能力,尤其包括虚拟机生命周期管理(创建、删除、停止、关机等),同时也具备将其管理能力形成服务对外提供。

为提高应用系统在高并发请求场景下的可用性,一般要采取支持负载均衡和横向扩展的应用部署架构模式,以典型的javaweb应用为例,如图1所示,其通过专业的负载均衡器f5(其高负载性由其产品自身保证,本说明书不详细展开),将外部请求分发至反向代理层,反向代理再对请求进行二次分发,将其分发至应用处理层,每个层次都不存在单点故障,该部署架构大大提高了系统的可用性。

当外部的并发请求量越来越大时,通过对上述架构进行横向扩展,增加不同层次的处理节点,将增加的请求负载转移到新的处理节点上,以保证可用性不变,如图2所示。

在云计算环境中,大量的计算能力通过虚拟化技术进行资源池化,并例如以虚拟机的形式对外提供服务。由于虚拟机本质以物理设备的文件形式存在,其具有高效的管理性,便于动态生成与删除。因此基于以上特征,云计算环境中实现自动伸缩能力具有先天的优势。

不过由于应用场景多种多样,iaas管理平台无法独立完成整个自动伸缩过程。因此在云计算环境中实现自动伸缩需要iaas管理平台和应用两部分组合实现。本发明提出在iaas管理平台侧提供监控、伸缩、脚本执行等基础能力,而在应用侧开发自己的伸缩处理模块,调用iaas管理平台的相应接口,来完成整个伸缩过程,如图3所示。

图3示出了根据本发明的一个具体实施例的自动伸缩系统,该系统包括了iaas管理平台和应用伸缩管理模块。其中,iaas管理平台提供以下能力和接口:

虚拟机监控接口:该接口是面向用户的接口,可根据指定虚拟机(vm)的ip,获取该虚拟机的运行信息,包括cpu、内存、io等。在一个实施例中,该接口不提供远程调用方式,而是只提供本地jar包,应用方只需要调用该包中稳定的监控接口即可。

伸缩接口:该接口可以创建扩展虚拟机(伸)或者移除虚拟机(缩)。

任务查询接口:伸缩任务需要长时间运行,因此设计为异步模式,通过该接口可查询伸缩任务的执行结果。

命令执行接口:这个接口其实是一系列接口,包括执行虚拟机内部脚本的接口,变更f5配置的接口等。

伸缩服务开通和配额管理:在云平台管理员为应用方开通自动伸缩服务,指定伸缩配额,业务区,网段等信息后,应用才可以调用伸缩接口实现自动伸缩功能。

图3所示的应用伸缩管理模块包含如下的功能单元:

监控采集和监控缓存:定时调用云平台提供的jar包对己方虚拟机进行监控,保存本系统关心的监控信息作为伸缩依据。应用方需要根据应用特点设定采集频率和缓存数据有效期。

伸缩配额和伸缩策略:伸缩配额是指伸缩虚拟机的数量控制,应用方也需要在自己的系统中对其进行设置,防止过度调用云平台伸缩接口而被禁用服务。伸缩策略是指伸缩的算法依据,可以设计地非常灵活,也可以仅仅为几个参数,比如多长时间段的cpu占用率均值大于多少就进行“伸”。

伸缩决策:以监控缓存和伸缩策略、配额为依据,对是否伸缩进行决策。如果答案是肯定的,就调用云平台的伸缩接口发起伸缩指令,由于该指令是异步执行的,所以还需要定时调用任务查询接口来判断伸缩是否成功。

应用和负载均衡配置:虚拟机层次伸缩成功后,还需要调用接口对应用服务器和负载均衡等进行各种配置。

虚拟机内部的配置脚本:云平台仅提供虚拟机内部的脚本调用接口,脚本本身的实现还需要应用方自己来完成,主要包括应用服务器配置,应用配置,反向代理配置等。

图4示出了一种云计算环境下的自动伸缩方法。该方法包括:通过iaas管理平台中的虚拟机监控接口来定时采集监控信息,并将其写入缓存中;分析缓存中的监控信息;判断所分析的监控信息是否达到伸缩阈值;在所分析的监控信息达到伸缩阈值时,根据iaas管理平台中预定义的伸缩配额、应用中预定义的伸缩配额以及伸缩策略来调用iaas管理平台中的伸缩接口来创建或移除虚拟机;以及通过iaas管理平台中的命令执行接口来完成应用和负载平衡的配置。

综上所述,本发明提出了一种云计算环境下的自动伸缩方案,该方案分别由云环境下iaas管理平台能力接口以及应用的伸缩管理模块两部分组成。其中,iaas管理平台能力接口包括vm监控接口、vm伸缩接口、任务查询接口、命令执行接口和伸缩服务开通和配额管理;伸缩管理模块包括监控采集和监控缓存、伸缩配额和伸缩策略、伸缩决策、应用和负载均衡配置和虚拟机内部的配置脚本。在利用iaas管理平台动态创建、删除虚拟机能力以及实时监控能力的基础上,应用可全自动化地快速完成服务能力的自动扩展,从而大大降低了应对突发情况的响应速度与能力,从而提高了整个系统的效率。

上文中,参照附图描述了本发明的具体实施方式。但是,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1