资源调度方法、资源调度装置和计算机可读存储介质与流程

文档序号:17695257发布日期:2019-05-17 21:26阅读:169来源:国知局
资源调度方法、资源调度装置和计算机可读存储介质与流程
本发明涉及计算机
技术领域
,具体涉及一种资源调度方法、资源调度装置和计算机可读存储介质。
背景技术
:相关技术的云计算平台一般包括弹性伸缩(autoscaling)服务,也即是云计算平台根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务。可以理解,弹性伸缩的扩张前提是必须有空余资源存在。然而,一些政企的专有云,服务器的数量是有限的且业务是分等级的。在一些场景下,例如某个重点业务在使用高峰时,可能所有资源都被使用且没有实例需要被回收,那么弹性伸缩的扩张就无法完成。而此时可能存在一些不重要的业务在运行,这些不重要的业务是可以收缩甚至停止以把资源提供给重点业务,但是当前的技术无法自动完成,必须人工进行。技术实现要素:本发明的目的旨在至少在一定程度上解决上述的技术问题之一。为此,本发明的第一个目的在于提出一种资源调度方法。该方法在最大限度地保证了优先级别较高的应用的稳定运行的同时,可以使得释放后的待释放应用在有资源空闲时恢复,从而更加彻底地保障弹性伸缩服务的进行。本发明的第二个目的在于提出一种资源调度装置。本发明的第三个目的在于提出一种计算机可读存储介质。为达到上述目的,本发明第一方面实施例提出的资源调度方法,包括:接收弹性伸缩服务发送的待扩张应用的业务扩张请求;根据所述业务扩张请求和应用的优先级确定待释放应用,所述待释放应用部署于待释放容器,所述待释放应用的优先级低于所述待扩张应用的优先级;克隆并保存所述待释放容器的容器信息;释放所述待释放容器的资源;发送资源释放消息至所述弹性伸缩服务以使所述弹性伸缩服务在释放资源后的所述待释放容器进行所述待扩张应用的业务扩张。为达到上述目的,本发明第二方面实施例提出的资源调度装置,包括第一接收模块、第一确定模块、克隆模块、释放模块和第一发送模块,所述第一接收模块用于接收弹性伸缩服务发送的待扩张应用的业务扩张请求;所述第一确定模块用于根据所述业务扩张请求和应用的优先级确定待释放应用,所述待释放应用部署于待释放容器,所述待释放应用的优先级低于所述待扩张应用的优先级;所述克隆模块用于克隆并保存所述待释放容器的容器信息;所述释放模块用于释放所述待释放容器的资源;所述第一发送模块用于发送资源释放消息至所述弹性伸缩服务以使所述弹性伸缩服务在释放资源后的所述待释放容器进行所述待扩张应用的业务扩张。为达到上述目的,本发明第三方面实施例提出的非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明第一方面实施例所述的资源调度方法。本发明实施例的资源调度方法、资源调度装置和计算机可读存储介质,在根据优先级确定待释放应用后,克隆并保存待释放容器的容器信息,再释放待释放容器的资源以使待扩张应用进行业务扩张,在最大限度地保证了优先级别较高的应用的稳定运行的同时,可以使得释放后的待释放应用在有资源空闲时恢复,从而更加彻底地保障弹性伸缩服务的进行。本发明的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施方式的实践了解到。附图说明本发明的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:图1是根据本发明一个实施例的资源调度方法的流程示意图;图2是根据本发明另一个实施例的资源调度方法的流程示意图;图3是根据本发明又一个实施例的资源调度方法的流程示意图;图4是根据本发明再一个实施例的资源调度方法的流程示意图;图5是根据本发明另一个实施例的资源调度方法的流程示意图;图6是根据本发明又一个实施例的资源调度方法的流程示意图;图7是根据本发明再一个实施例的资源调度方法的流程示意图;图8是根据本发明另一个实施例的资源调度方法的流程示意图;图9是根据本发明一个实施例的资源调度装置的模块示意图;图10是根据本发明另一个实施例的资源调度装置的模块示意图;图11是根据本发明又一个实施例的资源调度装置的模块示意图;图12是根据本发明再一个实施例的资源调度装置的模块示意图;图13是根据本发明另一个实施例的资源调度装置的模块示意图;图14是根据本发明又一个实施例的资源调度装置的模块示意图;图15是根据本发明再一个实施例的资源调度装置的模块示意图。主要元件符号说明:资源调度装置1000、第一接收模块110、第一确定模块120、第一确定单元122、获取单元124、第二确定单元126、克隆模块130、释放模块140、第一发送模块150、缩减模块160、第二发送模块170、第二接收模块180、第一获取模块190、第三发送模块200、设置模块210、第二获取模块220、第二确定模块230和控制模块240。具体实施方式下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。下面参考附图描述本发明实施例的资源调度方法、资源调度装置1000和计算机可读存储介质。首先,需要说明的是,弹性伸缩(autoscaling)服务是云计算平台根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务。目前对于弹性伸缩云的建设,一般有两种方式,一种是建设虚拟机云,另一种是建设容器云。在通过建设虚拟机云来建设弹性伸缩云的情况下,弹性伸缩在监控虚拟机集群,随时自动替换不健康的实例从而节省运维成本的同时,可以管理虚拟机集群,在高峰期自动增加云服务器(elasticcomputeservice,ecs)实例,在业务回落时自动减少ecs实例,从而节省基础设施成本。弹性伸缩的具体功能包括:(1)动态伸缩模式:基于云监控性能指标(如cpu、内存利用率),自动增加或减少ecs实例;(2)定时伸缩模式:配置周期性任务,定时地增加或减少ecs实例,当周期性需求有所波动时,可同时配置动态伸缩模式以应付不可预期的变化;(3)固定数量模式:通过“最小实例数”属性,可以始终保持健康运行的ecs实例数量,自动替换不健康实例,以保证日常场景实时可用;(4)自动配置负载均衡(serverloadbalancer,slb)和云数据库(remotedataservices,rds):在增加或减少ecs实例时,自动向slb实例添加或移除相应的ecs实例,且自动向rds访问白名单添加或移出该ecs实例的互联网协议地址(internetprotocoladdress,ip)。容器云建设有两种方式,一种是建设在虚拟机上,另一种是建设在物理机上。容器的建设管理业界同行的方案是kubernetes(k8s)和应用容器引擎(docker),一般是作为devops平台存在,一方面管理物理资源,另一方面可以管理应用的开发部署。devops是开发(development)和运营(operations)的组合词,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(qualityassurance)部门之间的沟通、协作与整合。无论是哪种容器云建设方案,当前业界具备的弹性伸缩的具体功能,与上述通过建设虚拟机云来建设弹性伸缩云的情况下的弹性伸缩的具体功能类似。弹性伸缩的扩张前提是必须有空余资源存在。然而,一些政企的专有云,服务器的数量是有限的且业务是分等级的。在一些场景下,例如某个重点业务在使用高峰时,可能所有资源都被使用且没有实例需要被回收,那么弹性伸缩的扩张就无法完成。而此时可能存在一些不重要的业务在运行,这些不重要的业务是可以收缩甚至停止以把资源提供给重点业务,但是当前的技术无法自动完成,必须人工进行。为此,本发明提出了一种资源调度方法,该方法在有限的云资源情况下,最大限度解决了重点业务在突发使用高峰时资源弹性扩张问题,例如高考分数查询等短暂的突发使用高峰的资源弹性扩张问题。另外,该方法在最大限度地保证了优先级别较高的应用的稳定运行的同时,可以使得释放后的待释放应用在有资源空闲时恢复,从而更加彻底地保障弹性伸缩服务的进行。具体地,图1是根据本发明的一个实施例的资源调度方法的流程图。需要说明的是,本发明实施例的资源调度方法可应用于本发明实施例的资源调度装置1000中。如图1所示,该资源调度方法可以包括:步骤s110,接收弹性伸缩服务发送的待扩张应用的业务扩张请求(keybusinessextandquery,kbeq);具体地,本发明实施例的资源调度方法可以由业务分级管理服务(businessclassificationmanagementserver,bcms)进行。也即是说,可以通过在云控制器上增加bcms来使得bcms实现该资源调度方法。可以理解,业务分级管理服务和弹性伸缩服务都是云控制器内的服务。步骤s120,根据业务扩张请求和应用的优先级确定待释放应用,待释放应用部署于待释放容器,待释放应用的优先级低于待扩张应用的优先级;较佳地,本发明实施例的资源调度方法构筑在容器云上。可以理解,因为容器云devops平台的身份能更好的管理各个容器内的应用,而基于虚拟机的云更着重于基础资源。可选地,本发明实施例中,容器云内的每个容器都只运行一个应用,但一个应用可能部署多个容器,这也合乎业界容器的使用一般原则。步骤s130,克隆并保存待释放容器的容器信息;可选地,bcms可在初始化时设置容器业务程序和运行态的克隆存储空间。可以理解,当非核心业务需要停止服务时,它的相关运行内容会在服务器上被删除。这时候就需要在云存储空间单独划分出一块地方,以放置该服务程序和运行态信息。以便于有空余资源的时候,能够重新读出克隆信息,自动恢复运行。可选地,业务的分级管理包含业务的注册、分级设置和弹性策略。业务服务的注册、分级设置等级以及弹性策略,可通过如下的三个表格描述。其中,表1是应用服务分级管理表,表2是应用服务克隆空间管理表,表3是应用服务部署管理表。表1序号主应用名优先级实例数目1app131表2序号服务进程名主应用名容器名容器规格克隆空间1app1_s1app1app1_c1app1_c1_s1app1_s1_path表3序号服务进程名主应用名部署容器名1app1_s1app1app1_c1在表1、表2和表3中,序号是数据索引。主应用名是整体应用名称。可以理解,一个应用可能由多个服务组成,此处的主应用名指的是整体的应用名称,不可重复。优先级表示业务的优先级。可选地,在本发明实施例中,优先级分为3级。可以理解,在其他的实施方式中,优先级可以分为2级、4级、5级或其他任意数量的级别。另外,在本发明实施例中,1级最为重要,2级次之,3级最不重要,也即是说,级别的序号越小,优先性越强。可以理解,在其他的实施方式中,可以是级别的序号越大,优先性越强。当然,还可以任意地确定级别的序号和该级别的优先性,优先级的级别可按需要调整。在此不对优先级的具体确定方式进行限定。实例等同于一台虚拟机,包含cpu、内存、操作系统、网络、磁盘等最基础的计算组件。在本发明实施例中,实例数目可以根据当前实例状态自动填充。服务进程名是应用内的多个服务名。容器名是收缩前该服务所在的容器名。容器规格表示容器所占的资源规格。克隆空间是每个服务运行空间克隆的存储块,在服务缩至停止时自动生成。部署容器名是每个服务部署在的容器的名称,部署容器名根据容器云控制器的部署信息生成。可以理解,在根据业务扩张请求和应用的优先级确定待释放应用时,可以通过查询表1来确定待释放应用。在找到待释放应用后,在克隆并保存待释放容器的容器信息时,可以根据表3来查询待释放应用所有服务对应的容器,也即是待释放容器,然后将待释放容器内的容器信息进行克隆和保存。容器信息可以包括服务的程序和运行空间。值得注意的是,在克隆保存时,可以在表2中插入保存容器信息的地址,例如:app1_s1_path,并记录相关的服务进程信息。步骤s140,释放待释放容器的资源;在一个例子中,待扩张应用的优先级是1级,如表1、表2和表3所示,找到了待释放应用是app1,app1的优先级是3级,实例数是1,app1的app1_s1进程部署在容器app1_c1,容器app1_c1即为待释放容器。在将容器app1_c1的容器信息克隆并保存到地址app1_s1_path时,可以在表2的克隆空间一栏插入地址:app1_s1_path,并记录相关的服务进程信息。然后再释放容器app1_c1的资源,以供待扩张应用进行业务扩张。步骤s150,发送资源释放消息(resourcefreemessage,rfms)至弹性伸缩服务以使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张。可以理解,在释放待释放容器的资源之后,bcms需要与弹性伸缩服务通信,也即是发送资源释放消息至弹性伸缩服务,以使通知弹性伸缩服务已经有资源释放,从而使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张。也即是说,在本发明实施例中,待扩张应用的业务扩张是由弹性伸缩服务进行。为实现根据业务扩张请求和应用的优先级确定待释放应用,可选地,在本发明的一个实施例中,根据业务扩张请求和应用的优先级确定待释放应用,包括:根据应用的优先级和待扩张应用的优先级确定至少一个待选应用,待选应用的优先级低于待扩张应用的优先级;获取至少一个待选应用中的每个待选应用的实例的数量;在每个待选应用的实例的数量均大于零且均不大于预设数量时,确定至少一个待选应用中的其中一个为待释放应用。具体地,如图2所示,资源调度方法包括:步骤s210,接收弹性伸缩服务发送的待扩张应用的业务扩张请求;步骤s222,根据应用的优先级和待扩张应用的优先级确定至少一个待选应用,待选应用的优先级低于待扩张应用的优先级;具体地,如前所述,表1是应用服务分级管理表,表1中记录了每个应用的优先级。因此,可以通过查询表1来获取每个应用的优先级,根据应用的优先级确定待选应用。如前所述,在本发明实施例中,优先级分为3级,1级最为重要,2级次之,3级最不重要,级别的序号越小,优先性越强。值得注意的是,此处“待选应用的优先级低于待扩张应用的优先级”具体是指待选应用的优先性比待扩张应用的优先性弱。可以理解,待选应用的优先级低于待扩张应用的优先级,可以优先保障待扩张应用的稳定运行。步骤s224,获取至少一个待选应用中的每个待选应用的实例的数量;具体地,如前所述,表1是应用服务分级管理表,表1中记录了每个应用的实例数量。因此,可以通过查询表1来获取每个待选应用的实例的数量。步骤s226,在每个待选应用的实例的数量均大于零且均不大于预设数量时,确定至少一个待选应用中的其中一个为待释放应用。可以理解,当应用的实例的数量等于0时,该应用没有资源可以释放,因此,待释放应用的实例的数量需要大于0。另外,预设数量的设置可以用来保证待选应用最少的实例数量。在本发明实施例中,预设数量是1。可以理解,在其他的实施方式中,预设数量可以是2、3、4或其他任意数量。在此不对预设数量的具体数值进行限定。在一个例子中,待扩张应用的优先级是1级,找到所有优先级为2级和3级的应用作为待选应用,所有待选应用的实例的数量都是1,此时,将第一个找到的3级应用作为待释放应用。在另一个例子中,待扩张应用的优先级是1级,找到所有优先级为2级和3级的应用作为待选应用,所有待选应用的实例的数量都是1,此时,将最后一个找到的3级应用作为待释放应用。步骤s230,克隆并保存待释放容器的容器信息;步骤s240,释放待释放容器的资源;步骤s250,发送资源释放消息至弹性伸缩服务以使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张。为实现在当前待选应用的实例的数量大于预设数量时进行资源调度,可选地,在本发明的一个实施例中,资源调度方法包括:在当前待选应用的实例的数量大于预设数量时,减少当前待选应用的实例的数量。具体地,如图3所示,资源调度方法包括:步骤s310,接收弹性伸缩服务发送的待扩张应用的业务扩张请求;步骤s322,根据应用的优先级和待扩张应用的优先级确定至少一个待选应用,待选应用的优先级低于待扩张应用的优先级;步骤s324,获取至少一个待选应用中的每个待选应用的实例的数量;步骤s326,在每个待选应用的实例的数量均大于零且均不大于预设数量时,确定至少一个待选应用中的其中一个为待释放应用。步骤s328,在当前待选应用的实例的数量大于预设数量时,减少当前待选应用的实例的数量。具体地,减少的实例的数量可以是1、2、3或其他任意数量。优选地,减少的实例的数量是1。在一个例子中,待扩张应用的优先级是1级,找到所有优先级为2级和3级的应用作为待选应用,预设数量是1,当前待选应用的实例的数量是2,当前待选应用的实例的数量大于预设数量,此时,缩减1个当前待选应用的实例,缩减后,当前待选应用的实例数量为1。在另一个例子中,待扩张应用的优先级是1级,找到所有优先级为2级和3级的应用作为待选应用,预设数量是1,当前待选应用的实例的数量是3,当前待选应用的实例的数量大于预设数量,此时,缩减1个当前待选应用的实例,缩减后,当前待选应用的实例数量为2。在又一个例子中,待扩张应用的优先级是1级,找到所有优先级为2级和3级的应用作为待选应用,预设数量是1,当前待选应用的实例的数量是3,当前待选应用的实例的数量大于预设数量,此时,缩减2个当前待选应用的实例,缩减后,当前待选应用的实例数量为1。步骤s330,克隆并保存待释放容器的容器信息;步骤s340,释放待释放容器的资源;步骤s350,发送资源释放消息至弹性伸缩服务以使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张。为实现在每个待选应用的实例的数量均等于零时,使弹性伸缩服务停止扩张待扩张应用的业务,可选地,在本发明的一个实施例中,资源调度方法包括:在每个待选应用的实例的数量均等于零时,发送无需处理消息na至弹性伸缩服务以使弹性伸缩服务停止扩张待扩张应用的业务。具体地,如图4所示,资源调度方法包括:步骤s410,接收弹性伸缩服务发送的待扩张应用的业务扩张请求;步骤s422,根据应用的优先级和待扩张应用的优先级确定至少一个待选应用,待选应用的优先级低于待扩张应用的优先级;步骤s424,获取至少一个待选应用中的每个待选应用的实例的数量;步骤s426,在每个待选应用的实例的数量均大于零且均不大于预设数量时,确定至少一个待选应用中的其中一个为待释放应用。步骤s429,在每个待选应用的实例的数量均等于零时,发送无需处理消息至弹性伸缩服务以使弹性伸缩服务停止扩张待扩张应用的业务。可以理解,在每个待选应用的实例的数量均等于零时,表示容器上只有待扩张应用这一级的服务,无法找到低优先级服务,无法进行资源释放。因此,bcms发送无需处理消息至弹性伸缩服务以使弹性伸缩服务停止扩张待扩张应用的业务。步骤s430,克隆并保存待释放容器的容器信息;步骤s440,释放待释放容器的资源;步骤s450,发送资源释放消息至弹性伸缩服务以使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张。为实现恢复待恢复应用,可选地,在本发明的一个实施例中,资源调度方法包括:接收弹性伸缩服务发送的业务恢复请求并根据业务恢复请求确定待恢复应用;获取待恢复应用的恢复数据,恢复数据包括容器信息、容器信息的地址和待释放容器的服务进程信息;在获取到恢复数据时,发送服务回复消息至弹性伸缩服务以使弹性伸缩服务根据恢复数据恢复待恢复应用。具体地,如图5所示,资源调度方法包括:步骤s510,接收弹性伸缩服务发送的待扩张应用的业务扩张请求;步骤s520,根据业务扩张请求和应用的优先级确定待释放应用,待释放应用部署于待释放容器,待释放应用的优先级低于待扩张应用的优先级;步骤s530,克隆并保存待释放容器的容器信息;步骤s540,释放待释放容器的资源;步骤s550,发送资源释放消息至弹性伸缩服务以使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张。步骤s560,接收弹性伸缩服务发送的业务恢复请求并根据业务恢复请求确定待恢复应用;具体地,业务恢复请求可以是业务恢复消息(businessrecovermessage,brms)。可以理解,当弹性伸缩服务在现有机制下,进行了某些业务基于资源的收缩后,此时产生出空余资源,就发送业务恢复消息给bcms,以恢复待恢复应用。步骤s570,获取待恢复应用的恢复数据,恢复数据包括容器信息、容器信息的地址和待释放容器的服务进程信息;bcms在接收到弹性伸缩服务发送的业务恢复消息并确定了待恢复应用之后,可以查询表2,以获取容器信息的地址和待释放容器的服务进程信息,并根据容器信息的地址获取容器信息,从而获取到恢复待恢复应用所需要的恢复数据。步骤s580,在获取到恢复数据时,发送服务回复消息(serverreplymessage,srms)至弹性伸缩服务以使弹性伸缩服务根据恢复数据恢复待恢复应用。获取到恢复待恢复应用所需要的恢复数据之后,bcms发送srms给弹性伸缩服务,弹性伸缩服务在收到srms之后,根据附带的恢复数据恢复待恢复应用。优选地,弹性伸缩服务可以根据容器信息的地址获取容器信息。当然,srms也可以直接将容器信息发送给弹性伸缩服务。为实现确定待恢复应用,可选地,在本发明的一个实施例中,在释放待释放容器的资源的步骤后,资源调度方法包括:在业务服务分级管理表中将待释放应用的实例的数量设置为零;接收弹性伸缩服务发送的业务恢复请求并根据业务恢复请求确定待恢复应用,包括:将业务服务分级管理表中实例的数量为零的应用确定为待恢复应用。具体地,如图6所示,资源调度方法包括:步骤s610,接收弹性伸缩服务发送的待扩张应用的业务扩张请求;步骤s620,根据业务扩张请求和应用的优先级确定待释放应用,待释放应用部署于待释放容器,待释放应用的优先级低于待扩张应用的优先级;步骤s630,克隆并保存待释放容器的容器信息;步骤s640,释放待释放容器的资源;步骤s642,在业务服务分级管理表中将待释放应用的实例的数量设置为零;可以理解,在释放了释放应用之后,待释放应用的实例数量为0。因此,可以通过在业务服务分级管理表中将待释放应用的实例的数量设置为零,来标识该应用被释放,在等待恢复,以便后续确定待恢复应用。步骤s650,发送资源释放消息至弹性伸缩服务以使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张。步骤s660,将业务服务分级管理表中实例的数量为零的应用确定为待恢复应用;这样,实现根据业务服务分级管理表确定待恢复应用。在一个例子中,bcms接收到brms后,首先检查表1,按照优先级从小到大的顺序,判断是否有当前实例数为0的应用。如果没有,则回复na消息给云控制器弹性伸缩服务。如果有,假如3级应用app1当前实例数目为0,则将应用app1作为待恢复应用,并查询表2中的app1,获取到所需要的资源,然后发送服务回复消息给弹性伸缩服务。步骤s670,获取待恢复应用的恢复数据,恢复数据包括容器信息、容器信息的地址和待释放容器的服务进程信息;步骤s680,在获取到恢复数据时,发送服务回复消息至弹性伸缩服务以使弹性伸缩服务根据恢复数据恢复待恢复应用。为实现根据资源释放后的待释放容器是否满足待扩张应用的业务扩张需求确定是否继续进行资源调度,可选地,在本发明的一个实施例中,在发送资源释放消息至弹性伸缩服务的步骤后,资源调度方法包括:获取弹性伸缩服务发送的资源情况消息;根据资源情况消息确定资源释放后的待释放容器是否满足待扩张应用的业务扩张需求;在资源释放后的待释放容器不满足待扩张应用的业务扩张需求时,进入根据业务扩张请求和待扩张应用的优先级确定待释放应用的步骤;在资源释放后的待释放容器满足待扩张应用的业务扩张需求时,不响应资源情况消息。具体地,如图7所示,资源调度方法包括:步骤s710,接收弹性伸缩服务发送的待扩张应用的业务扩张请求;步骤s720,根据业务扩张请求和应用的优先级确定待释放应用,待释放应用部署于待释放容器,待释放应用的优先级低于待扩张应用的优先级;步骤s730,克隆并保存待释放容器的容器信息;步骤s740,释放待释放容器的资源;步骤s750,发送资源释放消息至弹性伸缩服务以使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张;步骤s760,获取弹性伸缩服务发送的资源情况消息;步骤s770,根据资源情况消息确定资源释放后的待释放容器是否满足待扩张应用的业务扩张需求;并在资源释放后的待释放容器不满足待扩张应用的业务扩张需求时,进入步骤s720;步骤s780,在资源释放后的待释放容器满足待扩张应用的业务扩张需求时,不响应资源情况消息。在一个例子中,请参阅图8,应用服务分级管理表、应用服务克隆空间管理表和应用服务部署管理表设置在持久层,弹性伸缩服务在需要进行待扩张应用的业务扩张且无空闲资源时,发送待扩张应用的业务扩张请求kbeq,业务分级管理服务bcms在接收到kbeq(步骤s810)后,根据应用的优先级和待扩张应用的优先级确定至少一个待选应用(步骤s822),获取至少一个待选应用中的每个待选应用的实例的数量(步骤s824),在每个待选应用的实例的数量均大于零且均不大于预设数量时,确定至少一个待选应用中的其中一个为待释放应用(步骤s826),克隆并保存待释放容器的容器信息(步骤s830),释放待释放容器的资源(步骤s840)并发送资源释放信息rfms至弹性伸缩服务(步骤s850)。在每个待选应用的实例的数量均等于零时,发送无需处理消息na至弹性伸缩服务(步骤s829)。值得注意的是,可以通过查询业务服务分级管理表来确定待释放应用,在克隆保存时可以在应用服务克隆空间管理表中插入保存容器信息的地址。弹性伸缩服务收到资源释放消息rfms后,检查资源情况,如果能满足待扩张应用业务扩张的需求,则进行待扩张应用的弹性扩展。否则,继续发送业务扩张请求kbeq给bcms,继续进行资源调度。弹性伸缩服务如果收到无需处理消息na,则不再尝试扩展待扩张应用的业务。在有空闲资源时,弹性伸缩服务发送业务恢复请求brms至bcms,bcms接收到brms后,通过业务服务分级管理表,根据业务恢复请求确定待恢复应用(步骤s860),通过应用服务克隆空间管理表,获取待恢复应用的恢复数据(步骤s870),在获取到恢复数据时,发送服务回复消息srms至弹性伸缩服务,弹性伸缩服务根据服务回复消息srms恢复待恢复应用。未找到待恢复应用时,bcms发送无需处理消息na至弹性伸缩服务。与上述几种实施例提供的资源调度方法相对应,本发明的一种实施例还提供一种资源调度装置1000,由于本发明实施例提供的资源调度装置1000与上述几种实施例提供的资源调度方法相对应,因此在前述资源调度方法的实施方式也适用于本实施例提供的资源调度装置1000,在本实施例中不再详细描述。图11是根据本发明一个实施例的资源调度装置1000的结构示意图。如图9所示,该资源调度装置1000可以包括第一接收模块110、第一确定模块120、克隆模块130、释放模块140和第一发送模块150,第一接收模块110用于接收弹性伸缩服务发送的待扩张应用的业务扩张请求;第一确定模块120用于根据业务扩张请求和应用的优先级确定待释放应用,待释放应用部署于待释放容器,待释放应用的优先级低于待扩张应用的优先级;克隆模块130用于克隆并保存待释放容器的容器信息;释放模块140用于释放待释放容器的资源;第一发送模块150用于发送资源释放消息至弹性伸缩服务以使弹性伸缩服务在释放资源后的待释放容器进行待扩张应用的业务扩张。可选地,请参阅图10,在本发明的一个实施例中,第一确定模块120包括第一确定单元122、获取单元124和第二确定单元126,第一确定单元122用于根据应用的优先级和待扩张应用的优先级确定至少一个待选应用,待选应用的优先级低于待扩张应用的优先级;获取单元124用于获取至少一个待选应用中的每个待选应用的实例的数量;第二确定单元126用于在每个待选应用的实例的数量均大于零且均不大于预设数量时,确定至少一个待选应用中的其中一个为待释放应用。可选地,请参阅图11,在本发明的一个实施例中,资源调度装置1000包括缩减模块160,缩减模块160用于在当前待选应用的实例的数量大于预设数量时,减少当前待选应用的实例的数量。可选地,请参阅图12,在本发明的一个实施例中,资源调度装置1000包括第二发送模块170,第二发送模块170用于在每个待选应用的实例的数量均等于零时,发送无需处理消息na至弹性伸缩服务以使弹性伸缩服务停止扩张待扩张应用的业务。可选地,请参阅图13,在本发明的一个实施例中,资源调度装置1000包括第二接收模块180、第一获取模块190和第三发送模块200,第二接收模块180用于接收弹性伸缩服务发送的业务恢复请求并根据业务恢复请求确定待恢复应用;第一获取模块190用于获取待恢复应用的恢复数据,恢复数据包括容器信息、容器信息的地址和待释放容器的服务进程信息;第三发送模块200用于在获取到恢复数据时,发送服务回复消息至弹性伸缩服务以使弹性伸缩服务根据恢复数据恢复待恢复应用。可选地,请参阅图14,在本发明的一个实施例中,资源调度装置1000包括设置模块210,设置模块210用于在业务服务分级管理表中将待释放应用的实例的数量设置为零;第二接收模块180用于将业务服务分级管理表中实例的数量为零的应用确定为待恢复应用。可选地,请参阅图15,在本发明的一个实施例中,资源调度装置1000包括第二获取模块220、第二确定模块230和控制模块240,第二获取模块220用于获取弹性伸缩服务发送的资源情况消息;第二确定模块230用于根据资源情况消息确定资源释放后的待释放容器是否满足待扩张应用的业务扩张需求;以及用于在资源释放后的待释放容器不满足待扩张应用的业务扩张需求时,进入第一确定模块120;控制模块240用于在资源释放后的待释放容器满足待扩张应用的业务扩张需求时,不响应资源情况消息。为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现本发明上述任一个实施例的资源调度方法综合以上,本发明实施方式的资源调度方法、资源调度装置1000和计算机可读存储介质,在根据优先级确定待释放应用后,克隆并保存待释放容器的容器信息,再释放待释放容器的资源以使待扩张应用进行业务扩张。也即是说,本发明实施方式的资源调度方法、资源调度装置1000和计算机可读存储介质,基于容器云的业务分级,在弹性伸缩过程中实现业务关停、保留系统和克隆运行态数据,以保障后续恢复机制。这样,在最大限度地保证了优先级别较高的应用的稳定运行的同时,可以使得释放后的待释放应用在有资源空闲时恢复,从而更加彻底地保障弹性伸缩服务的进行在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属
技术领域
的技术人员所理解。在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。本
技术领域
的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1