Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AUTOMATIC SCALING METHOD AND SYSTEM IN CLOUD COMPUTING ENVIRONMENT
Document Type and Number:
WIPO Patent Application WO/2014/206266
Kind Code:
A1
Abstract:
Disclosed is an automatic scaling method in the cloud computing environment, comprising: collecting monitoring information regularly through a virtual machine (VM) monitoring interface in an laaS management platform and writing the monitoring information into a cache; analyzing the monitoring information in the cache; determining whether the analyzed monitoring information reaches a scaling threshold; if yes, invoking a scaling interface in the laaS management platform according to the scaling quota predefined in the laaS management platform, the scaling quota predefined in an application, and a scaling policy to create or remove a virtual machine; and performing application and load balancing configurations through a command execution interface in the laaS management platform. Also disclosed is an automatic scaling system in the cloud computing environment.

Inventors:
ZU LIJUN (CN)
YU BIAO (CN)
CAI HUA (CN)
WANG HAIBING (CN)
HE SHUO (CN)
Application Number:
PCT/CN2014/080564
Publication Date:
December 31, 2014
Filing Date:
June 24, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CHINA UNIONPAY CO LTD (CN)
International Classes:
H04L29/08
Foreign References:
CN102833355A2012-12-19
CN102244685A2011-11-16
CN102646062A2012-08-22
CN102868744A2013-01-09
US20120324073A12012-12-20
Attorney, Agent or Firm:
CHINA PATENT AGENT (HK) LTD. (CN)
中国专利代理(香港)有限公司 (CN)
Download PDF:
Claims:
权利要求

1. 一种云计算环境下的自动伸缩方法, 包括:

通过 IaaS管理平台中的虚拟机监控接口来定时釆集监控信息, 并将其写 入緩存中;

分析所述緩存中的监控信息;

判断所分析的监控信息是否达到伸缩阔值;

在所分析的监控信息达到所述伸缩阔值时, 根据所述 IaaS管理平台中预 定义的伸缩配额、 应用中预定义的伸缩配额以及伸缩策略来调用所述 IaaS管 理平台中的伸缩接口来创建或移除虚拟机; 以及

通过所述 IaaS管理平台中的命令执行接口来完成应用和负载平衡的配置。

2. 一种云计算环境下的自动伸缩系统, 包括: IaaS 管理平台和应用, 其 特征在于,

所述 IaaS管理平台包含用于根据虚拟机的 IP地址来获取该虚拟机的运行 信息的虚拟机监控接口、 用于创建或移除虚拟机的伸缩接口以及命令执行接 口; 以及

所述应用包含应用伸缩管理模块,所述应用伸缩管理模块含有如下功能单 元:

监控单元, 用于通过所述 IaaS管理平台中的所述虚拟机监控接口来定时 釆集监控信息, 并将其写入緩存中;

分析单元, 用于分析所述緩存中的监控信息;

判断单元, 用于判断所分析的监控信息是否达到伸缩阔值;

伸缩单元,用于在所分析的监控信息达到所述伸缩阔值时,根据所述 IaaS 管理平台中预定义的伸缩配额、应用中预定义的伸缩配额以及伸缩策略来调用 所述 IaaS管理平台中的所述伸缩接口来创建或移除虚拟机; 以及

配置单元, 用于通过所述 IaaS管理平台中的所述命令执行接口来完成应 用和负载平衡的配置。

3. 如权利要求 2所述的自动伸缩系统,其中, 所述 IaaS管理平台还包含用 于查询伸缩任务的执行结果的任务查询接口。

4. 如权利要求 2所述的自动伸缩系统,其中, 所述 IaaS管理平台还包含配 额管理模块, 用于提供预定义的伸缩配额。

5. 如权利要求 2所述的自动伸缩系统, 其中, 所述应用伸缩管理模块还含 有:

伸缩配额单元, 用于对进行伸缩的虚拟机的数量进行控制; 以及 伸缩策略单元, 用于提供伸缩策略和 /或算法, 其中, 所述伸缩单元根据 所述伸缩配额单元提供的预定义的伸缩配额以及所述伸缩策略单元提供的伸 缩策略来创建或移除虚拟机。

6. 如权利要求 2所述的自动伸缩系统, 其中, 所述应用伸缩管理模块还含 有: 执行单元, 用于使虚拟机执行用户下发的命令。

7. 如权利要求 2所述的自动伸缩系统, 其中, 所述虚拟机监控接口是面向 用户的监控接口。

Description:
一种云计算环境下的自动伸缩方法和系统 技术领域

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

传统上釆用纵向伸缩方案或横向伸缩方案来实 现负载均衡。 具体来说, 纵 向伸缩通过增加单台物理设备的性能来提升服 务能力, 例如提升物理设备的

CPU, 内存以及网卡带宽等。 这样的服务能力提升, 往往需要物理设备进行停 机维护, 因此业务中断将无法避免。其次,物理设备性 能提升是有极限瓶颈的, 例如一台物理设备支持的 CPU个数以及内存数受限于技术的成熟度。

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

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

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

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

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

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

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

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

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

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

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

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

具体实施方式

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

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

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

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

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

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

图 3示出了根据本发明的一个具体实施例的自动 缩系统,该系统包括了 IaaS管理平台和应用伸缩管理模块。其中, IaaS管理平台提供以下能力和接口: 虚拟机监控接口: 该接口是面向用户的接口, 可根据指定虚拟机 (VM)的 ip, 获取该虚拟机的运行信息, 包括 CPU、 内存、 10等。 在一个实施例中, 该接口不提供远程调用方式, 而是只提供本地 jar包, 应用方只需要调用该包 中稳定的监控接口即可。

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

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

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

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

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

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

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

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

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

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

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

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

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