首页 / 专利库 / 一般法律 / 服务水平协议 / 针对云托管应用的服务水平目标

针对托管应用的服务平目标

阅读:531发布:2020-05-14

专利汇可以提供针对托管应用的服务平目标专利检索,专利查询,专利分析的服务。并且本 发明 公开了针对 云 托管应用的服务 水 平目标。各 实施例 涉及 声明 性地管理 软件 应用,基于服务水平目标(SLO)来动态地将配置变更应用于所 指定 的软件应用,以及高效地执行对所指定的 服务水平协议 SLO的影响分析。,下面是针对托管应用的服务平目标专利的具体信息内容。

1.一种集群管理系统处的、计算机联网环境中的用于使用基于色的管理边界来声明性地管理软件应用的计算机实现的方法,所述集群管理系统包括至少一个处理器和存储器,所述计算机联网环境包括多个计算机系统,所述方法包括:
服务用户接收至少一个声明性语句的动作,所述声明性语句指示将要在以下至少一个期间应用的一个或多个操作要求:所指定的软件应用的供应和所指定的软件应用的运行时执行;
确定哪些服务平目标SLO服务维度和维度属性匹配所述声明性语句中所指定的所述操作要求的动作,每一SLO都定义打算在所指定的软件应用的供应和运行时执行中的至少一个期间提供的一个或多个SLO服务维度和维度属性;以及
基于匹配所述声明性语句中所指定的所述操作要求的所确定的SLO服务维度和维度属性来为所述所指定的软件应用生成SLO的动作。
2.如权利要求1所述的方法,其特征在于,还包括:
从应用管理员接收指示所生成的SLO将被应用于所述所指定的软件应用的指示的动作;以及
将所生成的SLO应用于所述所指定的软件应用的动作。
3.如权利要求1所述的方法,其特征在于,所生成的SLO由所述计算机系统在所述所指定的软件应用的运行时期间持续地应用于所述应用。
4.如权利要求1所述的方法,其特征在于,所述计算机系统监视将被提供给所述所指定的软件应用的一个或多个SLO保证。
5.如权利要求4所述的方法,其特征在于,所述监视确定所述SLO保证中的一个或多个已经在部署所述所指定的软件应用期间被违反;以及
当确定所述SLO保证中的一个或多个已被违反时,所述计算机系统持续尝试重新满足所述SLO保证直到成功。
6.如权利要求1所述的方法,其特征在于,使用SLO来管理软件应用部署是基于一个或多个管理角色的,其中每一个角色都配置一个或多个SLO应用部署策略设置。
7.一种集群管理系统处的、计算机联网环境中的用于基于服务水平目标SLO来动态地将配置变更应用于所指定的软件应用的计算机实现的方法,所述集群管理系统包括至少一个处理器和存储器,所述计算机联网环境包括多个计算系统,所述方法包括:
确定已由应用级管理员将SLO应用于所指定的软件应用的动作,所述SLO指示将要在以下至少一个期间提供的一个或多个SLO服务维度和维度属性:所述所指定的软件应用的供应和所述所指定的软件应用的运行时执行,所述SLO匹配从云服务用户接收的至少一个声明性语句,所述声明性语句指示将要在所指定的软件应用的供应和运行时执行中的至少一个期间应用的一个或多个操作要求;
确定本应在所述所指定的软件应用的供应和运行时执行中的至少一个期间提供的SLO服务维度和维度属性中的至少一个当前未被提供的动作;
确定将要实现哪些配置变更以满足针对所述所指定的软件应用的SLO服务维度和维度属性的动作;以及
基于对将做出哪些配置变更的判定来应用所确定的配置变更以使得所述应用根据所述SLO中所指定的SLO服务维度和维度属性来进行供应和/或运行时操作中的至少一个的动作。
8.如权利要求7所述的方法,其特征在于,主机系统可通过自动应用所确定的配置变更来执行自愈。
9.一种集群管理系统处的、计算机联网环境中的用于高效地执行对所指定的服务水平目标SLO的影响分析的计算机实现的方法,所述集群管理系统包括至少一个处理器和存储器,所述计算机联网环境包括多个计算系统,所述方法包括:
从集群管理员接收所指定的SLO将被应用于一个或多个应用的指示的动作,所述SLO指示将被应用于所述应用的一个或多个SLO服务维度和维度属性,所述SLO匹配从云服务用户接收的至少一个声明性语句,所述声明性语句指示将要在所指定的软件应用的供应和运行时执行中的至少一个期间应用的一个或多个操作要求;
启动影响分析以确定根据所述所指定的SLO中所指示的SLO服务维度和维度属性来托管所述所指定的软件应用对所述集群的潜在影响的动作;以及
向所述用户提供所述影响分析的结果的动作,所述结果指示根据所述所指定的SLO中所指示的SLO服务维度和维度属性来托管所述所指定的软件应用对所述集群的潜在影响。
10.如权利要求9所述的方法,其特征在于,所述影响分析还提供对从具有所指定的SLO和记账模型的所指定的软件应用的云租户产生的收入的估计影响,其中所述记账模型将一价格与所述SLO相关联。

说明书全文

针对托管应用的服务平目标

技术领域

[0001] 本发明涉及针对云托管应用的服务水平目标。

背景技术

[0002] 计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计算机可快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用允许用户执行包括商业应用、学校作业、娱乐等等在内的各种各样的功能。软件应用通常被设计成执行特定的任务,诸如用于草拟文档的文字处理器应用或者用于发送、接收和组织电子邮件的电子邮件程序。
[0003] 在许多情况下,软件应用程序被设计为与其他软件应用或其他计算机系统交互。例如,因特网浏览器可允许用户与因特网(也被称为“云”)上的其他web服务器进行交互。这些web服务器可提供各种类型的web服务和应用。在某些情况下,企业、政府团体或其他实体可经由云向雇员或其他用户提供应用。这些云应用对于用户而言可以是高度可用的,并且可以在用户提供适当的登录凭证之后被提供给用户。至少在某些情况下,这些云应用的管理员对这些应用的供应和支持具有有限量的控制。

发明内容

[0004] 本文描述的各实施例涉及使用受制于基于色的管理边界的服务水平目标(SLO)来声明性地管理软件应用,动态地将SLO应用于所指定的一个或多个软件应用,以及高效地执行对所指定的一个或多个SLO或所指定的一个或多个软件应用的影响分析。在一个实施例中,集群管理系统从云服务用户接收至少一个声明性语句。声明性语句的语义允许用户表达对一应用的独立于托管该应用的服务器计算机系统的实现细节的供应和/或操作要求。集群管理系统确定哪些SLO服务维度和维度属性匹配声明性语句中所指定的供应和/或操作要求。每一SLO都定义打算在所指定的应用的供应和/或运行时执行期间提供的SLO服务维度和维度属性。集群管理系统然后基于匹配声明性语句中所指定的操作要求的所确定的SLO服务维度和维度属性来为所指定的应用生成SLO。
[0005] 在另一实施例中,集群管理系统基于SLO来动态地将配置变更应用于所指定的软件应用。集群管理系统确定SLO已由应用级管理员应用于所指定的软件应用。该SLO指示将要在所指定的应用的供应和/或运行时执行期间提供的各种SLO服务维度和维度属性。集群管理系统确定本应在所指定的应用的供应和/或运行时执行期间提供的SLO服务维度和维度属性中的至少一个当前未被提供,并且进一步确定将要实现哪些配置变更以满足针对所指定的应用的SLO服务维度和维度属性。然后,基于对将做出哪些配置变更的判定,集群管理系统应用所确定的配置变更,以使得该应用根据SLO中所指定的SLO服务维度、维度属性和维度设置来供应和/或在运行时操作。
[0006] 在又一实施例中,集群管理系统高效地执行对所指定的服务水平目标SLO的影响分析。集群管理系统从集群管理员接收所指定的SLO将被应用于一个或多个应用的指示。SLO指示将被应用于应用的SLO服务维度和维度属性。集群管理系统启动影响分析,以便根据所指定的SLO中所指示的SLO服务维度和维度属性来确定对集群的潜在影响。集群管理系统然后向用户提供该影响分析的结果。该结果指示根据所指定的SLO中所指示的SLO服务维度和维度属性来托管所指定的应用对集群的潜在影响。
[0007] 提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
[0008] 附加的特征和优点将在以下的描述中被阐述,并且部分地可通过该描述而对本领域技术人员显而易见,或者可通过对本文中的教示的实践来习得。本发明的实施例的特征和优点可以通过在所附权利要求中特别指出的手段和组合来被实现并获得。本发明的实施例的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而习得。附图说明
[0009] 为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明的实施例将通过使用附图用附加特征和细节来描述和解释,附图中:
[0010] 图1示出了其中可操作本发明的包括声明性地管理软件应用在内的各实施例的计算机体系结构。
[0011] 图2示出了用于使用基于角色的管理边界来声明性地管理软件应用的示例方法的流程图
[0012] 图3示出了用于动态地将服务水平目标(SLO)应用于所指定的软件应用的示例方法的流程图。
[0013] 图4示出了用于高效地执行对所指定的服务水平协议SLO的影响分析的示例方法的流程图。
[0014] 图5示出了本发明的其中SLO服务维度和维度属性被应用于应用的实施例。

具体实施方式

[0015] 本文描述的各实施例涉及使用受制于基于角色的管理边界的服务水平目标(SLO)来声明性地管理软件应用,动态地将SLO应用于所指定的一个或多个软件应用,以及高效地执行对所指定的一个或多个SLO或所指定的一个或多个软件应用的影响分析。在一个实施例中,集群管理系统从云服务用户接收至少一个声明性语句。声明性语句的语义允许用户表达对一应用的独立于托管该应用的服务器计算机系统的实现细节的供应和/或操作要求。集群管理系统确定哪些SLO服务维度和维度属性匹配声明性语句中所指定的供应和/或操作要求。每一SLO都定义打算在所指定的应用的供应和/或运行时执行期间提供的SLO服务维度和维度属性。集群管理系统然后基于匹配声明性语句中所指定的操作要求的所确定的SLO服务维度和维度属性来为所指定的应用生成SLO。
[0016] 在另一实施例中,集群管理系统基于SLO来动态地将配置变更应用于所指定的软件应用。集群管理系统确定SLO已由应用级管理员应用于所指定的软件应用。该SLO指示将要在所指定的应用的供应和/或运行时执行期间提供的各种SLO服务维度和维度属性。集群管理系统确定本应在所指定的应用的供应和/或运行时执行期间提供的SLO服务维度和维度属性中的至少一个当前未被提供,并且进一步确定将要实现哪些配置变更以满足针对所指定的应用的SLO服务维度和维度属性。然后,基于对将做出哪些配置变更的判定,集群管理系统应用所确定的配置变更,以使得该应用根据SLO中所指定的SLO服务维度、维度属性和维度设置来供应和/或在运行时操作。
[0017] 在又一实施例中,集群管理系统高效地执行对所指定的服务水平目标SLO的影响分析。集群管理系统从集群管理员接收所指定的SLO将被应用于一个或多个应用的指示。SLO指示将被应用于应用的SLO服务维度和维度属性。集群管理系统启动影响分析,以便根据所指定的SLO中所指示的SLO服务维度和维度属性来确定对集群的潜在影响。集群管理系统然后向用户提供该影响分析的结果。该结果指示根据所指定的SLO中所指示的SLO服务维度和维度属性来托管所指定的应用对集群的潜在影响。
[0018] 以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并非必然需要特定的次序,除非特别声明,或者是在一个动作被执行之前因为该动作依赖于另一动作的完成而需要的情况。
[0019] 本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。以数据形式存储有计算机可执行指令的计算机可读介质是计算机存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
[0020] 计算机存储介质包括RAM、ROM、EEPROM、CD-ROM、基于RAM、闪存、相变存储器(PCM)、或其它类型的存储器的固态驱动器(SSD)、或者其他光盘存储、磁盘存储或其他磁存储设备、或可用于以计算机可执行指令、数据或数据结构形式存储所期望的程序代码装置且可被通用或专用计算机访问的任何其他介质。
[0021] “网络”被定义成允许在计算机系统和/或模和/或其他电子设备之间传输电子数据的一个或多个数据链路和/或数据交换机。当信息通过网络(硬连线、无线、或者硬连线或无线的组合)被传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括如下的网络:所述网络可以用于运送数据或计算机可执行指令形式或数据结构形式的所期望的程序代码装置,并且可以被通用或专用计算机访问。上述的组合也应被包括在计算机可读介质的范围内。
[0022] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路上接收到的计算机可执行指令或数据结构可被缓冲在网络接口模块(例如,网络接口卡或“NIC”)内的RAM中,然后最终被传输给计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
[0023] 计算机可执行(或计算机可解释)指令例如包括致使通用计算机、专用计算机、或专用处理设备执行某个功能或某组功能的指令。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0024] 本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。本发明还可在分布式系统环境中实践,在该环境中本地和远程计算机系统通过网络(经由硬连线数据链路、无线数据链路、或者经由硬连线和无线数据链路的组合)链接起来,每个计算机系统都执行任务(例如,云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
[0025] 图1示出了可在其中采用本发明的原理的计算机体系结构100。计算机体系结构100包括集群101。集群101可包括多个不同的物理或逻辑服务器计算机系统,包括集群管理系统102和逻辑服务器103和104。集群101中的服务器可以是不同类型的计算系统,包括实际的物理服务器、虚拟(逻辑)服务器或服务器实例、分布式服务器(包括云处理、云存储、云数据库等)或其他类型的计算机系统。因此,集群101可包括物理和逻辑服务器的组合。集群管理系统102因此可以是任何类型的本地、分布式、逻辑或其他计算系统。在某些情况下,集群管理系统102可以是集群管理系统的实例。由此,许多不同的集群管理实例可以在任何给定时间在集群101中操作。
[0026] 逻辑服务器103为属于相同的云服务用户的一组应用和一组SLO提供管理边界。类似地,逻辑服务器104为属于不同的云服务用户的一组应用和一组SLO提供管理边界。逻辑服务器可以跨越不同的物理计算机系统或驻留在相同的物理计算机系统上。逻辑计算机系统和物理计算机系统两者都可以是分布式的或本地的。在某些情况下,逻辑服务器可以是在单个物理计算机系统上运行的单个服务器。在某些其他情况下,逻辑服务器可以在多个物理计算机系统上运行。在还有一些其他情况下,多个逻辑服务器可以在相同的物理计算机系统上执行。另外,服务器集群(例如,101)可以在一个或许多不同的物理计算机系统上运行。因此,服务器集群可包括被配置成执行各种各样的任务中的任一个的基本上任何数量的物理或逻辑服务器。例如,服务器102包括用于执行各种不同功能的各种不同的模块。这些功能将在下面进行更详细地解释。
[0027] 将在本文全文中使用的术语将在此处如下定义:“服务水平目标(SLO)”是集群管理计算机系统提供给软件应用的总操作合同。“SLO服务维度“是针对一应用的总操作合同的一方面。一个示例是资源使用。操作合同指定将在供应和/或在运行时执行软件应用时提供的保证(即SLO)。至少在某些情况下,服务维度的范围被限于它涵盖的类别。例如,资源使用可处理任何种类的资源(例如,CPU、存储器、网络带宽、盘I/O等)的消耗。术语“供应”或“部署”应用指的是实例化集群中的应用的过程。在此期间,终端用户或其他客户可能无法访问应用。“运行时”指的是供应/部署应用之后的当该应用能够代表终端用户或其他客户处理请求时的状态。
[0028] “维度属性”是SLO服务维度的一方面,诸如资源使用情况下的CPU容量。“维度设置”是具有一个或多个预定义值的维度属性的容器。例如,维度设置111C可以是标签,诸如标识一维度的属性值的“高”。在这些情况下,资源使用维度的高设置可能映射到10%处理器、4GB存储器和每秒100次输入/输出运算(IOPS)。维度的一些属性值可独立于设置选择来设置。例如,资源使用维度可具有控制资源上限是硬的还是软的属性。在该示例中,如果SLO的资源使用设置是“高”,则资源上限不是预定的并且可被设为硬的或软的。
[0029] SLO服务维度的示例包括:资源使用、地理可用性、安全性和顺应性、时间点恢复和库存单位(SKU)。这些SLO服务维度中的每一个都将在下文中简要讨论。资源使用维度向应用保证跨影响其性能的度量的固定量的资源容量。实际上,该保证可以运用统计学,以支持在集群中的单个节点上共享相同的底层硬件资源的多个不同应用。资源度量包括:CPU利用率、存储器大小、盘空间、盘IO带宽和网路IO带宽。对每一资源度量的容量限制是该SLO维度的可配置设置。这些限制的硬和软上限也是可配置的。
[0030] 地理可用性维度提供的能通过在可能位于不同的地理位置的受信集群中创建应用的副本来保护应用免遭集群中的灾难。受信集群中的应用的恢复点目标(RPO)是该SLO维度的可配置设置。其上创建副本和副本的目标SLO的特定受信集群也是可配置的。
[0031] 安全性和顺应性维度提供的能力保证应用符合特定安全和审计要求。这些要求的示例包括认证原理的类型(诸如操作系统认证或数据库认证)、口令策略(诸如口令期满时间段)和数据加密模式(诸如密钥强度)。审计的范围可包括架构和特殊标记的数据。审计日志的保留时间段是该SLO维度的可配置设置。
[0032] 时间点恢复维度所提供的能力允许应用管理员将集群中的数据库应用还原至过去的特定时间点。例如,在应用管理员错误地更新数据库的情况下,该数据库可被回退至所期望的状态。可进行还原的时间跨度是该SLO维度的可配置设置。
[0033] SKU维度标识提供给应用的服务版本,诸如某些类型的数据库中的“web”或“业务”。SKU可承载与其他服务维度所指定的特定属性的关系。跨维度属性的任何值冲突和/或跨服务维度的设置冲突通过SLO模型来防止。例如,如果业务模型或工程限制不允许SKU“A”提供地理可用性数据保护,则SLO模型可结合一规则以使得创建其中SLO SKU设置为“A”且SLO地理可用性设置为除了“无”之外的任何值的SLO是不可能的。
[0034] 在一些实施例中,SLO服务维度和属性由SLO元数据架构来在内部定义并且无法由其他用户修改。对于给定维度,“集群管理员”能够创建新设置以及将现有设置映射到受制于SLO元数据架构施加的约束的不同属性值。集群管理员对SLO元数据(例如,SLO设置)做出的变更可被持久存储在集群配置数据存储中。在某些情况下,集群管理员实现的变更(例如,设置变更)可被同步到特定集群中的每一个逻辑服务器。这可使用由集群管理系统运行的后台同步任务来执行,该后台同步任务周期性地在集群配置数据存储中检查集群管理员发起的对SLO元数据的变更。如果检测到变更,则同步任务可将变更应用于逻辑服务器以及受影响的应用中的每一个。
[0035] 这可以例如在资源使用维度的设置被编辑成变更该设置的资源保留值的情况下发生。该设置可以在各个逻辑服务器中的不同SLO中使用并且被分配给各种应用。同步任务首先更新集群中的每一逻辑服务器的元数据,并且然后为服务器中的被指派给包含修改后的设置的SLO的应用更新SLO配置。至少在某些情况下,由于实现了松耦合的分布式系统,因此该元数据将最终被同步到集群中的所有逻辑服务器和应用。此外,可以理解,如果SLO对现有应用使用这些设置,则针对该应用的SLO也在同步中更新。
[0036] 集群管理员还可创建被称为SLO模板的即时可用(out-of-the-box)SLO,该即时可用SLO可由服务器管理员或应用管理员在进行极少或不进行配置的情况下使用。“服务器管理员”能够通过为每一SLO维度选择预定义设置以及指定可配置属性的值来创建新SLO。在某些情况下,服务器管理员可具有一旦SLO变得与部署中的应用相关联就更新或删除SLO的有限能力。例如,给定集群的集群管理员可指定服务器管理员具有修改正由应用使用的SLO的许可的程度。例如,在私有云场景中,组织可能想或不想将这种许可授予服务器管理员。以此方式控制管理员权限可由私有云集群的集群管理员来组织。“应用管理员”能够为应用选择对其负责的SLO。应用管理员可以不具有执行对SLO的创建、读取、更新或删除(CRUD)操作的许可(或者可基于正在使用哪一个SLO而具有有限权限)。集群管理员、服务器管理员和应用管理员之间的这样责任分割可经由基于角色的授权来通过编程公式化。
[0037] 集群101可“即时可用(OOB)”地提供少量(例如,3-5)的预定义SLO,作为可用于简化服务器管理员的配置步骤的操作示例。这些OOB SLO可用于集群中的每一个逻辑服务器。每一维度的SLO设置也是即时可用地提供的,以帮助集群管理员简化在SLO创建期间对展示给服务器管理员的设置的配置。以此方式,OOB SLO的专设计的默认值可需要非常少的(如果有的话)的变更以使得可以在客户场景中使用。还应注意,至少某些OOB SLO可以是只能被应用于系统应用(例如,诸如主数据库等系统数据库)的系统SLO。系统应用被分配到该SLO作为逻辑服务器供应的一部分。集群管理员控制SLO可被用作系统SLO、用户SLO还是两者兼可。
[0038] 在将应用(例如,用户数据库)部署到集群101中期间,应用管理员可接受默认SLO或从已由服务器管理员启用的SLO集合中选择另一SLO。SLO应用供应系统然后配置针对该集群中的应用的SLO。在应用部署之后,应用管理员自由地变更应用SLO,或者允许基于表达业务目标的日程或规则和/或评估所监视的数据的规则来自动变更SLO。在释放SLO功能之前被部署在云中的应用被自动分配到逻辑服务器的默认SLO。逻辑服务器包括默认用户SLO。服务器管理员具有将逻辑服务器的默认用户SLO变更为也被包含在相同的逻辑服务器中的不同的用户SLO的许可。
[0039] 在应用被部署到集群中后,监视模块128检测针对一应用的SLO是否变成是误配置的或者是否未满足SLO所指定的操作保证。如果检测到SLO顺应性违反,则更新用于该应用的健康模型并且警告服务器或应用管理员。健康模型然后可确定是否需要由系统自动执行纠正动作以还原SLO顺应性。如果纠正动作失败或者在集群管理员设置的某一时间段内无法被执行,则更新用于该集群的健康模型,并且警告集群管理员。
[0040] 在由于私有和公共云之间的应用灾难恢复或迁移而导致的集群故障转移期间,目标集群和源集群可由于设计而不具有相同的SLO。例如,如在SLO中表达的审计条件需要基于管制要求来跨地理位置而不同。或者在其他情况下,跨集群的硬件和容量可以不同并且必需为资源使用维度提供不同的SLO设置。集群管理系统支持在这些场景中的每一个场景中转变针对应用的SLO。例如,集群管理系统可以自动将应用指派给目标集群中的目标逻辑服务器中的默认SLO。在另一示例中,源逻辑服务器中的应用的SLO可标识目标逻辑服务器中的目标SLO。在这种情况下,如果应用是在目标服务器中供应的,则集群管理系统可自动将该应用指派给目标SLO。
[0041] 对于透明扩展(TSO)碎片化(sharded)应用或用户控制的碎片化应用,SLO的资源使用维度涉及对每一应用碎片的资源分配。应用碎片可由集群管理系统来跨集群中的多个节点来供应。
[0042] 在TSO碎片化应用的情况下,资源使用设置是跨碎片相同的,因为由于应用工作负载而产生的资源需求是自动且均匀地分布在每一碎片上的。此外,至少在某些情况下,相对于非碎片化应用的部署,TSO应用部署期间的SLO选择的用户体验可能不存在差别。应用管理员为TSO应用选择的SLO由集群管理系统来自动应用于形成该TSO应用的所有碎片。
[0043] 在用户控制的碎片化应用的情况下,SLO资源使用设置可以跨碎片而不同,因为应用开发者可能引入跨碎片的不同寻常的资源使用不平衡。在这种情况下,应用管理员可以为不同的碎片选择不同的SLO。或者,应用管理员可决定只为碎片化应用的根选择SLO,并且允许集群管理系统自动将该相同的SLO应用于与该根相关联的每一碎片。对于应用管理员而言,该替换方案要简单得多,尤其是在碎片数量较多(例如,大约10^5个碎片)的情况下。
[0044] 在某些情况下,新SLO的创建或对现有SLO的变更可影响集群的物理服务器供应要求。例如,如果集群管理员增加资源使用维度中的SLO设置的保留计算单位的数量,则集群的容量可能需要重新调整大小。或者,如果安全性和顺应性维度的审计日志的数据保留时间段从一年增加到两年,则集群的容量也可能需要重新调整大小。在这些情况下,集群管理系统可估计所计划的SLO变更的影响,并且向集群和服务器管理员提供缓解指导。
[0045] 资源使用维度还可以为每一个所部署的应用保留固定量的硬件容量应用管理员冒着尤其是为展示不同寻常的时间相关利用模式的应用选择提供太少或太多容量的SLO的险。在某些情况下,不适当的SLO选择可导致糟糕的应用性能、招致对客户的不必要的收费,或者导致利用不足的集群,这取决于SLO资源使用设置过小还是过大。存在涉及根据随时间的工作负载需求来调节SLO的资源保留参数化的若干可能的缓解方案。其他缓解方案可涉及在预期并非所有应用都将同时需要其SLO中所指定的所有容量的情况下在给定节点上过度供应应用。以上各概念将在下文中分别参考图2、3和4的方法200、300和400来进一步解释。
[0046] 考虑到以上描述的系统和体系结构,参考图2、3和4的流程图将更好地理解根据所公开的主题实现的方法。为了解释简明起见,这些方法被示出和描述为一系列框。然而,应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下面所述的方法所必需的。
[0047] 图2示出了用于声明性地管理软件应用的方法200的流程图。现在将频繁参考环境100的组件和数据来描述方法200。
[0048] 方法200包括从云服务用户接收至少一个声明性语句的动作,该声明性语句指示将要在所指定的软件应用的供应和/或运行时执行期间应用的一个或多个操作要求(动作210)。例如,集群管理系统102可以从管理用户(例如,集群管理员105、服务器管理员106或应用管理员107)或者从某种其他类型的云服务用户接收声明性语句108。该声明性语句可以是陈述将要在软件应用(例如,用户应用141)的供应和/或运行时执行期间应用的操作保证。
[0049] 这些操作保证可包括诸如处理器容量、存储器容量、网络带宽或盘I/O带宽等按需运行应用所必需的对应用的资源容量要求的参数化;或其他操作要求。操作保证还可包括恢复点目标(RPO)参数。例如,RPO参数可用于通过在受信集群中创建数据库副本来保护应用免遭集群中的灾难。该受信集群可位于不同的地理位置以提供数据冗余。操作保证还可包括时间点可恢复性保证以及安全性和顺应性保证。的确,应注意,可以在本文描述的系统中设计并实现基本上任何类型的操作保证。
[0050] 在某些情况下,操作保证可以按声明性方式来指定。由此,操作保证无需以需要理解集群的实现细节的方式来程序性地指定,而是按以下方式进行声明:宽泛地指示在给定应用的供应和/或运行时执行期间将发生什么以及在该给定应用的运行时期间将维护什么。
[0051] 方法200还包括确定哪些服务水平目标(SLO)服务维度和维度属性匹配声明性语句中所指定的操作要求的动作,每一SLO都定义打算在所指定的应用的供应和/或运行时执行期间提供的一个或多个SLO服务维度和维度属性(动作220)。例如,集群管理系统102的匹配确定模块110可确定多个现有SLO服务维度和维度属性中的哪一些匹配声明性指示的操作要求。如上所示,SLO服务维度包括管控应用的供应和/或运行时执行的总操作合同的各方面。SLO维度属性是SLO维度的各方面。例如,资源使用可以是SLO服务维度,而CPU容量可以是该维度的SLO属性。
[0052] SLO服务维度包括以下各项中的一个或多个:软件应用资源使用、软件应用地理可用性、软件应用可恢复性、软件应用安全性、软件应用审计以及软件应用性能,诸如应用的请求等待时间。许多其他服务维度是可能的,并且该列表不旨在是限制性的。每一SLO服务维度可包括将在供应应用(例如,用户应用141)时和/或在运行时执行应用时遵循的SLO设置属性。例如,资源使用可包括CPU要求和存储器大小要求、应用地理可用性可指定恢复点目标(RPO)、集群故障转移事件之后的目标集群中的SLO、其中将部署或不部署应用的国家、州、时区、办公室间边界,应用可恢复性可包括数据备份要求(每小时、每天、每周等)。软件应用安全性可包括操作系统、硬件、应用版本或其他软件应用安全性要求,而软件应用审计和诸如应用的请求等待时间等软件应用性能可以各自进一步指定与其相关的设置。
[0053] 应理解,以上提供的每一个示例都仅仅是为了帮助读者理解可能的广泛的不同类型的设置。每一SLO维度111A都可具有多个SLO服务维度属性和设置。基于SLO维度设置111C或其他维度属性111B以及哪一个用户正试图建立或变更SLO维度设置或其他维度属性,每一个SLO服务维度属性和设置都是可配置的(或不可配置的)。在某些情况下,可实现基于角色的策略以控制哪些管理用户可访问哪些SLO服务维度、属性和设置。由此,具有适当管理特权的管理用户可指定将对所指定的软件应用使用多个可用SLO中的哪一个。一旦指定,该SLO就将在供应和/或在运行时执行相关联的应用时使用,直到被管理员变更。
[0054] 方法200还包括基于匹配声明性语句中所指定的操作要求的所确定的SLO服务维度和维度属性来为所指定的应用生成SLO的动作(动作230)。由此,在管理用户已经声明性地指定对部署应用141的操作要求109之后,并且在匹配确定模块110已经将SLO服务维度和属性与声明性地指定的操作要求进行匹配之后,SLO生成模块115可生成SLO117及其对应的服务维度111A和维度属性111B。所生成的SLO由此包括将在部署和/或运行软件应用141时实现的声明性地指定的操作要求。
[0055] 所生成的SLO117然后可以与所指定的软件应用相关联。应用管理员可做出该关联,以指示所生成的SLO117将被应用于所指定的软件应用。该关联确保当该应用被部署到一个或多个终端用户130时,应用所生成的SLO并且根据所生成的SLO的服务维度111A和维度属性111B来部署该应用,所生成的SLO的服务维度111A和维度属性111B又基于声明性地指定的操作要求和SLO的任何其他属性值。所生成的SLO由计算机系统在所指定的软件应用的运行时期间持续地应用于该应用。
[0056] 图5示出了其中示出各种数据库应用、服务器、服务器集群和SLO的应用供应环境500。该环境包括两个集群(芝加哥(501A)和圣安东尼奥(501B))。每一集群包含包括默认模板(分别是502A和502B)的即时可用的SLO模板。SLO模板被深度复制到服务器管理员创建的任何新服务器中。SLO指定在应用部署期间应用并在应用运行时期间维护的SLO维度设置值
111C和SLO维度属性值111B。芝加哥集群包括服务器1(503A)和服务器2(503B)。服务器1提供SLO(505D)和“金”(505A)SLO。金SLO可指示托管在服务器1上的使用该SLO的应用将被给予大量处理和其他资源。例如,金SLO可指示将使用一个或多个SLO维度属性507(例如,CPU最小20%、CPU最大80%、存储器最小1GB、存储器最大4GB)来提供SLO维度“资源使用”
506A。每一SLO属性507还可由相关联的设置来管控。例如,“低”设置508A可以自动地应用诸如CPU最小10%和存储器最大2GB等低水平SLO属性中的某一些,而“高”设置508B可以应用诸如CPU最小20%和存储器最大4GB等高水平SLO属性中的某一些。
[0057] 如环境500所示,金SLO还包括定义用于应用的可用性设置的“地理可用性”SLO维度(506B)。在某些情况下,服务器1使用的不同数据库可由不同的SLO来管控。如可以在环境500中见到的,应用DB1(504A)和DB2(504B)根据“金”SLO(505A)来供应和/或在运行时执行,而应用DB3(504C)根据“银”SLO(505D)来供应和/或在运行时执行。SLO模板被从集群配置存储深度复制到由服务器管理员创建的任何新逻辑服务器中。例如,服务器2(503B)在其创建之后包括“芝加哥默认”SLO模板505B,而服务器3(503C)在其创建之后包括“圣安东尼奥默认”SLO模板505C。服务器管理员然后可定制这些模板并且变更将只在逻辑服务器的上下文内应用。该应用供应环境只是许多可能的环境之一。在不同的部署和其他实施例中,所示的每一元素的数量和类型都可由适当级别的管理员来配置。
[0058] 在某些情况下,可以持续地监视每一维度和/或维度属性(即,每一供应和/或运行时执行保证)以确保为所指定的软件应用提供保证。在某些情况下,监视可确定一个或多个SLO保证已经在软件应用141的运行时期间被违反。当确定至少一个SLO保证已被违反时,集群管理系统持续尝试通过做出关于资源使用、地理可用性等凡是必要的无论什么变更来重新满足SLO保证。例如,如果由于物理主机的资源容量限制而未在应用的SLO保证资源保留的情况下提供该应用,则该系统可自动将该应用重新定位至具有足够容量的物理主机。
[0059] 如上所述,使用SLO的软件应用部署管理可基于一个或多个管理角色,其中每一个角色都可访问并且配置不同的SLO应用部署策略设置。集群管理员能够创建新设置以及将现有设置映射到受制于SLO应用供应系统施加的约束的不同属性值。集群管理员还可创建可以在进行极少或不进行配置的情况下应用的即时可用的SLO。
[0060] 服务器管理员能够通过为每一SLO维度选择预定义设置以及指定可配置属性的值来创建新SLO。在某些情况下,服务器管理员可具有一旦SLO变得与部署中的应用相关联就更新或删除SLO的有限能力。应用管理员能够为应用选择对其负责的SLO。应用管理员可能不具有执行SLO CRUD(创建/读取/更新/删除)操作的许可。在一些实施例中,可以为管理角色提供工作流,其中该工作流允许各种类型的管理员使用SLO来变更所指定的软件应用的操作要求。工作流可示出SLO将在何处且如何被应用以确保每一应用都根据适当的SLO来供应和/或在运行时执行。SLO可被动态地应用于软件应用,如以下图3所示。
[0061] 工作流还可允许管理员做出对应用的SLO分配。SLO首先被草拟,然后被启用、被禁用或被删除。可应用关于何时可以编辑、应用或删除SLO的不同规则。此外,工作流可用于控制谁、如何以及何时能够编辑、应用或删除SLO。每一SLO或SLO模板由此可由根据SLO或SLO模板当前所处的状态来应用规则的状态机来控制。用于SLO修改的规则可由集群管理员来指定,并且可以单独地应用于各SLO或各组SLO(诸如,特定逻辑服务器或集群的SLO)。
[0062] 如上所述,SLO模板(例如,502A)由集群管理员来创建。SLO模板被持久存储在集群(例如,集群101)中的私有存储中,在那里SLO模板能够在创建一个或多个逻辑服务器(例如,逻辑服务器103和104)时被自动地深度复制到这些逻辑服务器中。一旦SLO模板被复制到逻辑服务器中,该SLO模板的副本就被称为SLO。此刻,服务器管理员可以在逻辑服务器中的SLO不是系统SLO的情况下对该SLO执行CRUD操作(因为系统SLO是为系统应用保留的)。这些CRUD操作不影响SLO所源自的集群级SLO模板,这些操作也不影响其他逻辑服务器中的SLO。
[0063] 将SLO分配给应用可以按各种方式进行。例如,SLO可由应用管理员分配给应用。应用管理员可选择一SLO并将其应用于在他或她的控制下的一个或多个应用(诸如用户应用141)。在另一实施例中,服务器管理员为驻留在他或她的逻辑服务器(例如,103)上的一组应用分配一SLO。在又一实施例中,集群管理员可将SLO分配给在他或她的控制下的一个或多个应用。在系统应用的情况下,集群管理系统102可以自动地将系统SLO分配给每一系统应用(诸如逻辑服务器103的系统应用140)。
[0064] 图3示出了用于基于服务水平目标(SLO)来动态地将配置变更应用于所指定的软件应用的方法300的流程图。现在将频繁参考环境100的组件和数据来描述方法300。
[0065] 方法300包括确定已由应用级管理员将一SLO应用于所指定的软件应用的动作,该SLO指示将要在所指定的应用的供应和/或运行时执行期间提供的一个或多个SLO服务维度和维度属性(动作310)。例如,SLO117可能已被应用于部署如由应用管理员107指定的软件应用141。SLO指示将要在应用供应模块119供应应用时提供的各种SLO服务维度111A和维度属性111B。SLO应用供应系统可确定本应在所指定的应用的供应和/或运行时执行期间提供的SLO服务维度和/或维度属性中的至少一个当前未被提供(动作320)。SLO应用供应系统可监视应用的供应和/或运行时执行,以确保在该应用的部署和/或运行时期间满足适当的SLO服务维度和维度属性。
[0066] 一旦已经确定未满足应用的SLO(例如,由于缺乏计算资源等),SLO应用供应系统就确定将要实现哪些配置变更以满足所指定的应用的SLO(动作330)。然后,基于对将要做出哪些配置变更的判定,集群管理系统102的配置变更应用模块120应用所确定的配置变更(动作340)。应用变更确保应用根据SLO中所指定的SLO服务维度和维度属性来供应和/或在运行时执行。
[0067] 集群管理系统可通过自动应用所确定的配置变更来执行自愈。因此,只要监视指示集群管理系统不再满足一个或多个应用的一个或多个SLO服务维度或维度属性,SLO应用供应模块就可自动确定需要哪些变更来将该应用的配置带回到与SLO所指定的声明性意图的顺应性中,并且动态地应用这些变更。在某些情况下,变更可由模块120来应用以优化所指定的软件应用在多个计算机系统中的部署。在还有一些其他情况下,SLO可结合日程化操作要求。因此,例如,比如市场之类的应用可能想要为假期或其他高流量购物日保留较大量的资源。然而,相同的应用可能在其余时间使用中等量的资源。SLO可通过基于所输入的日程相应地修改保留方案来结合这些操作要求。
[0068] 例如,通过基于每一个计算机系统的处理可用性来将处理负载分布在多个计算机系统中,SLO应用供应系统可通过确定哪些计算资源可用且基于哪些资源可用来优化部署。由此,如果集群101中的一个服务器计算机系统(或服务器计算机系统的集合)具有更多处理容量(或具有更多的另一资源),则应用的部署可被转移至(至少当前)最能够处理负载的那些服务器。随着资源变化,应用部署可以类似地改变以确保最能够处理负载的那些系统正在处理负载。
[0069] 现在转向图4,提供了用于高效地执行对所指定的SLO的影响分析的方法400。现在将频繁参考环境100的组件和数据来描述方法400。
[0070] 方法400包括从用户接收所指定的SLO将被应用于一个或多个应用的指示的动作,该SLO指示将被应用于应用的一个或多个SLO服务维度和维度属性(动作410)。集群管理系统102的影响分析模块125然后可启动影响分析以确定根据所指定的SLO中所指示的SLO服务维度和维度属性来托管所指定的应用对集群的潜在影响(动作420)。例如,返回到环境500,如果管理员想要知道将“金”SLO(505A)应用于应用DB3(504C)的潜在影响,则影响分析模块可分析在应用DB3上应用“金”SLO对集群(例如101)的处理、存储、网络带宽和其他潜在影响。
[0071] 然后,影响分析模块可以向一个或多个管理用户(105、106和/或107)提供影响分析的结果127。结果127指示根据所指定的SLO中所指示的SLO服务维度和维度属性来托管所指定的应用对集群的潜在影响(动作430)。在某些情况下,可执行对应用使用模式的历史分析并使用该历史分析来确定应用所指定的SLO的潜在影响。应用使用模式由此可用于推荐最优SLO配置。确定对集群的潜在影响的影响分析通常被发送到集群管理员,而确定对应用的潜在影响的影响分析可被发送到集群管理员、服务器管理员或应用管理员(435)。
[0072] 在某些情况下,影响分析还可提供对从具有所指定的SLO和记账模型的所指定的应用的云租户产生的收入的估计影响,其中该记账模型将一价格与SLO相关联。由此,影响分析可以向潜在客户或当前云用户示出由于切换至不同的SLO而导致的金钱成本变化。然后,基于客户所陈述的需求,可更新管控他们的应用的供应和/或运行时执行的SLO以反映所需变化。计算机系统处理容量和其他资源可根据影响分析的结果来动态地重新分配。
[0073] 在其中使用影响分析的一些实施例中,资源使用维度可以为所部署的每一个应用保留固定量的硬件容量。应用管理员可能冒着尤其是为展示不同寻常的时间相关利用模式的应用选择提供太少或太多容量的SLO的风险。这可导致糟糕的应用性能、招致对客户的不必要的收费,或者导致利用不足的集群,这取决于SLO资源使用设置过小还是过大。存在涉及根据随时间的工作负载需求来调节SLO的资源保留参数化的若干可能的缓解方案。其他缓解方案涉及在预期并非所有应用都将同时需要其SLO中所指定的所有容量的情况下在给定节点上过度供应应用。
[0074] 应当注意,如上所述地调节资源保留参数化可以进一步使用为应用收集的历史性能度量来调节资源保留参数化,以实现满足请求应用的等待时间目标的操作目标。
[0075] 影响分析还可用于确定管理用户将特定SLO分配给任何数量的所部署的应用对特定集群的影响。在这样的情况下,可基于SLO变更来启动影响分析(任选的动作425)。例如,假设集群管理员引入了向应用提供高水平的资源容量的新SLO。影响分析然后将确定在该SLO后续被一个或多个用户分配给某一指定数量的应用的情况下的对集群资源利用率的影响。或者集群管理员可使用影响分析来确定使用新SLO的多少应用会导致集群耗尽资源容量(这将干扰云服务的正常操作)。由此,影响分析能够以各种不同的方式使用,并且上述示例不应被阅读成是限制性的。
[0076] 在另一示例中,可执行SLO影响分析以确定应用SLO的计划金钱成本。例如,集群101所提供的服务的用户可能希望确定由于变更所指定的一个应用或一组应用的SLO而导致的他们的账单的预期变化。从另一观点来看,云服务提供者可能希望明白由于一个或多个租户变更任何数量的他们的应用的SLO而导致的收入和运营成本的变化。例如,云提供者可以为资源使用维度提供“超大”的SLO设置,该设置向使用该SLO的应用提供成比例的大量计算资源。影响分析将指示创建有该“超大”设置的SLO将招致对云用户对每应用的使用收取每小时(或其他单位)某一数量的美元,并且每一应用都需要特定数量的处理器核以及特定量的存储器。该信息可以在逐个应用的基础上提供。
[0077] 云用户还可使用影响分析来确定例如将DB1和DB3指派给指定“超大”设置的新SLO将花费多少。云提供者可使用影响分析来确定例如在芝加哥集群中所有数据库的50%在某一将来时刻(例如,从现在开始六个月)使用具有“超大”设置的SLO的情况下将会发生什么——所导致的所产生的收入变化将会是什么,以及附加成本将会是什么(由于将需要更多的物理硬件容量)。如可以理解的,影响分析可由云用户和云提供者两者用来确定SLO的应用如何能够影响资源使用及其预期成本。
[0078] 因此,如上所述,提供了可用于声明性地管理软件应用的各种方法、系统和计算机程序产品。此外,提供了动态地将服务水平目标应用于所指定的软件应用并且高效地执行对所指定的服务水平目标的影响分析的各种方法、系统和计算机程序产品。
[0079] 本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈