云计算环境下的自动伸缩方法和系统与制作流程
云计算平台的弹性伸缩与使用教程

云计算平台的弹性伸缩与使用教程近年来,云计算平台在各个行业中的应用越来越广泛。
云计算平台的弹性伸缩是其中一个重要的功能,它可以帮助企业灵活地调整资源,以满足不同的业务需求。
本文将介绍云计算平台的弹性伸缩的概念、原理和使用教程,以帮助读者更好地了解和应用。
一、弹性伸缩的概念云计算平台的弹性伸缩是指根据业务负载的变化,自动调整计算资源的数量。
当业务负载增加时,弹性伸缩可以自动添加更多的计算资源,保证业务的正常运行;而当业务负载减少时,弹性伸缩会自动减少计算资源,以节约成本。
弹性伸缩可以帮助企业提高效率、降低成本,并增加业务的稳定性和可靠性。
二、弹性伸缩的原理弹性伸缩的原理基于以下几个核心概念:负载监控、伸缩策略和资源调度。
1. 负载监控负载监控是弹性伸缩的基础,它通过监控业务系统的负载情况,例如CPU使用率、内存使用率等指标,来判断业务负载的变化。
常用的负载监控工具有Zabbix、Nagios等,它们可以实时监控各项指标,并生成报告供用户查看。
2. 伸缩策略伸缩策略是弹性伸缩的决策依据,它定义了在不同业务负载情况下,云计算平台需要采取的具体伸缩行为。
常见的伸缩策略有基于阈值的伸缩、基于预测的伸缩和基于事件的伸缩。
基于阈值的伸缩是指根据设定的负载阈值,当负载超过或低于阈值时,自动进行伸缩;基于预测的伸缩是根据历史数据和算法预测未来的负载情况,并根据预测结果进行伸缩;基于事件的伸缩是根据特定事件的触发条件,如用户请求量、网络流量等,进行伸缩。
3. 资源调度资源调度是指根据伸缩策略的决策结果,将计算资源分配到不同的机器上。
资源调度可以通过自动化工具,如Kubernetes、Docker等,来实现。
它们可以根据业务需求和资源状况,将任务分配到不同的节点上,并负责监控和管理节点的运行状态。
三、云计算平台弹性伸缩的使用教程下面将介绍云计算平台弹性伸缩的使用教程,以Amazon Web Services(AWS)为例。
云计算的实施步骤和流程解析

云计算的实施步骤和流程解析云计算作为一种新兴的计算模式,以其灵活性、可扩展性和高效性在各行各业迅速得到推广和应用。
然而,要成功地实施和运营云计算,需要遵循一系列的步骤和流程,本文将对云计算的实施步骤和流程进行解析。
1.需求评估与规划在实施云计算之前,首先需要进行需求评估和规划。
这个阶段的目标是了解组织的业务需求和目标,确定云计算的实施目标,并评估组织的资源、技术和人员能力。
通过需求评估和规划,可以为后续的实施工作提供指导和依据。
2.架构设计与选择云计算的架构设计与云服务的选择是实施云计算的核心环节。
根据需求评估的结果,设计合适的云计算架构,并选择适合组织的云服务提供商或搭建私有云。
架构设计和云服务的选择应该充分考虑组织的需求、预算、安全性要求以及数据存储与处理的性能要求。
3.系统迁移与集成实施云计算的关键之一是将现有的系统迁移到云平台,并与云服务进行集成。
在这个阶段,需要对现有系统进行分析和改造,以使其能够与云平台无缝集成,并实现数据的迁移和同步。
系统迁移和集成的过程需要进行测试和调试,确保系统的正常运行和数据的安全性。
4.数据迁移与备份在云计算的实施过程中,数据的迁移和备份是一个关键环节。
数据迁移的目标是将现有的数据迁移到云平台,并保证数据的完整性和安全性。
同时,需要制定合适的数据备份策略,确保数据的可靠性和恢复性。
数据迁移和备份的过程需要注意数据的安全传输和存储,以及数据隐私的保护。
5.安全性和性能优化云计算的安全性和性能优化是实施云计算的重要环节。
安全性方面,需要制定安全策略和控制措施,加强对云平台和云服务的监控和管理,保护用户的隐私和数据安全。
性能优化方面,需要对云架构和应用进行优化,提高系统的性能和响应速度,以满足用户的需求。
6.监测与管理实施云计算后,需要进行系统的监测和管理,及时发现和解决问题,确保系统的稳定运行和高效性能。
监测与管理的内容包括系统的性能监测、资源的分配与调度、用户的访问控制和权限管理等。
云计算的开发流程与规范

云计算的开发流程与规范云计算技术在当今社会中已经得到广泛的应用和认可。
然而,想要正确开发出高效的云应用程序并不是一件简单的事情。
本文将探讨云计算的开发流程与规范,帮助开发者更好地理解云计算技术,并提高技术开发的效率。
一、认识云计算云计算是一种基于互联网的计算方式,它通过网络提供计算能力、存储空间和应用程序等服务。
云计算提供了更加高效、便捷的计算服务方式,让用户在不用担心硬件设备的情况下,使用互联网上的计算资源。
云计算服务主要分为三种:基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS)。
不同的云计算服务有不同的开发和使用方式,了解和掌握这些差异可以为开发者提供更加精准的服务选择。
二、云计算开发流程云计算开发的流程可以分为四个阶段:分析需求、设计架构、编写代码和测试上线。
下面分别进行深入探讨。
1. 分析需求在开发云应用程序之前,开发者需要了解客户的实际需求。
这些需求包括性能、可用性、可靠性、安全性等方面。
通过了解客户的需求,开发者可以确定云应用程序需要提供的功能,并将这些功能作为后续开发的指导方针。
2. 设计架构在了解了客户需求之后,开发者需要进行系统设计。
这一阶段需要考虑系统的总体架构、网络结构、数据存储和数据传输方式等方面。
通过建立清晰的系统架构和网络结构,可以为后续的编码提供良好的基础环境。
3. 编写代码编写代码是云计算开发中最重要的阶段。
在编写代码之前,开发者需要熟悉云计算技术的各项规范和开发者所用的编程语言的特性。
在编写代码时,需要注意代码的扩展性、可维护性、可重用性等方面,确保开发出高效、健壮并具有良好可操作性的云应用程序。
4. 测试上线将代码部署到云服务器上并进行测试是云计算开发中的最后一个阶段。
在测试之前,开发者需要清理代码,确保代码是有效的、健壮的和安全的。
云计算的弹性伸缩

云计算的弹性伸缩云计算作为一种先进的信息技术,已经被广泛应用于各个领域。
其中,其弹性伸缩的特性是云计算的一大亮点。
本文将探讨云计算的弹性伸缩概念、原理以及在实践中的应用。
1. 弹性伸缩的概念弹性伸缩是云计算中的一个重要概念,指的是根据实际需求,动态地调整云计算资源的数量。
也就是说,当用户的需求增加时,系统可以自动增加计算、存储或网络资源,以满足这一增长的需求;相反,当用户的需求减少时,系统也能够自动释放不再需要的资源,以节约成本。
2. 弹性伸缩的原理弹性伸缩的实现依赖于云计算平台提供的虚拟化技术和自动化管理系统。
虚拟化技术可以将物理资源(如服务器、存储设备等)抽象为虚拟资源,使其被灵活地分配和管理。
自动化管理系统则可根据用户设定的规则,根据实时监测到的需求情况,自动地调整云计算资源。
3. 弹性伸缩的应用弹性伸缩的应用广泛存在于各个领域。
以云服务器为例,它可以根据用户的访问量和负载情况,自动增减服务器实例数量,并进行负载均衡,以保证系统的高可用性和性能。
此外,在大数据分析领域,弹性伸缩可以根据分析任务的规模和复杂度,自动调整计算资源,加速分析过程。
在互联网应用中,如电商平台,弹性伸缩可以根据促销活动和流量高峰,自动增加服务器容量,以满足用户的需求。
4. 弹性伸缩面临的挑战尽管弹性伸缩在云计算中具有重要意义,但其实现也面临一些挑战。
首先,对于用户来说,设定合适的规则和阈值是一个技术活,需要根据应用场景和业务需求进行细致的调整。
其次,弹性伸缩所依赖的虚拟化技术和自动化管理系统,需要在硬件和软件方面有所投入,也需要拥有相应的专业知识和经验。
此外,弹性伸缩对网络和存储等基础设施的要求较高,需要具备高性能和高可扩展性。
5. 结语云计算的弹性伸缩为用户提供了灵活且高效的资源调配方式,可以根据实际需求进行资源的动态增减。
然而,弹性伸缩的实现需要在技术、规则和基础设施等多个方面做出努力,以确保系统能够根据用户的需求做出及时的响应。
云计算的云计算操作流程

云计算的云计算操作流程1. 引言云计算是一种基于互联网的计算模式,它将计算资源和服务通过互联网进行动态分配、共享和管理。
云计算的操作流程是指在云计算环境下进行各种计算任务的具体步骤和流程。
本文将详细介绍云计算的云计算操作流程。
2. 云计算的基本原理云计算的基本原理是将计算任务分解成多个子任务,将这些子任务分配给多个计算节点进行处理,最后将处理结果进行整合。
云计算的基本原理可以归纳为以下几个步骤:2.1 提交任务用户首先将待处理的任务提交到云计算平台上。
任务可以是一个程序、一个数据集或者一系列计算步骤。
2.2 任务调度云计算平台根据任务的优先级和资源的可用性,对任务进行调度。
调度算法可以根据不同的策略进行任务分配,以实现高效的计算资源利用。
2.3 资源分配云计算平台根据任务的需求和可用的资源情况,将任务分配给可用的计算节点。
资源分配算法可以考虑节点的负载情况、性能以及网络带宽等因素。
2.4 任务执行计算节点接收到任务后,开始执行任务。
任务执行可以分为多个阶段,每个阶段可以包含多个子任务。
计算节点根据任务的需求,进行相应的计算和数据处理操作。
2.5 结果整合每个计算节点在完成任务后,将结果返回给云计算平台。
云计算平台负责将各个计算节点的结果进行整合,生成最终的计算结果。
3. 云计算的操作流程云计算的操作流程可以分为以下几个步骤:3.1 注册和登录用户首先需要注册一个账号,并通过账号登录云计算平台。
登录后可以进行任务提交、管理和监控等操作。
3.2 任务提交用户通过云计算平台的用户界面或API接口,将待处理的任务提交到云计算平台。
用户需要提供任务的描述、数据集以及计算资源的需求等信息。
3.3 任务调度和资源分配云计算平台根据用户提交的任务进行调度,并将任务分配给可用的计算节点。
任务调度和资源分配的算法可以根据用户的需求和平台的特点进行优化。
3.4 任务执行计算节点接收到任务后,开始执行任务。
计算节点可以根据任务的需求,进行相应的计算和数据处理操作。
《云计算》A卷及答案

《云计算》课程试卷A卷一、单项选择题(共10小题,每题2分,共20分)1、SaaS是()的简称。
A. 软件即服务B. 平台即服务C. 基础设施即服务D. 硬件即服务2、云计算是对()技术的发展与运用A. 并行计算B. 网格计算C. 分布式计算D. 三个选项都是3、与开源云计算系统Hadoop HDFS相对应的商用云计算软件系统是()。
A. Google GFSB. Google MapReduceC. Google BigtableD. Google Chubby4、从研究现状上看,下面不属于云计算特点的是()。
A. 超大规模B. 虚拟化C. 私有化D. 高可靠性5、Swift通过Proxy Server向外提供基于()的接口服务。
A. TCP/UDP接口B. HTTP的REST服务C. 远程过程调用D. 服务库服务6、Hypervisor是一种运行在()的中间层软件,可以允许多个操作系统和应用共享一套基础物理硬件。
A. 物理服务器和操作系统之间B. 不同服务器之间C. 不同网络之间D. 不同操作系统之间7、防火墙是在()执行访问控制策略的一组硬件和软件系统。
A. 单个网络内B. 两个网络之间C. 单个VLAN内D. 都不对8、云存储系统结构模型由4个层次组成,包括存储层、()、应用接口层、访问层。
A.网络层B. 基础管理层C. 中间层D. 物理层9、MapReduce适用于().A. 任意应用程序B. 任意可在Windows Server 2008上的应用程序C. 可以串行处理的应用程序D. 可以并行处理的应用程序10、以下不属于云计算数据中心关键技术是()A. 虚拟化技术B. 网格计算C. 弹性伸缩和动态调配D. 并行计算框架二、判断题(共5小题,每题2分,共10分)1、简单地理解,云计算等于资源的闲置而产生的。
()2、云计算真正实现按需计算,从而有效地提高对软硬件资源的利用效率。
()3、云数据管理技术与数据库管理技术类似。
弹性伸缩架构方案

1.弹性伸缩架构由多个组件组成,包括负载均衡器、自动伸缩组和监控报警系统等。 2.负载均衡器负责将请求分配给多个服务器,提高系统的吞吐量和可用性。 3.自动伸缩组能够根据系统负载自动增加或减少服务器数量,保持系统的稳定性和性能。
弹性伸缩架构概述
▪ 弹性伸缩架构的优势
1.提高系统性能和稳定性,避免因负载过高而导致的系统崩溃 或性能下降。 2.提高资源利用率,减少资源浪费和成本支出。 3.能够适应业务的变化和发展,快速响应业务需求的变化。
▪ 弹性伸缩架构的组件
1.弹性伸缩架构包括多个组件,如负载均衡器、伸缩控制器、 监控器和数据存储等。 2.负载均衡器负责将请求分配给多个服务器,以提高系统的性 能和可用性。 3.伸缩控制器根据监控器的数据,自动调整服务器数量,以满 足业务需求。
架构组件与功能
▪ 弹性伸缩架构的功能
1.弹性伸缩架构具有自动调整资源分配的功能,可根据业务需 求自动增加或减少服务器数量。 2.弹性伸缩架构可提高系统的性能和可用性,确保业务的稳定 性和连续性。 3.弹性伸缩架构可降低运维成本,提高资源的利用率和经济效 益。
弹性伸缩架构的实现方式
1.基于云计算平台的弹性伸缩服务,如AWS的AutoScaling和 阿里云的ESS。 2.自建弹性伸缩系统,通过监控系统和自动化脚本实现资源的 自动伸缩。
弹性伸缩架构的挑战和未来发展
1.需要克服技术和管理方面的挑战,如监控数据的准确性和实 时性、伸缩策略的合理性和智能化等。 2.随着人工智能和机器学习技术的发展,弹性伸缩架构将会更 加智能化和自适应化,能够更好地适应业务的变化和发展。
运维管理与自动化
▪ 运维监控与报警系统
1.实施全面的系统监控:通过对系统各项指标的实时监控,收 集并分析数据,及时发现潜在问题。 2.预警与报警机制:预设阈值,当系统负载或资源利用率超过 预设值时,自动触发报警机制,通知管理员及时处理。 3.历史数据分析:收集并分析历史数据,对系统性能进行优化 ,预防类似问题再次发生。
云计算的基本原理

云计算的基本原理
云计算的基本原理是通过网络连接分布式计算资源,将计算能力、存储能力和软件应用服务等 IT 资源提供给用户,以满足
用户的需求。
具体来说,云计算的基本原理包括以下几个方面:
1. 虚拟化:云计算基于虚拟化技术,将底层的物理硬件资源(如计算机、存储设备等)抽象出来,形成虚拟机、虚拟磁盘等虚拟资源,使其能够灵活地分配和管理。
2. 弹性伸缩:云计算平台可以根据用户的需求动态分配和释放计算资源,根据负载情况进行自动的伸缩调整,实现高效的资源利用和灵活的扩展能力。
3. 多租户管理:云计算平台可以同时为多个用户提供服务,通过严格的隔离和安全机制,确保各用户之间的数据和应用程序互不干扰。
4. 服务化管理:云计算平台提供统一的管理界面和接口,用户可以通过 Web 界面、API 等方式对资源进行管理和操作,实
现资源的自助获取和自动化管理。
5. 高可用性和容错性:云计算平台通过分布式部署和冗余备份,提供高可用的服务,并能够在硬件故障或其他异常情况下快速恢复。
总的来说,云计算的基本原理是利用虚拟化、弹性伸缩、多租户管理、服务化管理和高可用性等技术手段,将计算资源和服务封装成服务,通过互联网实现按需获取和使用,从而提供灵活、高效、可靠的计算能力和服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本技术公开了一种云计算环境下的自动伸缩方法,包括:通过IaaS管理平台中的虚拟机监控接口来定时采集监控信息,并将其写入缓存中;分析所述缓存中的监控信息;判断所分析的监控信息是否达到伸缩阈值;在所分析的监控信息达到所述伸缩阈值时,根据所述IaaS管理平台中预定义的伸缩配额、应用中预定义的伸缩配额以及伸缩策略来调用所述IaaS管理平台中的伸缩接口来创建或移除虚拟机;以及通过所述IaaS管理平台中的命令执行接口来完成应用和负载平衡的配置。
本技术还公开了一种云计算环境下的自动伸缩系统。
权利要求书1.一种云计算环境下的自动伸缩方法,包括:通过IaaS管理平台中的虚拟机监控接口来定时采集监控信息,并将其写入缓存中;分析所述缓存中的监控信息;判断所分析的监控信息是否达到伸缩阈值;在所分析的监控信息达到所述伸缩阈值时,根据所述IaaS管理平台中预定义的伸缩配额、应用中预定义的伸缩配额以及伸缩策略来调用所述IaaS管理平台中的伸缩接口来创建或移除虚拟机;以及通过所述IaaS管理平台中的命令执行接口来完成应用和负载平衡的配置,其中,所述伸缩配额是指伸缩虚拟机的数量控制,所述伸缩策略是指伸缩的算法依据,其中,还包括伸缩决策,所述伸缩决策是指以监控缓存和伸缩策略、配额为依据,对是否伸缩进行决策,如果答案是肯定的,则调用云平台的伸缩接口发起伸缩指令,并且定时调用任务查询接口来判断伸缩是否成功。
2.一种云计算环境下的自动伸缩系统,包括:IaaS管理平台和应用,其特征在于,所述IaaS管理平台包含用于根据虚拟机的IP地址来获取该虚拟机的运行信息的虚拟机监控接口、用于创建或移除虚拟机的伸缩接口以及命令执行接口;以及所述应用包含应用伸缩管理模块,所述应用伸缩管理模块含有如下功能单元:监控单元,用于通过所述IaaS管理平台中的所述虚拟机监控接口来定时采集监控信息,并将其写入缓存中;分析单元,用于分析所述缓存中的监控信息;判断单元,用于判断所分析的监控信息是否达到伸缩阈值;伸缩单元,用于在所分析的监控信息达到所述伸缩阈值时,根据所述IaaS管理平台中预定义的伸缩配额、应用中预定义的伸缩配额以及伸缩策略来调用所述IaaS管理平台中的所述伸缩接口来创建或移除虚拟机;以及配置单元,用于通过所述IaaS管理平台中的所述命令执行接口来完成应用和负载平衡的配置,其中,所述应用伸缩管理模块还含有:伸缩配额单元,用于对进行伸缩的虚拟机的数量进行控制;以及伸缩策略单元,用于提供伸缩策略和/或算法,其中,所述伸缩单元根据所述伸缩配额单元提供的预定义的伸缩配额以及所述伸缩策略单元提供的伸缩策略来创建或移除虚拟机,其中,还包括伸缩决策,所述伸缩决策是指以监控缓存和伸缩策略、配额为依据,对是否伸缩进行决策,如果答案是肯定的,则调用云平台的伸缩接口发起伸缩指令,并且定时调用任务查询接口来判断伸缩是否成功。
3.如权利要求2所述的自动伸缩系统,其中,所述IaaS管理平台还包含用于查询伸缩任务的执行结果的任务查询接口。
4.如权利要求2所述的自动伸缩系统,其中,所述IaaS管理平台还包含配额管理模块,用于提供预定义的伸缩配额。
5.如权利要求2所述的自动伸缩系统,其中,所述应用伸缩管理模块还含有:执行单元,用于使虚拟机执行用户下发的命令。
6.如权利要求2所述的自动伸缩系统,其中,所述虚拟机监控接口是面向用户的监控接口。
技术说明书一种云计算环境下的自动伸缩方法和系统本申请是如下母案的分案申请:申请号:2013102529710申请日:2013年6月24日技术名称:一种云计算环境下的自动伸缩方法和系统。
技术领域本技术涉及云计算领域,特别地,涉及云计算环境下的自动伸缩方法和系统。
背景技术传统上采用纵向伸缩方案或横向伸缩方案来实现负载均衡。
具体来说,纵向伸缩通过增加单台物理设备的性能来提升服务能力,例如提升物理设备的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、内存、IO等。
在一个实施例中,该接口不提供远程调用方式,而是只提供本地jar包,应用方只需要调用该包中稳定的监控接口即可。
伸缩接口:该接口可以创建扩展虚拟机(伸)或者移除虚拟机(缩)。
任务查询接口:伸缩任务需要长时间运行,因此设计为异步模式,通过该接口可查询伸缩任务的执行结果。