一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多云环境下的弹性伸缩方法、装置、设备及介质与流程

2021-12-07 21:54:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种多云环境下的弹性伸缩方法、装置、设备以及计算机可读存储介质。


背景技术:

2.云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。按照用户需求通过云技术提供服务的服务提供商即为云服务提供商。
3.云服务提供商提供的云平台上可以部署应用,以对外提供服务。为了保障服务质量,同时节省资源,业界提出了一种弹性伸缩方法。具体地,监控应用的特定指标,如处理器(central process unit,cpu)使用率、内存使用率,当特定指标的指标值达到预设阈值时,按照设定的弹性伸缩策略调整应用实例的个数。
4.然而,上述弹性伸缩方法主要适用于部署在单一云平台的应用。对于部署在多云平台即多云环境下的应用,往往需要人工手动干预,难以实现快速弹性伸缩,导致资源浪费或者服务质量难以得到保障。


技术实现要素:

5.本技术提供了一种多云环境下的弹性伸缩方法,解析了相关技术中需要人工手动干预,难以实现快速弹性伸缩,导致资源浪费或者服务质量难以得到保障的问题。本技术还提供了上述方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。
6.第一方面,本技术提供了一种多云环境下的弹性伸缩方法。该方法用于在多个云平台的环境下,实现自动的、应用实例跨云弹性伸缩,无需人工手动干预,提升了弹性伸缩效率,避免了手动干预导致资源浪费或者服务质量难以得到保障。
7.具体地,多个云平台中的每个云平台提供有至少一种资源。该资源可以是提供服务的硬件资源或软件资源。资源还可以根据功能分为计算资源、存储资源和网络资源。例如,计算资源可以包括处理器资源,如中央处理器(cpu,central processing unit)资源。存储资源可以包括内存(memory)资源、外存资源等等。内存资源可以是内存储器,外存资源可以是硬盘、光盘、闪存盘等等。
8.在具体实现时,跨云弹性伸缩控制器可以先对多个云平台提供的资源进行建模,获得所述多个云平台的资源模型。其中,该资源模型可以实现同一类资源在多个云平台间的映射转换,例如实现存储资源在云平台a和云平台b之间的映射转换。然后,当部署在所述多个云平台的应用实例的监控指标值满足预设条件时,例如监控指标值达到设定的阈值时,跨云弹性伸缩控制器可以根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例。由于无需人工手动干预,可以实现应用实例跨云平台的分钟级甚至秒级弹性伸缩,提高资源利用率以及保障服务质量。
9.在一些可能的实现方式中,跨云弹性伸缩控制器可以配置一种或多种弹性伸缩策
略。例如,跨云弹性伸缩控制器可以配置亲和性(affinity)策略、反亲和性(anti-affinity)策略、成本优先策略、性能优先策略中的一种或多种。其中,亲和性策略具体是指将应用实例配置在同一云平台的相近区域(region),该相近region包括同一region,甚至是同一region中的相近节点(包括同一节点)。反亲和性策略具体是指避免将应用实例配置在相近region和同一region中的相近节点。成本优先策略是指以成本最小为目标进行弹性伸缩的策略,性能优先策略是指以性能最高为目标进行弹性伸缩的策略。
10.基于此,跨云弹性伸缩控制器可以根据多个云平台的资源模型以及亲和性策略、反亲和性策略、成本优先策略、性能优先策略中的任意一种或多种策略,调整所述应用实例。由此可以实现根据用户需求对应用实例进行弹性伸缩。
11.在一些可能的实现方式中,跨云弹性伸缩控制器在对应用实例进行弹性伸缩时,可以根据多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的数量。例如新增应用实例,或者删除应用实例。当然,跨云弹性伸缩控制器也可以根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的配置。例如,提升或降低应用实例的计算资源、存储资源和/或网络资源。
12.在一些可能的实现方式中,跨云弹性伸缩控制器可以通过如下方式调试应用实例。具体地,跨云弹性伸缩控制器根据所述多个云平台的资源模型以及弹性伸缩策略确定目标云平台,然后通过所述目标云平台的应用程序编程接口(application programming interface,api)创建新的应用实例。该新的实例即部署在目标云平台。
13.在一些可能的实现方式中,在创建新的应用实例之后,当部署在所述多个云平台的应用实例的监控指标值不满足预设条件时,跨云弹性伸缩控制器通过所述api删除所述新的应用实例。
14.在一些可能的实现方式中,所述多个云平台包括多个公有云平台,或者多个私有云平台,或者至少一个公有云平台和至少一个私有云平台形成的混合云平台。考虑到成本问题,可以选择多个公有云平台部署应用实例。考虑到安全问题,可以选择多个私有云平台部署应用实例。综合考虑成本问题和安全问题,可以选择至少一个公有云平台和至少一个私有云平台形成的混合云平台部署应用实例。
15.第二方面,本技术提供了一种多云环境下的弹性伸缩装置。所述装置包括:
16.建模单元,用于对多个云平台提供的资源进行建模,获得所述多个云平台的资源模型;
17.调整单元,用于当部署在所述多个云平台的应用实例的监控指标值满足预设条件时,根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例。
18.在一些可能的实现方式中,所述调整单元具体用于:
19.根据所述多个云平台的资源模型以及亲和性策略、反亲和性策略、成本优先策略、性能优先策略中的任意一种或多种策略,调整所述应用实例。
20.在一些可能的实现方式中,所述调整单元具体用于:
21.根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的数量;或者,
22.根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的配置。
23.在一些可能的实现方式中,所述调整单元具体用于:
24.根据所述多个云平台的资源模型以及弹性伸缩策略确定目标云平台;
25.通过所述目标云平台的应用程序编程接口(api)创建新的应用实例。
26.在一些可能的实现方式中,所述调整单元还用于:
27.在创建新的应用实例之后,当部署在所述多个云平台的应用实例的监控指标值不满足预设条件时,通过所述api删除所述新的应用实例。
28.在一些可能的实现方式中,所述多个云平台包括多个公有云平台,或者多个私有云平台,或者至少一个公有云平台和至少一个私有云平台形成的混合云平台。
29.第三方面,本技术提供一种设备,所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得设备执行如第一方面或第一方面的任一种实现方式所述的多云环境下的弹性伸缩方法。
30.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第一方面或第一方面的任一种实现方式所述的多云环境下的弹性伸缩方法。
31.第五方面,本技术提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第一方面的任一种实现方式所述的多云环境下的弹性伸缩方法。
32.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
33.为了更清楚地说明本技术实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
34.图1为本技术实施例提供的一种的多云环境下的弹性伸缩方法的应用场景示意图;
35.图2为本技术实施例提供的一种多云环境下的弹性伸缩方法的架构图;
36.图3为本技术实施例提供的一种多云环境下的弹性伸缩方法的架构图;
37.图4为本技术实施例提供的一种弹性伸缩控制器的结构示意图;
38.图5为本技术实施例提供的一种多云环境下的弹性伸缩方法的流程图;
39.图6为本技术实施例提供的一种多云环境下的弹性伸缩的结构示意图;
40.图7为本技术实施例提供的一种设备的结构示意图。
具体实施方式
41.本技术实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
42.首先对本技术实施例中所涉及到的一些技术术语进行介绍。
43.云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。按照用户需求通过云技术提供服务的服务提供商即为云服务提供商,云服务提供商通过云技术提供的服务也称
之为云服务。
44.云服务包括以下几种服务模式:基础设施即服务(infrastructure as a service,iaas)、平台即服务(platform as a service,paas)和软件即服务(software as a service,saas)。在一些实现方式中,云服务还可以包括函数即服务(function as a service,faas)模式。
45.iaas模式下,服务提供商提供硬件资源,用户自行部署操作系统、中间件以及运行库等,然后自行安装软件。
46.paas模式下,服务提供商不仅提供硬件资源,还部署操作系统,提供中间件以及运行库等,用户自行安装软件。
47.saas模式下,服务提供商提供硬件资源,并且部署有操作系统,提供中间件及运行库等基础环境。此外,服务提供商还提供软件,用户可以直接使用软件。
48.faas模式下,软件(如应用程序)被抽象成函数。只有当程序被调用时才会执行函数启动。程序未被调用时则不启动,如此,也不会占用资源。
49.云平台,也称云系统、云环境或云,是一种云供应商提供云服务的软件系统。需要说明,该软件系统可以是提供iaas模式、paas模式、saas模式或faas模式的云服务的软件系统。
50.公有云,是第三方的公有云供应商为广大的个人或企业提供的云平台。在公有云中,硬件、软件和其他结构均为第三方的公有云供应商所拥有和管理。
51.私有云,是为一个企业或组织提供的专用的云平台。私有云可以由对应的企业或组织进行内部操作。私有云主要是面向企业用户,也称企业云。
52.混合云,是指不同的云平台所形成的云平台。混合云包括至少两个云平台,也称多云平台或多云。可选地,混合云融合了公有云和私有云。出于安全考虑,一些企业用户更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源。在这种情况下,包括公有云和私有云的混合云被越来越多地采用。混合云将公有云和私有云进行混合和匹配,以获得良好的使用效果。
53.应用程序接口(application programming interface,api),又称程序接口,是云平台的操作系统向用户,如编程人员,提供的“程序与操作系统的接口”。该接口可以是用户(如开发人员)在编程时使用的。用户通过该应用程序接口,可访问云平台中的资源和取得相应的服务。一个应用程序接口是一组定义、函数、程序和/或协议的集合。例如,云平台的一个应用程序接口包括一个或多个系统调用(system call),每个系统调用都是一个能完成特定功能的程序。
54.api网关(api gateway,apig)具体是一种提供api托管服务的网关。api网关可以对api进行统一鉴权、计量、发布和/或流量控制等管理。
55.资源可以是提供服务的硬件资源或软件资源。资源还可以根据功能分为计算资源、存储资源和网络资源。例如,计算资源可以包括处理器资源,如中央处理器(cpu,central processing unit)资源。存储资源可以包括内存(memory)资源、外存资源等等。内存资源可以是内存储器,外存资源可以是硬盘、光盘、闪存盘等等。
56.弹性伸缩(auto scaling)是根据用户的业务需求,通过策略自动调整其业务资源的服务。例如,用户的业务量较大时,可以通过策略自动增加业务资源,如增加该业务对应
的应用实例。其中,应用实例是指根据应用创建的实例(instance)。实例可以认为是处于运行态的应用。通过启动(或打开)一个应用,可以生成一个实例。
57.云服务提供商可以通过云平台为用户提供服务。为了保障服务质量,同时节省资源,业界提出了一种弹性伸缩方法。具体地,监控应用的特定指标,如cpu使用率、内存使用率,当特定指标的指标值达到预设阈值时,按照设定的弹性伸缩策略调整应用实例的个数。
58.然而,上述弹性伸缩方法主要适用于部署在单一云平台的应用。对于部署在多云平台即多云环境下的应用,往往需要人工手动干预,难以实现快速弹性伸缩,导致资源浪费或者服务质量难以得到保障。
59.有鉴于此,本技术提供了一种多云环境下的弹性伸缩方法。该方法可以由跨云弹性伸缩控制器执行。具体地,跨云弹性伸缩控制器可以先对多个云平台提供的资源进行建模,获得所述多个云平台的资源模型。其中,该资源模型可以实现同一类资源在多个云平台间的映射转换,例如实现存储资源在云平台a和云平台b之间的映射转换。然后,当部署在所述多个云平台的应用实例的监控指标值满足预设条件时,例如监控指标值达到设定的阈值时,跨云弹性伸缩控制器可以根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例。
60.如此,实现了在多个云平台的环境下,自动的、应用实例跨云弹性伸缩,无需人工手动干预,提升了弹性伸缩效率,避免了手动干预导致资源浪费或者服务质量难以得到保障。整个伸缩过程无需人工参与,可以实现应用实例跨云平台的分钟级甚至秒级弹性伸缩,提高资源利用率以及保障服务质量。
61.为了使得本技术的技术方案更加清楚、易于理解,下面结合附图对本技术实施例提供的多云环境下的弹性伸缩方法的应用场景进行介绍。
62.参见图1所示的多云环境下的弹性伸缩方法的应用场景示意图,如图1所示,该场景中包括弹性伸缩控制器102以及多个云平台104。多个云平台104可以分别记作云平台1至云平台n,n大于1。
63.平台1至云平台n中至少有一个云平台部署有应用a的实例。其中,至少一个云平台可以部署一个或多个应用a的实例。在一个示例中,云平台1部署有多个应用a的实例,具体为实例11至实例1m,云平台n部署有多个应用a的实例,具体为实例n1至实例nm。其中,m为正整数。
64.弹性伸缩控制器102与上述多个云平台104连接,例如通过通信通路进行连接。弹性伸缩控制器102对多个云平台104提供的资源进行建模,获得所述多个云平台104的资源模型。当部署在多个云平台104的应用实例的监控指标值满足预设条件时,弹性伸缩控制器102根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例。如此,实现多云环境下的自动弹性伸缩。
65.如图2所示,弹性伸缩控制器102可以部署在云环境,具体为云环境上的一个或多个计算设备(例如:中心服务器)。该弹性伸缩控制器102也可以部署在边缘环境中,具体为边缘环境中的一个或多个计算设备(边缘计算设备)上,边缘计算设备可以为服务器、计算盒子等。所述云环境指示云服务提供商拥有的,用于提供计算、存储、通信资源的中心计算设备集群;所述边缘环境指示在地理位置上距离端设备(即端侧设备)较近的,用于提供计算、存储、通信资源的边缘计算设备集群。
66.上述弹性伸缩控制器102也可以部署在端设备上。端设备包括终端等物理机(physical machine)。其中,终端包括但不限于台式机、笔记本电脑、平板电脑或者智能手机。弹性伸缩控制器102也可以部署在上述物理机上的虚拟机(virtual machine)或容器(container)中。考虑到负载均衡和可靠性,在一些实现方式中,弹性伸缩控制器102也可以多副本的形式部署在集群中。
67.进一步地,如图3所示,弹性伸缩控制器102可以包括多个部分(例如包括多个功能模块)。基于此,弹性伸缩控制器102的各个部分也可以分布式地部署在不同环境中。例如,可以在云环境、边缘环境、端设备中的三个环境,或其中任意两个环境上分别部署弹性伸缩控制器102的一部分。
68.弹性伸缩控制器102内部的功能模块可有多种划分方式,本技术不对其进行限制。图4为一种示例性的划分方式,如图4所示,弹性伸缩控制器102包括指标监控模块1022和弹性伸缩控制模块1024。在一些实现方式中,弹性伸缩控制器102还可以包括弹性伸缩策略管理模块1026、多云成本洞察模块1028、多云性能评估模块1029中的一种或多种。
69.其中,指标监控模块1022用于通过各云平台的监控系统所开放的api读取应用相关监控指标对应的监控指标值。当该监控指标值满足预设条件,例如监控指标值达到预设阈值时,弹性伸缩控制模块1024可以根据多个云平台104的资源模型以及弹性伸缩策略,调整所述应用实例。
70.在一些方式中,弹性伸缩策略管理模块1026用于对弹性伸缩策略进行管理,以便弹性伸缩控制模块1024使用。具体地,弹性伸缩策略管理模块1026提供有跨云弹性伸缩策略管理组件,用户可以通过跨云弹性伸缩策略管理组件配置基于应用多种性能或其他用户自定义指标的弹性伸缩策略。该弹性伸缩策略可以包括亲和性(affinity)策略、反亲和性(anti-affinity)策略、性能优先策略或成本优先策略中的一种或多种。
71.对于弹性伸缩策略,本技术实施例仅仅描述了亲和性策略、反亲和性策略、成本优先策略、性能优先策略等。在一些实现方式中,弹性伸缩控制器102也可将弹性伸缩策略管理模块1026标准化、插件化。后续若需支持更多的类似策略,可由第三方开发者按需开发选择相应的插件即可。
72.其中,亲和性策略具体是指将应用实例配置在同一云平台的相近region(包括同一region),甚至是同一region中的相近节点(包括同一节点)。反亲和性策略具体是指避免将应用实例配置在相近region或同一region中的相近节点。当应用对响应效率要求较高时,可以将应用实例配置在同一云平台的相近region。当应用对服务可靠性要求较高时,可以避免将应用实例配置在同一云平台的相近region。
73.多云成本洞察模块1028用于对多个云平台上资源的成本进行评估。针对公有云,多云成本洞察模块1028可以通过访问公有云的资源报价系统,获取各类资源各种规格的报价,从而得到该公有云上各类资源各种规格的成本。针对私有云,多云成本洞察模块1028可以根据该私有云的硬件配置、操作系统配置等配置信息分析该私有云一次性固定投资费用和周期性维护费用,基于该费用确定各类资源各种规格的成本,例如确定各类计算、存储、网络等资源单位时间单位计量单位使用成本。
74.多云性能评估模块1029用于对各云平台上资源的性能进行评估。具体地,多云性能评估模块1029可以对不同云平台各规格的相同配置资源进行性能测试,例如跑分测试,
得到计算速率、网络速率、磁盘输入输出(input/output,i/o)速率等性能值。
75.当采用成本优先策略进行弹性伸缩时,弹性伸缩控制模块1024还可以从多云成本洞察模块1028获取多个云平台104上各类资源各种规格的成本,然后基于多个云平台104的资源模型、多个云平台104上各类资源各种规格的成本以及成本优先策略,调整所述应用实例。
76.当采用性能优先策略进行弹性伸缩时,弹性伸缩控制模块1024还可以从多云性能评估模块1029获取多个云平台104上各类资源各种规格的性能,然后基于多个云平台104的资源模型、多个云平台104上各类资源各种规格的性能以及性能优先策略,调整所述应用实例。
77.接下来,从弹性伸缩控制器的角度,对本技术实施例提供的多云环境下的弹性伸缩方法进行介绍。
78.参见图5所示的多云环境下的弹性伸缩方法的流程图,该方法包括:
79.s502:弹性伸缩控制器102对多个云平台提供的资源进行建模,获得所述多个云平台的资源模型。
80.其中,资源模型可以实现同一类资源在多个云平台间的映射转换,例如实现存储资源在云平台a和云平台b之间的映射转换。在一些实现方式中,资源可以通过资源参数进行表征。资源参数具体可以是描述资源配置情况的参数。例如,针对计算资源,资源参数可以包括核数,如cpu为4核。又例如,针对存储资源,资源参数可以包括内存容量,如内存为2gb(吉字节,gigbyte)。
81.资源参数的格式(schema,也称规格),简称资源参数格式。例如,与某一资源对应的资源参数格式可以为:资源参数为cpu个数或gpu个数等计算资源规格参数。在具体实现时,弹性伸缩控制器102可以统一资源参数格式,以实现对资源进行统一建模。
82.在一些实现方式中,弹性伸缩控制器102可以获取标准资源参数格式,然后建立多个云平台104中至少一个云平台(例如可以是每个云平台)支持的资源参数格式与上述标准资源参数格式的对应关系,从而获得多个云平台104的资源模型,该资源模型也可以称作转义模型。以该资源模型中标准资源参数格式作为参考值,对资源参数格式进行转义,可以得到同一类资源在多个云平台间的映射转换关系。
83.其中,标准资源参数格式可以是多个云平台104中一个云平台支持的资源参数格式。当然,标准资源参数格式也可以是对多个云平台104中至少一个云平台支持的资源参数格式进行处理得到。
84.s504:当部署在所述多个云平台104的应用实例的监控指标值满足预设条件时,弹性伸缩控制器102根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例。
85.弹性伸缩控制器102可以监控部署在所述多个云平台104的应用实例的指标,得到监控指标值。具体地,弹性伸缩控制器102可以从云平台104上的监控系统中读取监控指标值。监控系统中可以包括多个监控指标的指标值,弹性伸缩控制器102根据实际需求获取相应的监控指标值。在一些示例中,弹性伸缩控制器102获取的监控指标值可以是cpu使用率,内存使用率等等。
86.当监控指标值满足预设条件时,弹性伸缩控制器102可以根据所述多个云平台104的资源模型以及弹性伸缩策略,调整所述应用实例。其中,预设条件可以根据实际需求而设
定。例如,预设条件可以设置为监控指标值大于该指标对应的阈值,或者监控指标值小于该指标对应的阈值等等。指标对应的阈值可以根据经验值进行设置,本技术实施例对此不作限定。
87.在一些实现方式中,弹性伸缩控制器102在对应用实例进行调整时,可以根据所述多个云平台的资源模型以及亲和性策略、反亲和性策略、成本优先策略、性能优先策略中的任意一种或多种策略,调整所述应用实例。
88.其中,应用对于响应速率要求较高时,弹性伸缩控制器102可以根据所述多个云平台的资源模型以及亲和性策略,调整所述应用实例。例如,弹性伸缩控制器102可以将对于响应速率要求较高的应用实例部署在同一云平台的相近region,如部署在同一region的相近节点上。
89.应用对于可靠性、可用性要求较高时,弹性伸缩控制器102可以根据所述多个云平台104的资源模型以及反亲和性策略,调整所述应用实例。例如,弹性伸缩控制器102可以避免将对可靠性、可用性要求较高的应用实例部署在同一云平台的相近region,即弹性伸缩控制器102可以将其部署在不同云平台104上。
90.用户优先考虑成本时,弹性伸缩控制器102在对应用实例进行调整时,可以根据所述多个云平台104的资源模型以及成本优先策略,调整所述应用实例。例如,弹性伸缩控制器102可以选择价格最低的云平台104部署应用实例。
91.用户优先考虑性能时,弹性伸缩控制器102在对应用实例进行调整时,可以根据多个云平台104的资源模型以及性能优先策略,调整所述应用实例。例如,弹性伸缩控制器102可以选择性能最优的云平台104部署应用实例。
92.在一些实现方式中,弹性伸缩控制器102在对应用实例进行调整时,可以根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的数量。例如,弹性伸缩控制器102可以根据多个云平台的资源模型以及弹性伸缩策略,新增应用实例。又例如,弹性伸缩控制器102可以根据多个云平台的资源模型以及弹性伸缩策略,删除应用实例。
93.在另一些实现方式中,弹性伸缩控制器102在对应用实例进行调整时,可以根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的配置。例如,弹性伸缩控制器102可以将应用实例的配置由1核1g(表示处理器为单核,内存为1g)提升为4核2g(表示处理器为4核,内存为2g)。
94.下面以调整应用实例的数量为例,对调整过程进行详细说明。
95.具体地,弹性伸缩控制器102可以根据所述多个云平台的资源模型以及弹性伸缩策略确定目标云平台,然后通过所述目标云平台的api创建新的应用实例。该示例中假设弹性伸缩策略为成本优先策略。监控指标值大于对应的阈值时,弹性伸缩控制器102需要新增应用实例。
96.为此,弹性伸缩控制器102可以通过资源模型中各云平台支持的资源参数格式与标准资源参数格式之间的对应关系,确定一个计量单位的标准资源对应多少计量单位的云平台的资源,然后基于各类资源各种规格的成本,确定部署应用实例总成本最低的云平台作为目标云平台。弹性伸缩控制器102调用该api,在目标云平台创建新的应用实例,从而实现通过较多的应用实例保障服务质量。
97.进一步地,在新增应用实例之后,当部署在所述多个云平台的应用实例的监控指
标值不满足预设条件时,弹性伸缩控制器102还可以通过所述api删除所述新的应用实例,从而避免资源浪费。
98.需要说明的是,在新增应用实例或者删除应用实例时,弹性伸缩控制器102也可以选择合适的云平台,即目标云平台,通过混合云api网关创建或删除应用实例。
99.上文结合图1至图5对本技术实施例提供的多云环境下的弹性伸缩方法进行了详细介绍,下面将结合附图对本技术实施例提供的装置、设备进行介绍。
100.参见图6所示的多云环境下的弹性伸缩装置的结构示意图,该装置600包括:
101.建模单元602,用于对多个云平台提供的资源进行建模,获得所述多个云平台的资源模型;
102.调整单元604,用于当部署在所述多个云平台的应用实例的监控指标值满足预设条件时,根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例。
103.在一些可能的实现方式中,所述调整单元604具体用于:
104.根据所述多个云平台的资源模型以及亲和性策略、反亲和性策略、成本优先策略、性能优先策略中的任意一种或多种策略,调整所述应用实例。
105.在一些可能的实现方式中,所述调整单元604具体用于:
106.根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的数量;或者,根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的配置。
107.在一些可能的实现方式中,所述调整单元604具体用于:
108.根据所述多个云平台的资源模型以及弹性伸缩策略确定目标云平台;
109.通过所述目标云平台的应用程序编程接口(api)创建新的应用实例。
110.在一些可能的实现方式中,所述调整单元604还用于:
111.在创建新的应用实例之后,当部署在所述多个云平台的应用实例的监控指标值不满足预设条件时,通过所述api删除所述新的应用实例。
112.在一些可能的实现方式中,所述多个云平台包括多个公有云平台,或者多个私有云平台,或者至少一个公有云平台和至少一个私有云平台形成的混合云平台。
113.根据本技术实施例的多云环境下的弹性伸缩装置600可对应于执行本技术实施例中描述的方法,并且多云环境下的弹性伸缩装置600的各个模块/单元的上述和其它操作和/或功能分别为了实现图5所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
114.本技术实施例还提供了一种设备700。该设备700可以是笔记本电脑、台式机等端侧设备,也可以是云环境或边缘环境中的计算机集群。弹性伸缩控制器102部署在设备700中,设备700具体用于实现如图6所示实施例中多云环境下的弹性伸缩装置600的功能。
115.图7提供了一种设备700的结构示意图,如图7所示,设备700包括总线701、处理器702、通信接口703和存储器704。处理器702、存储器704和通信接口703之间通过总线701通信。
116.总线701可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
117.其中,处理器702可以为中央处理器(central processing unit,cpu)。、图形处理器(graphics processing unit,gpu)、微处理器(micro processor,mp)或者数字信号处理器(digital signal processor,dsp)等处理器中的任意一种或多种。
118.通信接口703用于与外部通信。例如,获取多个云平台104上各类资源各种规格的成本,或者获取多个云平台104上各类资源各种规格的性能等。
119.存储器704可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram)。存储器704还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器,机械硬盘(hard drive drive,hdd)或固态硬盘(solid state drive,ssd)。
120.存储器704中存储有可执行代码,处理器702执行该可执行代码以执行前述多云环境下的弹性伸缩方法。
121.具体地,在实现图6所示实施例的情况下,且图6实施例中所描述的多云环境下的弹性伸缩装置600的各单元为通过软件实现的情况下,执行图6中的建模单元602、弹性伸缩控制单元604功能所需的软件或程序代码存储在存储器704中。通信模块功能通过通信接口703实现。
122.通信接口703接收多个云平台104的资源参数格式,将其通过总线701传输至处理器702,处理器702执行存储器704中存储的各单元对应的程序代码,如建模单元602、弹性伸缩控制单元604对应的程序代码,以执行根据多个云平台104的资源参数格式和标准资源参数格式,对多个云平台提供的资源进行建模,获得所述多个云平台的资源模型,当部署在所述多个云平台的应用实例的监控指标值满足预设条件时,根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的步骤。
123.在一些实现方式中,处理器702具体用于执行弹性伸缩控制单元604对应的程序代码,以执行如下方法步骤:
124.根据所述多个云平台的资源模型以及亲和性策略、反亲和性策略、成本优先策略、性能优先策略中的任意一种或多种策略,调整所述应用实例。
125.在一些实现方式中,处理器702具体用于执行弹性伸缩控制单元604对应的程序代码,以执行如下方法步骤:
126.根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的数量;或者,
127.根据所述多个云平台的资源模型以及弹性伸缩策略,调整所述应用实例的配置。
128.在一些实现方式中,处理器702具体用于执行弹性伸缩控制单元604对应的程序代码,以执行如下方法步骤:
129.根据所述多个云平台的资源模型以及弹性伸缩策略确定目标云平台;
130.通过所述目标云平台的应用程序编程接口(api)创建新的应用实例。
131.在一些实现方式中,处理器702具体用于执行弹性伸缩控制单元604对应的程序代码,以执行如下方法步骤:
132.在创建新的应用实例之后,当部署在所述多个云平台的应用实例的监控指标值不满足预设条件时,通过所述api删除所述新的应用实例。
133.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指
令,所述指令指示计算机执行上述应用于多云环境下的弹性伸缩装置600的多云环境下的弹性伸缩方法。
134.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示计算机执行上述应用于多云环境下的弹性伸缩装置600的多云环境下的弹性伸缩方法。
135.本技术实施例还提供了一种计算机程序产品,所述计算机程序产品被计算机执行时,所述计算机执行前述多云环境下的弹性伸缩方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述多云环境下的弹性伸缩方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
136.另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
137.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例所述的方法。
138.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
139.所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献