一种应用集群的扩容方法、装置和系统与流程

文档序号:14504491阅读:239来源:国知局

本申请涉及计算机处理的技术领域,特别是涉及一种应用集群的扩容方法、一种应用集群的扩容装置和一种应用集群的扩容系统。



背景技术:

云计算是一种通过互联网以服务方式提供动态可伸缩的虚拟资源的计算模式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。

云计算的基础环境是虚拟化,通过虚拟机(vm,virtualmachine)部署应用集群,共享云计算的资源。

当应用集群整体负载偏高的情况下,为了保障应用集群的正常运行,一种方式是限流,即对应用请求进行拦截,减轻应用集群的压力,以牺牲部分应用请求为代价,保障应用集群整体的可用性。

另外一种解决方法是应用扩容,即在短时间内,进行应用的扩容启动。

应用扩容,常规的方式就是走扩容流程,一步一步的将资源准备好。

例如,发起扩容请求,包含请求的应用名称、请求的资源,然后资源分配系统计算可分配的资源位置信息,依赖底层运维工具,将虚拟机容器生成,同步应用代码和配置等信息,一一初始化之后并启动应用,开启报警监控等其他运维工具,最后服务正式上线工作。

但是,这种常规的扩容方式步骤多,扩容周期长、效率低。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用集群的扩容方法和相应的一种应用集群的扩容装置、一种应用集群的扩容系统。

为了解决上述问题,本申请公开了一种应用集群的扩容系统,所述系统包括:

一个或多个处理器;

存储器;和

一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:

监控应用集群的整体资源负载信息;

当所述整体资源负载信息满足预设的预扩容条件时,为所述应用集群添加实例;

当所述整体资源负载信息满足预设的扩容条件时,将所述实例接入所述应用集群进行服务。

本申请实施例还公开了一种应用集群的扩容方法,包括:

监控应用集群的整体资源负载信息;

当所述整体资源负载信息满足预设的预扩容条件时,为所述应用集群添加实例;

当所述整体资源负载信息满足预设的扩容条件时,将所述实例接入所述应用集群进行服务。

本申请实施例还公开了一种应用集群的扩容装置,包括:

资源负载信息监控模块,用于监控应用集群的整体资源负载信息;

预扩容模块,用于在所述整体资源负载信息满足预设的预扩容条件时,为所述应用集群添加实例;

扩容模块,用于在所述整体资源负载信息满足预设的扩容条件时,将所述实例接入所述应用集群进行服务。

本申请实施例包括以下优点:

本申请实施例在应用集群的整体资源负载信息满足预扩容条件时,为应用集群添加实例,如果应用集群的负载继续上升,当整体资源负载信息满足扩容条件时,将实例接入应用集群进行服务,提前准备资源,使得应用进入热备状态,在需要扩容的时候,避免了繁琐的扩容步骤,可以马上切入流量进行服务,大大减少了扩容的周期,实现了快速扩容,提升应用集群自然流量应对的实时性,保证应用集群稳定运行。

附图说明

图1是本申请的一种应用集群的扩容方法实施例的步骤流程图;

图2a-图2c是本申请实施例的一种应用集群的扩容示例图;

图3是本申请的一种应用集群的扩容装置实施例的结构框图;

图4是本申请的一种服务器实施例结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,示出了本申请的一种应用集群的扩容方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,监控应用集群的整体资源负载信息。

在本申请实施例中,应用集群为应用的多个实例组成的集合,所谓应用,是指实现一个或多个功能的模块,同一个应用集群中的应用属于同一个类型。

这些应用可以包括web(网页)应用,该web应用并不一定限定在web,也可以是无线app(application,应用程序)的应用等等,例如,若云计算平台为电商平台,则该平台的某个应用可以实现查询商品数据的功能,某个应用可以实现获取会员信息、收货地址的功能等等。

web应用可以部署在基于云计算的计算机集群中,如分布式系统,即将用户(开发者)提交的web应用程序放置到相应的web容器中,同时配置好配套的负载均衡器、数据库、存储服务等相应组件,以最终保障web应用准确无误地运行的过程。

web应用扩容针对的是web应用的负载变化频繁且剧烈的特点,通过在web应用运行过程中动态地增减服务容量来适用负载的变化,在保障服务质量的前提下提升服务资源的利用率。

基于云计算指的是使web应用部署与扩容的架构、流程、模型与云计算的基本环境相适应,进而能够利用通用的云计算基础设施服务(iaas)来实现快速部署与动态扩容,向用户提供平台及服务(paas)。

在具体实现中,应用集群可以部署在多个虚拟机上,虚拟机的监控模块以服务进程的形式常驻服务器,从服务器中周期性(例如,每分钟)地采集多个虚拟机的单体资源负载信息,例如,cpu(centralprocessingunit,中央处理器)利用率、内存利用率、磁盘利用率等等,通过求平均值、加权求和等方式采用单体资源负载信息计算应用集群的整体资源负载信息。

需要说明的是,web应用的多样性除了在功能的反映也有在负载上的反映,不同的web应用对服务器造成的负载不尽相同。

因此,web应用的负载可用的度量方式很多,从qos(qualityofservice,服务质量)的角度看,就存在着并发用户数、活动连接数、每秒请求数和请求平均相应时间等多种指标,而直接从服务器的负载来看,可分为cpu利用率、内存利用率、磁盘利用率、带宽利用率等等,本领域技术人员可以根据实际情况进行设定,本申请实施例对此不加以限制。

例如,对于一个应用下载网站,一般具有很大的带宽占用,属于带宽密集型,负载的监控可以以带宽占用为主;对于一个网上银行,计算过程则比较多,属于计算密集型,cpu利用率就会相对比较高,负载的监控可以以cpu利用率为主;对于一个内容管理网站,在很多用户同时进行内容的提交时会使磁盘或数据库i/o(input/output),输入/输出)繁忙,属于i/o密集型,负载的监控可以以i/o为主。

步骤102,当所述整体资源负载信息满足预设的预扩容条件时,为所述应用集群添加实例。

在具体实现中,可以预先设置预扩容条件,如果应用集群的整体资源负载信息满足该预扩容条件,表示应用集群的整体资源负载较高,有较高的概率需要扩容,可以进行预扩容处理,添加实例,即启动新的、运行的应用,该实例与应用集群的实例属于同一个应用,提前准备扩容的处理。

在本申请的一个实施例中,步骤102可以包括如下子步骤:

子步骤s11,向目标服务器申请虚拟机;

子步骤s12,在预置的容器镜像中心中获取所述应用集群中应用的镜像文件;

子步骤s13,在所述虚拟机中部署所述镜像文件;

子步骤s14,当部署成功时,启动部署在所述虚拟机的实例。

在本申请实施例中,若进行预扩容处理,则可以确定预扩容应用的应用名、实例资源规格信息(例如,cpu的数量、内存的大小、磁盘的大小等)、实例资源数量等信息。

其中,实例资源规格信息、实例资源数量可以是技术人员进行指定,也可以是按照流量进行估算,本申请实施例对此不加以限制。

在计算机集群中,可以按照应用运行特征、应用稳定性特征、邻居应用特征等数据选择具有空闲资源的目标服务器。

例如,某个应用占用cpu/带宽较多(应用运行特征),则选择部署的应用占用cpu/带宽较少(邻居应用特征)的目标服务器;某个应用涉及资损(应用运行特征),如下单应用,如果丢失订单,购物网站需要赔付),则选择较少部署涉及资损的应用(邻居应用特征)的目标服务器,等等。

又例如,某个应用为协调节点(应用稳定性特征),则尽量分散部署,避免集中部署在同一台服务器中;应用的实例尽量分散部署(应用稳定性特征),避免集中部署在同一台服务器中,等等。

虚拟机是基于服务器“虚拟”出来的资源,向目标服务器申请虚拟机,则是向目标服务器申请应用扩容所需的一个实例资源。

申请成功之后,按照应用名在预置的容器镜像中心中获取应用的镜像文件并下载到目标服务器上,执行目标服务器上的agent(代理),进行镜像的部署工作。

由于虚拟机的种类有所不同,如xen、lvm、clocker、lxc等等因此,镜像的部署工作也有所不同。

当虚拟化工作完成之后,则可以启动应用。

例如,若虚拟机为clocker,其虚拟时采用容器,输入命令,clockerpull<image_name>、clockerrun<image_name>即可部署虚拟机、启动容器,其中,image_name为镜像的名称。

又例如,若虚拟机为vm,则在vm中安装agent,启动应用指令时需要向改vmagent发送启动指令,启动部署在vm中的应用。

需要说明的是,应用启动之后,还不能直接对外提供服务。

当然,上述应用的启动方式只是作为示例,在实施本发明实施例时,在在不同的云计算架构下,可以根据实际情况设置其他应用的启动方式,本发明实施例对此不加以限制。另外,除了上述应用的启动方式外,本领域技术人员还可以根据实际需要采用其它应用的启动方式,本发明实施例对此也不加以限制。

步骤103,当所述整体资源负载信息满足预设的扩容条件时,将所述实例接入所述应用集群进行服务。

云计算环境的优势之一在于,可以提供弹性的资源服务,从iaas的角度来说,可以动态地分配虚拟机资源,增减一台虚拟机一般调用相应的接口即可,基于云计算的web应用可以利用此特性构建可伸缩的应用集群,来适用不断变化的负载。

在具体实现中,可以预先设置扩容条件,如果应用集群的整体资源负载信息在满足预扩容条件之后,负载继续攀升,满足扩容条件,表示应用集群的整体资源负载高,可以进行扩容处理。

一般而言,扩容条件的要求比预扩容条件的要求高,例如,预扩容条件为cpu利用率>50%,则扩容条件可以为cpu利用率>70%。

在具体实现中,可以为该应用进行注册、发布,通过均衡负载将流量(如用户请求)切入应用进行处理,对外提供服务。

由于系统在应用域的负载均衡器一般安装反向代理组件来实现请求分发,因此,将应用接入应用集群时,可以将该应用所属的服务器的ip地址加入到反向代理组件的均衡负载域列表里面,使得均衡负载器能够检测到该应用。

本申请实施例在应用集群的整体资源负载信息满足预扩容条件时,为应用集群添加实例,如果应用集群的负载继续上升,当整体资源负载信息满足扩容条件时,将实例接入应用集群进行服务,提前准备资源,使得应用进入热备状态,在需要扩容的时候,避免了繁琐的扩容步骤,可以马上切入流量进行服务,大大减少了扩容的周期,实现了快速扩容,提升应用集群自然流量应对的实时性,保证应用集群稳定运行。

此外,如果应用集群的整体资源负载信息在满足预扩容条件之后,负载降低,当整体资源负载信息满足预设的预扩容释放条件时,则可以释放实例的资源。

需要说明的是,该预扩容释放条件可以与预扩容条件互补,如预扩容条件为cpu利用率≥50%,预扩容释放条件为cpu利用率<50%;该预扩容释放条件也可以与预扩容条件部分重叠,如预扩容条件为cpu利用率≥50%,预扩容释放条件为cpu利用率<45%,避免应用集群的短时间波动造成反复预扩容、释放资源,本申请实施例对此不加以限制。

在具体实现中,可以将部署实例的虚拟机关闭,释放虚拟机上的资源。

本申请实施例在应用集群的整体资源负载信息在满足预扩容条件之后,负载降低,若整体资源负载信息满足预设的预扩容释放条件,则可以释放实例占用的资源,实现了弹性的扩容,避免资源占用造成浪费。

为使本领域技术人员更好地理解本申请实施例,以下通过具体的示例来说明本申请实施例中应用集群的扩容方法。

如图2a所示,操作控制台201从采集多个虚拟机的单体资源负载信息,例如,cpu利用率、内存利用率、磁盘利用率等等,通过求平均值计算应用集群的整体资源负载信息。

如果确定某个应用集群的整体资源负载信息满足预扩容条件,如cpu利用率>50%,则可以对该应用集群进行预扩容处理,执行集群调度中心202的预扩容指令,输入的参数为应用的名称、实例资源规格信息(如4个cpu、6g的内存(memory)、100g的磁盘空间(disk))、实例资源数量(如1)。

在容器镜像中心203中存储了应用的镜像文件,如image_01、image_02、image_03等等。

集群调度中心202根据应用的名称在容器镜像中心203中检索该应用的镜像文件。

同时,按照实例资源规格信息和实例资源数量向计算机集群204申请资源。

计算机集群204中包括多个服务器,如服务器a2041、服务器b2042等等,每个服务器中可以部署一个或多个虚拟机。

如果服务器b2042具有空闲的资源,则可以将服务器b2042作为目标服务器,集群调度中心202可以执行在服务器b2042上部署的agent,进行镜像的部署工作。

在服务器b2042部署的agent接收到集群调度中心202的调度指令,从中提取调度的参数,包括镜像的名称,按照镜像的名称从容器镜像中心203下载镜像到本地。

在服务器b2042部署的agent执行虚拟化指令,如虚拟机cloker的命令clockerpull<image_name>,部署镜像,其中,image_name为镜像的名称。

当虚拟机部署成功之后,即可启动应用,例如,在虚拟机clocker中输入命令,clockerrun<image_name>即可启动容器,其中,image_name为镜像的名称。

如图2b所示,当虚拟机部署成功、应用启动(即虚线圈中的虚拟机、应用)之后,进入待切入流量,进入热备状态,并不直接对外提供服务,因此,这些应用所处的区域可以称之为弹性缓冲区。

如图2c所示,操作控制台201确定该应用集群的整体资源负载信息满足扩容条件,如cpu利用率>70%,则可以对该应用集群进行扩容处理,将该应用在负载均衡器205进行注册,负载均衡器205将流量切入应用进行处理,对外提供服务。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图3,示出了本申请的一种应用集群的扩容装置实施例的结构框图,具体可以包括如下模块:

资源负载信息监控模块301,用于监控应用集群的整体资源负载信息;

预扩容模块302,用于在所述整体资源负载信息满足预设的预扩容条件时,为所述应用集群添加实例;

扩容模块303,用于在所述整体资源负载信息满足预设的扩容条件时,将所述实例接入所述应用集群进行服务。

在本申请的一个实施例中,所述应用集群部署在多个虚拟机上;

所述资源负载信息监控模块301可以包括如下子模块:

单体资源负载信息采集子模块,用于采集所述多个虚拟机的单体资源负载信息;

整体资源负载信息计算子模块,用于采用所述单体资源负载信息计算应用集群的整体资源负载信息。

在本申请的一个实施例中,所述预扩容模块302可以包括如下子模块:

虚拟机申请子模块,用于向目标服务器申请虚拟机;

镜像文件获取子模块,用于在预置的容器镜像中心中获取所述应用集群中应用的镜像文件;

镜像文件部署子模块,用于在所述虚拟机中部署所述镜像文件;

实例启动子模块,用于在部署成功时,启动部署在所述虚拟机的实例。

在本申请的一个实施例中,所述扩容模块303可以包括如下子模块:

流量切入子模块,用于通过均衡负载将流量切入所述实例进行处理。

在本申请的一个实施例中,该装置还可以包括如下模块:

资源释放模块,用于在所述整体资源负载信息满足预设的预扩容释放条件时,释放所述实例占用的资源。

在本申请的一个实施例中,所述资源释放模块可以包括如下模块:

虚拟机关闭子模块,用于将部署所述实例的虚拟机关闭。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种应用集群的扩容系统,所述系统包括:

一个或多个处理器;

存储器;和

一个或多个模块,该一个或多个模块存储于存储器中并被配置成由一个或多个处理器执行,其中,该一个或多个模块具有如下功能:

监控应用集群的整体资源负载信息;

当所述整体资源负载信息满足预设的预扩容条件时,为所述应用集群启动添加实例;

当所述整体资源负载信息满足预设的扩容条件时,将所述实例接入所述应用集群进行服务。

可选地,所述应用集群部署在多个虚拟机上;该一个或多个模块可以具有如下功能:

采集所述多个虚拟机的单体资源负载信息;

采用所述单体资源负载信息计算应用集群的整体资源负载信息。

可选地,该一个或多个模块可以具有如下功能:

向目标服务器申请虚拟机;

在预置的容器镜像中心中获取所述应用集群中应用的镜像文件;

在所述虚拟机中部署所述镜像文件;

当部署成功时,启动部署在所述虚拟机的实例。

可选地,该一个或多个模块可以具有如下功能:

通过均衡负载将流量切入所述实例进行处理。

可选地,该一个或多个模块可以具有如下功能:

当所述整体资源负载信息满足预设的预扩容释放条件时,释放所述实例占用的资源。

可选地,该一个或多个模块可以具有如下功能:

将部署所述实例的虚拟机关闭。

图4是本申请实施例提供的一种服务器结构示意图。该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储的或持久存储的。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在服务器400上执行存储介质430中的一系列指令操作。

服务器400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口758,一个或一个以上键盘456,和/或,一个或一个以上操作系统441,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

中央处理器422可以在服务器400上执行以下操作的指令:

监控应用集群的整体资源负载信息;

当所述整体资源负载信息满足预设的预扩容条件时,为所述应用集群添加实例;

当所述整体资源负载信息满足预设的扩容条件时,将所述实例接入所述应用集群进行服务。

可选地,所述应用集群部署在多个虚拟机上;中央处理器422还可以在服务器400上执行以下操作的指令:

采集所述多个虚拟机的单体资源负载信息;

采用所述单体资源负载信息计算应用集群的整体资源负载信息。

可选地,中央处理器422还可以在服务器400上执行以下操作的指令:

向目标服务器申请虚拟机;

在预置的容器镜像中心中获取所述应用集群中应用的镜像文件;

在所述虚拟机中部署所述镜像文件;

当部署成功时,启动部署在所述虚拟机的实例。

可选地,中央处理器422还可以在服务器400上执行以下操作的指令:

通过均衡负载将流量切入所述应用进行处理。

可选地,中央处理器422还可以在服务器400上执行以下操作的指令:

当所述整体资源负载信息满足预设的预扩释放容条件时,释放所述实例占用的资源。

可选地,中央处理器422还可以在服务器400上执行以下操作的指令:

将部署所述实例的虚拟机关闭。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种应用集群的扩容方法、一种应用集群的扩容装置和一种应用集群的扩容系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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