CN116601605A - 在云平台上声明式供应资源 - Google Patents

在云平台上声明式供应资源 Download PDF

Info

Publication number
CN116601605A
CN116601605A CN202180082651.8A CN202180082651A CN116601605A CN 116601605 A CN116601605 A CN 116601605A CN 202180082651 A CN202180082651 A CN 202180082651A CN 116601605 A CN116601605 A CN 116601605A
Authority
CN
China
Prior art keywords
data center
cloud platform
representation
computer
target cloud
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180082651.8A
Other languages
English (en)
Inventor
J·梅尔
V·古普塔
S·德鲁瓦库马尔
C·莫耶斯
M·查克卡拉帕尼
J·布兰泽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shuo Power Co
Original Assignee
Shuo Power Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shuo Power Co filed Critical Shuo Power Co
Priority claimed from PCT/US2021/015525 external-priority patent/WO2022098382A1/en
Publication of CN116601605A publication Critical patent/CN116601605A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/18Delegation of network management function, e.g. customer network management [CNM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Abstract

例如,计算系统,多租户系统使用独立于云平台的云平台基础设施语言在云平台中创建数据中心。该系统接收独立于云平台的声明性规范,该声明性规范描述了要被创建的新数据中心或对部署在云平台上的现有数据中心的修改。该系统编译独立于云平台的声明性规范以生成数据中心的元数据表示。如果数据中心存在,则系统生成表示对数据中心的修改的元数据表示以获得期望的数据中心。系统发送元数据表示和用于在目标云平台上执行的一组指令。目标云平台执行指令以配置数据中心。该系统向用户提供对由目标云平台配置的数据中心的计算资源的访问。

Description

在云平台上声明式供应资源
背景技术
技术领域
本发明一般涉及云计算平台,尤其涉及用于在云计算平台中创建数据中心的声明性语言和编译器。
相关技术的描述
组织越来越多地在诸如AWS(亚马逊网络服务)、GOOGLE云平台,MICROSOFT AZURE等云计算平台(或云平台)上回复其基础设施需求。云平台通过因特网向组织提供服务器、存储、数据库、联网、软件等。通常,组织维护容纳由组织使用的硬件和软件的数据中心。然而,维护数据中心会导致维护、人员等方面的显著开销。因此,组织正在将其数据中心转移到提供计算资源的可扩展性和弹性的云平台。
组织使用能够管理和部署云平台上的使用的连续传递平台来维护云平台上的云基础设施。这种连续传递平台允许组织简化软件部署过程并管理云平台上的应用、防火墙、集群、服务器、负载平衡器和其它计算基础设施。然而,使用连续传递平台在云平台上维护大型数据中心可能是复杂的。这种大型数据中心可能需要维护这种平台的数百万行的指令。此外,多租户系统为表示多租户系统的租户的大量组织管理数据和应用。
多租户系统可能必须在云平台上维护数千个这样的数据中心。由于每个数据中心可能需要数百万行的代码,所以维护这样的数据中心可能是复杂的任务。此外,每个云平台所支持的软件、语言、特征可以不同。例如,不同的云平台可以支持用于实现网络策略或访问控制的不同机制。此外,由特定云平台支持的网络策略可能不被另一云平台支持。因此,多租户系统必须根据数据中心所支持的云平台的数量来维护数据中心的不同实现。这导致用于支持跨多个云平台的数据中心的多租户系统的高维护成本。
附图说明
图1是示出根据实施例的在云平台上配置数据中心的多租户系统的系统环境的框图。
图2是示出根据实施例的数据中心生成模块的系统架构的框图。
图3是示出根据一个实施例的编译模块的架构的框图。
图4示出了根据一个实施例的数据中心声明性规范的示例。
图5示出了根据一个实施例的基于声明性规范在云平台上创建的示例数据中心。
图6是示出根据一个实施例的用于基于声明性规范在云平台上创建数据中心的过程的流程图。
图7是示出根据一个实施例的基于声明性规范在云平台上生成数据中心的框图。
图8是示出根据一个实施例的用于在云平台上部署数据中心的过程的流程图。
图9是示出根据实施例的数据中心修改模块的系统架构的框图。
图10A示出了根据一个实施例的数据中心的元数据表示。
图10B示出了根据一个实施例的图10A的数据中心的修改的元数据表示。
图10C示出了根据一个实施例的基于图10A和图10B的元数据表示之间的差异的增量元数据表示。
图11是示出根据一个实施例的用于修改部署在云平台上的数据中心的过程的流程图。
图12是示出根据一个实施例的用于在图1的环境中使用的典型计算机系统的功能视图的框图。
附图仅出于说明的目的描绘了各种实施例。本领域技术人员将从以下讨论中容易认识到,在不脱离本文所述的实施例的原理的情况下,可以采用本文所示的结构和方法的替代实施例。
附图使用相同的附图标记来标识相同的元件。在附图标记之后的字母,例如“115a”,指示该文本具体指具有该特定参考数字的元件。在本文中没有附后字母的附图标记,例如“115”,是指附图中写有该附图标记的任何或所有元件。
具体实施方式
云平台经由诸如因特网的公共网络在按需的基础上向计算系统提供诸如存储、计算资源、应用等的计算资源。云平台允许企业最小化建立计算基础设施的前期成本,并且还允许企业以更少的维护开销来启动应用并更快地运行。云平台还允许企业将计算资源调整以适应快速波动和不可预测的需求。企业可以使用云平台来创建数据中心以供企业的用户使用。然而,在每个云平台上实现数据中心需要云平台技术方面的专业知识。
实施例允许计算系统(或多个计算系统)使用独立于云平台的云平台基础设施语言在云平台中创建数据中心。该系统接收数据中心的独立于云平台的声明性规范。声明性规范描述了数据中心,并且可以不提供用于创建数据中心的指令。独立于云平台的声明性规范被配置成在多个云平台中的任何一个上生成数据中心,并使用云平台基础设施语言进行规定。该系统接收标识用于创建数据中心的目标云平台的信息。该系统编译独立于云平台的声明性规范以生成云平台特定数据中心表示。系统发送平台特定数据中心表示和用于在目标云平台上执行的一组指令。目标云平台执行指令以使用平台特定数据中心表示而配置数据中心。该系统向用户提供对由云平台配置的数据中心的计算资源的访问。
在一个实施例中,该系统允许基于对描述数据中心的声明性规范的修改来修改部署在云平台上的数据中心。该系统基于声明性规范的原始版本在云平台中创建数据中心。系统接收带有指令的经修改的声明性规范,该指令用于修改数据中心以对应于经修改的声明性规范中所规定的描述。该系统生成表示基于原始声明性规范的数据中心的原始版本与基于经修改的声明性规范的数据中心的经修改版本之间的差异的增量元数据表示。该系统基于增量元数据表示生成修改计划,该修改计划包括用于修改目标云平台上的数据中心以获得数据中心的修改版本的指令。该系统向目标云平台发送所生成的用于执行的指令。目标云平台执行所生成的指令以从数据中心的原始版本获得数据中心的修改版本。该系统向该组用户提供对部署在目标云平台上的数据中心的修改版本的计算资源的访问。可以为与多租户系统的租户相关联的一组用户创建数据中心。或者,该组用户可以是任何用户,例如请求创建数据中心的企业用户或与请求创建数据中心的任何计算系统相关联的用户。
在一个实施例中,增量元数据表示包括表示用与数据中心实体相关联的操作类型(例如,创建操作、删除操作或更新操作)注释的数据中心实体的节点。修改计划可以包括以基于增量元数据表示中规定的启动依赖性确定的顺序来启动数据中心实体的指令。如果修改计划包括删除或停用数据中心实体的指令,则修改计划规定一个顺序,该顺序中依赖于该数据中心实体的其它数据中心实体按照基于依赖图确定的顺序被停用。
云平台在本文中也被称为基底。数据中心的声明性规范是与独立于基底的或基底不可知的,而云平台特定数据中心表示是基底特定的。如果使用传统技术创建数据中心,则用户必须提供用于创建每个数据中心实体的云平台特定指令。因此,用户需要知道如何为云平台创建每个数据中心实体。此外,指令是云平台特定的,并且在跨多个平台时是不可携带的。例如,用于在AWS云平台上创建数据中心或数据中心实体的指令不同于用于在GCP云平台上创建相同数据中心或数据中心实体的指令。在每个云平台上创建数据中心的开发者必须理解如何在该特定云平台上实现每个数据中心实体和特征的细节。所公开的系统提供云平台基础设施语言,其允许用户描述他们想要在从多个云平台中选择的任何云平台中创建的数据中心。云平台基础设施语言的编译器生成数据中心的云平台特定详细元数据表示,并在目标云平台上创建数据中心。
云平台基础设施语言可以被称为用于创建数据中心的领域特定语言(DSL)。该系统可以表示多租户系统,但不限于多租户系统,并且可以是任何在线系统或具有对云平台的网络访问的任何计算系统。
全系统环境
图1是示出根据实施例的在云平台上配置的数据中心的多租户系统的系统环境的框图。系统环境100包括多租户系统110、一个或多个云平台120以及一个或多个客户端设备105。在其它实施例中,系统环境100可包括更多或更少的组件。
多租户系统110存储一个或多个租户115的信息。每个租户可以与代表多租户系统110的客户的企业相关联。每个租户可以具有经由客户端设备105与多租户系统交互的多个用户。利用多租户系统110,多个租户的数据可以存储在相同的物理数据库中。然而,数据库被配置成使得一个租户的数据与其它租户的数据保持逻辑上分离,使得一个租户不能访问另一个租户的数据,除非这样的数据被明确地共享。对于租户来说,他们的数据可以存储在与其他客户的数据共享的表中是透明的。数据库表可以存储多个租户的行。因此,在多租户系统中,系统的硬件和软件的各种元件可以由一个或多个租户共享。例如,多租户系统110可以执行同时处理多个租户的请求的应用服务器。然而,多租户系统强制实施租户级数据隔离以确保一个租户的工作不访问其它租户的数据。
云平台也可称为云计算平台或公共云环境。租户可以使用云平台基础设施语言来提供在目标云平台120上创建的数据中心的声明性规范。租户115可以在云平台120上创建一个或多个数据中心。数据中心表示可由用户(例如,与租户相关联的用户)使用的一组计算资源,包括服务器、应用、存储、存储器等。
数据中心的计算资源是安全的,并且不能被未被授权访问它们的用户访问。例如,针对租户115a的用户创建的数据中心125a可以不被租户115b的用户访问,除非清楚地准许访问。类似地,针对租户115b的用户创建的数据中心125b可以不被租户115a的用户访问,除非清楚地准许访问。此外,只有当根据数据中心的声明性规范由计算系统准许访问时,数据中心外部的计算系统才可以访问由数据中心提供的服务。
云平台的示例包括AWS(亚马逊网络服务)、GOOGLE云平台或MICROSOFT AZURE。云平台120提供可由租户115或云平台120外部的任何计算系统按需使用的计算基础设施服务。由云平台提供的计算基础设施服务的示例包括服务器、存储、数据库、联网、安全、负载平衡、软件、分析、智能和其它基础设施服务功能。租户115可以使用这些基础设施服务来以可扩展和安全的方式来构建、部署和管理应用。
多租户系统110可以包括存储多租户存储的各个租户的数据的租户数据存储。租户数据存储可以将不同租户的数据存储在单独的物理结构中,例如单独的数据库表或单独的数据库。或者,租户数据存储可以在共享结构中存储多个租户的数据。例如,所有租户的用户帐户可以共享相同的数据库表。然而,多租户系统存储附加信息以逻辑地分离不同租户的数据。
图1中所示的每个组件代表一个或多个计算设备。计算设备可以是执行例如MicrosoftTMWindowsTM-兼容操作系统(OS)、AppleTMOS X和/或Linux分布的常规计算机系统。计算设备也可以是具有计算机功能的客户端设备,诸如个人数字助理(PDA)、移动电话、视频游戏系统等。每个计算设备存储用于存储指令的软件模块。
系统环境100的各个组件之间的交互通常经由网络(图1中未示出)来执行。在一个实施例中,网络使用标准通信技术和/或协议。在另一个实施例中,实体可以使用定制和/或专门的数据通信技术来代替或附加于上述技术。
虽然这里公开的技术是在多租户系统的背景中描述的,但是该技术可以使用可能不是多租户系统的其他系统来实现。例如,由单个组织或企业使用的在线系统可以使用本文公开的技术来在一个或多个云平台120上创建一个或多个数据中心。
系统架构
图2是示出根据实施例的数据中心生成模块的系统架构的框图。数据中心生成模块210包括版本控制系统220、编译模块230和部署模块240。其他实施例可以具有与这里描述的不同的和/或其他组件,并且功能可以以不同的方式分布在组件之间。
版本控制系统220存储数据中心的独立于平台的声明性规范225的一个或多个版本。数据中心的独立于平台的声明性规范225规定数据中心的各种实体,包括数据中心中可用的服务及其交互。例如,专业用户可以使用在客户端设备105上执行的应用来修改独立于平台的声明性规范。对独立于平台的声明性规范的修改可以经由版本控制系统220的提交请求来呈递。版本控制系统220允许用户在各种修改阶段创建独立于平台的声明性规范的简要说明,从而允许用户回滚某些改变并应用独立于平台的声明性规范的先前版本。
编译模块230接收独立于平台的声明性规范225和目标云平台作为输入,并为目标云平台生成云平台特定元数据表示235。编译模块230的架构和由编译模块230执行的过程在此例如在图3的描述中进一步详细描述。部署模块240在目标云平台上部署生成的云平台特定元数据表示235,以根据声明性规范225在目标云平台上创建数据中心。
图3是示出根据一个实施例的编译模块的架构的框图。编译模块230包括规范解析模块310、安全模块320、用户账户处理模块330、元数据存储340和供应模块350。其它实施例可包括比图3中所示的更多、更少或不同的模块。
规范解析模块310解析由编译模块230接收的作为输入的数据中心的声明性规范225。规范解析模块310标识在数据中心的声明性规范225内表示的单个数据中心实体。规范解析模块310生成数据中心实体的数据结构和元数据表示,并将生成的数据结构和元数据表示提供给编译模块230的其它模块以供进一步处理。
安全模块320处理在数据中心的声明性规范225中规定的各种数据中心实体的安全方面问题。安全模块320确保各种数据中心实体内的交互,例如,数据中心实体与生成的符合数据中心的声明性规范225内规定的安全策略的数据中心外部的系统的交互。安全策略可规定哪些数据中心实体可由外部系统访问,哪些外部系统可由特定数据中心实体访问,一个服务是否可与另一服务交互,服务组是否可与另一服务组交互,服务是否可访问云平台所支持的特定功能或API(应用编程接口)等。可以使用IP地址或域名来识别外部系统。
用户账户处理模块330在正在创建数据中心的云平台中创建用户账户。这些用户帐户用于各种目的,例如用于调试,模拟数据中心,用于与团队成员交互等。
元数据存储器340存储由编译模块230生成的数据中心的各种变换的元数据表示。如果在数据中心的当前版本中遇到问题,则变换的元数据表示可用于执行回滚到先前版本。变换后的元数据表示可以在变换过程的各个阶段用于验证、审计、管治等。
供应模块350创建用于在目标云系统上供应资源的指令,并执行它们以部署数据中心。在一个实施例中,供应系统创建用于在云平台上执行的流水线。流水线包括多个阶段,这些阶段包括用于在根据描述数据中心的声明性规范的云平台上供应服务或部署用于创建各种服务的应用的指令。
图4示出了根据一个实施例的数据中心的声明性规范的示例。声明性规范410包括多个数据中心实体。数据中心实体是数据中心实体类型的实例,并且可以存在每个数据中心实体类型的多个实例。数据中心实体的示例包括数据中心、服务组、服务、团队、环境和模式。
声明性规范410包括各种类型的数据中心实体的定义,包括服务组、服务、团队、环境和模式。声明性规范包括数据中心的一个或多个实例。以下是各种类型的数据中心实体的描述及其示例。这些示例是说明性的,并且示出了数据中心实体的一些属性。其他实施例可以包括不同的属性,并且具有相同功能的属性可以被给予与这里所指示的不同的名称。在一个实施例中,使用符合预定义模式的分层对象(例如,JSON(Javascript对象符号))进行规定声明性规范。
根据一个实施例,服务组420表示由可以独立构建和递送的一个或多个计算系统提供的一组能力和特征以及服务。服务组还可以被称为逻辑服务组、功能单元或有界背景。服务组420还可以由一个或多个计算系统提供的一组内聚技术用例功能的一组服务。服务组420实施安全边界。服务组420定义了修改的范围。因此,对实体的任何修改,诸如由服务组420内的一个或多个计算系统提供的能力、特征或服务,可以根据需要或适当地传播到服务组内的实体,但不传播到驻留在服务组420的有界定义之外的实体。数据中心可以包括多个服务组420。服务组定义规定的属性包括名称、描述、标识符、模式版本和一组服务实例。服务组的示例是包括用于提供区块链功能的一组服务的区块链服务组。类似地,安全服务组提供安全特征。用户界面服务组提供特定用户界面特征的功能。共享文档服务组提供跨用户共享文档的功能。类似地,可以有几个其它服务组。
服务组支持规范的可重用性,使得对开发数据中心感兴趣的租户或用户具有他们可以容易地使用的服务组库。服务组的服务周围的边界基于安全和网络等考虑。服务组与用于执行与服务组交互的协议相关联。在一个实施例中,服务组提供APIs(应用编程接口)和实现这些APIs的服务的集合。此外,服务组独立于基底。服务组为服务组内的服务提供爆炸半径范围,使得服务组内的服务的任何故障具有限于服务组内的服务的影响并且具有服务组外的最小影响。
以下是服务组规范的示例。服务组规定表示服务组的元数据的各种属性,并包括服务组内的一组服务。可以有为服务组规定的其它类型的元数据,这里没有指示。
如上面的示例所示,服务组可以规定一组集群。集群表示一组计算节点,例如一组服务器、一组虚拟机或一组容器(例如KUBERNETES容器)。物理服务器可以运行多个容器,其中每个容器具有其自己的文件系统、CPU、存储器、处理空间等的份额。
服务组规定一组服务。服务组可以为服务规定集群,使得部署在云平台上的数据中心运行计算节点的集群,并且如果包括在声明性规范中,则基于规定的映射将服务映射到集群。例如,在以上所示的服务组示例中,服务实例0002被规定为在集群实例集群1上运行。
服务组可以规定安全组,每个安全组规定允许彼此交互的一组服务。安全组之外的服务需要通过附加认证来与安全组内的服务通信。或者,安全组内的服务使用一个协议来彼此交互,而安全组外的服务使用不同的协议,该协议需要增强认证来与安全组内的服务交互。因此,安全组规定确定服务如何彼此交互的策略。安全策略可以规定安全策略适用的一个或多个环境。例如,安全策略策略1可应用于特定环境env1(例如,生产环境),而另一安全策略策略可应用于另一环境env2(例如,开发环境)。可以为服务组类型或特定服务类型规定安全策略。
在一个实施例中,安全策略规定用于基于各种属性过滤服务组的表达式,使得安全策略可应用于过滤后的一组服务组。例如,安全策略可以为由过滤后的组标识的一组服务组规定白名单的IP(因特网协议)地址列表,并且因此允许这些计算系统访问该服务组或该服务组内的特定服务组。
在一个实施例中,安全策略可以为服务组、一组源服务和一组目的地服务规定。特定服务的源服务规定允许与该特定服务连接的安全组之外的服务。特定服务的目的地服务规定该特定服务需要连接到的安全组之外的服务。在供应和部署期间,数据中心生成模块生成用于云平台的指令,所述指令使用云平台特定特征和网络功能来实现特定网络策略,使得网络策略实现在声明性规范中规定的安全策略。
称为单元格的数据中心实体表示以垂直方式彼此交互的一组服务,并且可以通过单元格的附加实例或副本(即,该组服务的副本)来缩放。创建单元格的多个实例允许系统缩放彼此交互的一组服务。数据中心实例可以包括一个或多个单元格。每个单元格可以包括一个或多个服务。数据中心可以包括服务组的实例或单元格的实例。
服务定义规定用于服务类型(例如,数据库服务、负载平衡器服务等)的元数据。元数据描述服务的各种属性,包括服务的名称、服务的描述、服务的文档位置、与服务相关联的任何子服务、服务的所有者、与服务相关联的团队、服务的构建依赖性、规定该服务在构建时间所依赖的其他服务、服务的启动依赖性、规定当启动该特定服务时应当运行的其他服务、授权客户端、与服务相关联的DNS(域名服务器)名称、服务状态、服务的支持级别等等。服务定义规定监听端口属性,该监听端口属性规定服务可以监听不同通信协议的端口,例如,服务可以监听UDP协议的端口P1和TCP协议的端口p2。数据中心内的其它服务可以经由服务规定的端口与服务交互。
服务定义规定属性出站访问,该属性出站访问规定目的地端点,例如,规定服务需要访问规定的外部URL的外部URL(统一资源定位符)。在部署期间,数据中心生成模块确保云平台实现访问策略,使得该服务类型的实例被提供有对外部URL的请求访问。
出站访问规范可标识出站访问适用的服务的一个或多个环境类型。例如,一组端点S1的出站访问可应用于特定环境env1(例如,生产环境),而一组端点S2的出站访问可应用于另一环境env2(例如,开发环境)。
以下是服务定义的示例。
团队定义450包括团队成员姓名和团队的其它属性,例如姓名、电子邮件、通信信道等。以下是团队定义的示例。服务可以与负责对该服务进行修改的一个或多个团队相关联。因此,团队批准对该服务进行的任何修改。在服务部署在云平台中之后,服务可以与负责维护服务的团队相关联。团队可以与服务组相关联,并且相应地与该服务组的所有服务相关联。例如,团队批准对服务组的任何改变,例如作为服务组一部分的服务。团队可以与数据中心相关联,并且因此与数据中心内的所有服务组相关联。在数据中心级规定的团队关联为数据中心内的所有服务组提供默认团队,并进一步为服务组内的所有服务提供默认团队。
根据一个实施例,在功能级上规定的团队关联覆盖在数据中心级上提供的团队关联。类似地,在服务级上规定的团队关联覆盖可能由已经在服务组级上或数据中心级上规定的团队关联提供的默认值。团队可以决定如何对与该团队相关联的数据中心实体采取某些动作。团队关联还确定云平台上的创建的帐户的数量,账户用于由编译器生成云平台的数据中心的最终元数据表示,以及用于在云平台上供应和部署数据中心。数据中心生成模块210在云平台中创建一个或多个用户账户,并向团队成员提供对用户账户的访问。因此,允许团队成员执行与同团队相关联的数据中心实体相关联的特定动作,例如,当部署数据中心实体时,制定或批准对数据中心实体的结构改变或对数据中心实体的维护,包括可以为数据中心实体标识的调试和测试问题。
如Conwoy定律所述,常规技术在整个设计过程中使同一团队与数据中心相关联,从而导致组织结构对数据中心或服务组的设计具有影响。Conwoy定律规定,设计系统的组织被限制生产设计,这些设计是这些组织的通信结构的副本。实施例将团队定义从定义数据中心实体的结构中分离出来,从而减少团队对数据中心实体的设计和架构的影响。
环境定义460规定由数据中心表示的系统环境的类型,例如,开发环境、分段环境、测试环境或生产环境。模式定义470规定特定数据中心实体定义的特定语法的模式。模式定义470用于验证各种数据中心实体定义。数据中心生成模块基于环境确定云平台特定元数据表示235中的数据中心的安全策略。例如,一组特定的安全策略可适用于环境env1,而另一组不同的安全策略可适用于环境env2。例如,与开发环境相比,安全策略在生产环境中提供更多受限的访问。安全策略可以规定允许安全令牌存在用于特定目的的时间长度。例如,在开发环境中可以允许长访问令牌(例如,一周长的访问令牌),但在生产环境中使用寿命小得多(例如,几个小时)的访问令牌。访问令牌可以允许用户或服务访问特定的云平台资源。
数据中心定义420规定数据中心实例的属性和组件。声明性规范可以规定多个数据中心实例。数据中心定义420规定的属性包括名称、描述、环境类型、一组服务组、团队、数据中心的域名服务器等。数据中心定义可以规定模式定义,并且从数据中心定义生成的任何元数据表示根据规定的模式定义被验证。数据中心包括一组核心服务和使其它服务能够在数据中心内运转的能力。数据中心的实例部署在特定云平台中,并且可以与特定环境类型(例如,开发、测试、分段、生产等)相关联。
以下是数据中心实例的定义。数据中心实例定义包括包含在数据中心实例中的服务组的列表以及包括数据中心环境、数据中心标识符、名称、表示地理区域的区域、与数据中心相关联的一个或多个团队以及模式版本的其它属性。
/>
图5示出了根据一个实施例的基于声明性规范在云平台上创建的一些示例数据中心。数据中心510基于由数据中心生成模块210处理的声明性规范而创建数据中心510。如图5所示,可以在云平台120内配置多个数据中心。每个数据中心510可以对应于多租户系统110的一个租户115。租户115可以创建一个或多个数据中心510。或者,数据中心510可由任何计算系统创建。每个数据中心包括一个或多个服务组。例如,数据中心510a包括服务组520a和520b,数据中心510b包括服务组520c。数据中心可以包括特定类型的服务组的多个实例。每个服务组包括一组服务。例如,服务组520a包括服务530a和服务530b,服务组520b包括服务530a、服务530b和服务530c,服务组520c包括服务530e、服务530f和服务530g。服务组可以包括相同服务类型的多个服务实例。
全过程
图7是示出根据一个实施例的用于基于声明性规范在云平台上创建数据中心的过程的流程图。其他实施例可以以不同的顺序执行图7的步骤。而且,其它实施例可以包括与这里描述的步骤不同和/或附加的步骤。
数据中心生成模块210接收(方框610)数据中心的独立于云平台的声明性规范。独立于云平台的声明性规范可以用于多租户系统的租户或用于任何其它计算系统,例如在线系统。使用所述云平台基础设施语言进行规定所述独立于云平台的声明性规范。数据中心的独立于云平台的声明性规范被配置成在多个云平台中的任何一个上生成数据中心。
数据中心生成模块210接收(方框620)标识用于基于独立于云平台的声明性规范而创建数据中心的目标云平台的信息。目标云平台可以是多个云平台中的任何一个,例如AWS、AZURE、GCP等。数据中心生成模块210还接收与目标云平台连接的信息,例如用于创建与目标云平台的连接的凭证。云平台也可称为云计算平台。
数据中心生成模块210编译(方框630)独立于云平台的声明性规范以生成用于在目标云计算平台上创建数据中心的云平台特定数据中心表示。例如,云平台特定数据中心表示可以指目标云计算平台特定的用户账户、网络地址等。
数据中心生成模块210将平台特定数据中心表示连同用于在目标云计算平台上部署数据中心的指令一起发送(方框640)。目标云计算平台执行指令以配置(方框650)目标云计算平台的计算资源以根据平台特定数据中心表示生成数据中心。数据中心生成模块210向用户提供(方框660)对由云计算平台配置的数据中心的计算资源的访问。例如,如果为多租户系统的租户创建数据中心,则向与租户相关联的用户提供对数据中心的访问。
图7是示出根据一个实施例的基于声明性规范在云平台上生成数据中心的框图。数据中心生成模块210接收独立于云平台的声明性规范710(在图2中表示为声明性规范225)作为输入。独立于云平台的声明性规范710可以是由用户递增地修改的声明性规范的版本。数据中心生成模块210处理独立于云平台的声明性规范710的特定版本。由于独立于云平台的声明性规范710未被规定用于任何特定目标云平台,因此数据中心生成模块210可基于独立于云平台的声明性规范710在任何目标云平台上配置数据中心。
数据中心生成模块210处理独立于云平台的声明性规范710,以生成数据中心的独立于云平台的详细元数据表示720。独立于云平台的详细元数据表示720定义在独立于云平台的声明性规范710中规定的数据中心实体的每个实例的细节。数据中心生成模块210为数据中心实体实例(例如,服务实例)创建唯一标识符。
在一个实施例中,独立于云平台的详细元数据表示720包括数据中心实体类型的实例的数组,例如,特定服务组类型的服务组实例的数组。每个服务组实例包括服务实例的数组。服务实例还可以包括被允许执行与该服务实例相关联的某些动作的一队用户的细节。在供应和部署期间,由数据中心生成模块210使用该团队的细节,例如,用于创建服务实例的用户帐户并允许该团队成员访问用户帐户。
云平台无关的详细元数据表示720包括数据中心实体的每个实例的属性。因此,数据中心实体的每个实例的描述被扩展以包括所有细节。因此,数据中心的独立于云平台的详细元数据表示720可以显著大于独立于云平台的声明性规范710。例如,独立于云平台的声明性规范710可以是几千行的规范,而独立于云平台的详细数据中心表示320可以是几百万行的生成代码。因此,数据中心生成模块210将独立于云平台的详细元数据表示720保持为不可变的,即,一旦该表示被最终确定,则不对该表示执行修改。例如,如果需要执行数据中心实体的任何更新、删除或添加,则在独立于云平台的声明性规范710上执行它们。
数据中心生成模块210接收预期在其上供应和部署数据中心的目标云平台,并生成数据中心的云平台特定详细元数据表示730。例如,数据中心生成模块210与目标云平台交互以生成某些实体(或资源),例如用户账户、虚拟专用云(VPC),以及诸如VPC上的子网、云平台中的实体之间的各种连接等网络资源。数据中心生成模块210接收在目标云平台中创建的资源的资源标识符,例如用户帐号名、VPC身份等,并将这些合并到独立于云平台的详细元数据表示720中以获得数据中心的云平台特定的元数据表示730。在一个实施例中,数据中心生成模块210在云平台上为服务组和服务的给定组合的每个团队创建一个唯一的用户账户。用户帐户由团队用于执行与该服务组的特定服务的交互,例如用于调试,用于接收警报等。
数据中心生成模块210将云平台特定元数据表示730部署在为其生成表示的特定目标云平台上。数据中心生成模块210可以使用所生成的元数据表示来执行各种验证,包括策略验证、格式验证等。
独立于云平台的声明性规范710可以被称为声明的数据中心表示,独立于云平台的详细元数据表示720被称为数据中心的导出元数据表示,而云平台特定的元数据表示730被称为数据中心的水合元数据表示。
在云平台上部署数据中心
目标云平台处理云平台特定详细元数据表示730以创建(或配置)数据中心。数据中心生成模块210生成用于在目标云平台上部署云平台特定详细元数据表示730的指令。指令可以被表示为包括阶段的流水线,其中每个阶段执行与数据中心的部署相关的某些操作,例如,流水线可以表示诸如SPINNAKER的连续递送平台的指令。
目标云平台可以执行若干步骤来处理云平台特定详细元数据表示730。例如,独立于云平台的声明性规范可以规定服务之间被允许的交互。这些被允许的交互在云平台特定详细元数据表示730中被规定,并作为云平台的网络策略来实现。云平台还可以创建安全组以实现网络策略,从而根据声明性规范来实现数据中心。
独立于云平台的声明性规范规定服务之间的依赖性,例如,列出当启动特定服务时应当运行的所有服务的每个服务的启动依赖性。编译模块230生成数据中心的云平台特定详细元数据表示,其包括描述这些依赖性的信息,使得用于部署服务的指令确保云平台以由依赖性规定的顺序启动服务,使得对于每个服务,当服务被启动时,在服务运行之前需要启动多个服务。因此,服务之间的依赖关系表示依赖关系图,并且云平台以基于依赖关系图确定的顺序启动运行服务,使得如果服务A依赖于服务B,则在服务A启动之前启动服务B。
数据中心生成模块230创建允许服务经由安全通信信道访问其它服务的用户帐户之间的信任关系。这些信任关系使用基于声明性规范(例如,基于为服务规定的出站访问属性)生成的基底特定指令来生成。数据中心生成模块230向云平台发送指令,以基于控制跨服务组和服务的交互和访问的云平台特定机制来创建网络策略,例如,如由诸如出站访问、安全组、安全策略等的声明性规范的构造所规定的。
数据中心生成模块230生成指令,例如,用于部署服务的流水线,其规定确定服务在部署中启动的顺序的阶段。
图8是示出根据一个实施例的用于在云平台上部署数据中心的过程的流程图。数据中心生成模块210访问(方框810)数据中心的云平台特定详细元数据表示730。云平台特定详细元数据表示730是从独立于云平台的声明性规范710生成的,例如,如图7所示。
数据中心生成模块210为数据中心的数据中心实体配置(方框820)主流水线。主流水线包括多个流水线,例如,用于供应目标云平台的资源的供应流水线和用于使用供应的资源部署数据中心实体的部署流水线。每个流水线包括一系列阶段,每个阶段表示需要目标云平台针对数据中心的供应和部署执行的一个或多个动作。数据中心生成模块210生成(方框830)详细流水线,用于生成由云平台特定详细元数据表示730规定的特定服务。
在一个实施例中,详细流水线从包括变量的流水线模板生成。通过在流水线中提供变量的特定值,将流水线模板转换为流水线。从模板产生流水线的过程被称为流水线模板的水合。流水线模板包含用作部署中实际值的占位符使用的模板表达式。例如,模板表达式可以由目标特定参数值或表达式代替。多个流水线实例可以通过水合用于不同目标的流水线模板来生成。模板变量表示可用给定目标的特定值替换的参数,以生成该目标特定的流水线实例。例如,在水合期间,模板变量“帐户_id”可以用帐户_id的实际值(例如“12345”)代替。
模板水合模块可以访问数据源,例如配置文件或数据库,以识别在模板化表达式中使用的参数的实际值。例如,模板变量可以表示集群的一组计算系统。数据中心生成模块230在目标云平台上执行(方框840)所生成的流水线。例如,供应流水线可以首先被执行以在云平台上供应资源,然后执行部署流水线以在所供应的资源上部署应用,用于在目标计算平台上创建数据中心。
根据一个实施例的用于产生流水线的过程如下。数据中心生成模块210基于数据中心的数据中心实体的分层结构以分层方式生成流水线。例如,数据中心包括不同类型的数据中心实体,包括数据中心、服务组、服务等。数据中心实体可以包括一个或多个子数据中心实体。例如,数据中心包括作为子数据中心实体的一个或多个服务组。服务组包括作为子数据中心实体的一个或多个服务。因此,数据中心生成模块210在分层结构的层级处的数据中心实体处启动,并在该层级之下生成的数据中心实体的流水线。例如,数据中心生成模块210在数据中心处启动,并且为数据中心内的服务组生成流水线。对于每一服务组,数据中心产生模块210产生用于服务组内的服务的流水线。
具有一组子数据中心实体的输入数据中心实体的流水线的生成如下。数据中心生成模块210为输入数据中心实体标识一组子数据中心实体。数据中心生成模块210为该组子数据中心实体生成依赖图。例如,如果子数据中心实体表示服务,则数据中心生成模块210标识从独立于云平台的声明性规范710获得的云平台特定详细元数据表示730中规定的依赖关系。数据中心生成模块210分析依赖图,例如,以检查依赖图中的循环。如果数据中心生成模块210识别依赖图中的循环,则数据中心生成模块210报告错误。如果依赖图中没有循环,则数据中心生成模块210通过执行依赖图的拓扑分类来进一步处理依赖图。数据中心生成模块210基于拓扑分类来确定子数据中心实体的顺序。数据中心生成模块210基于依赖图的分类次序来排序子数据中心实体。数据中心生成模块210在流水线中为按照为子数据中心实体确定的顺序排列的每个子数据中心实体创建阶段。该阶段可以用于在生成供应流水线时为子数据中心实体供应资源,或者该阶段可以用于在生成部署流水线时部署子数据中心实体。
根据一个实施例执行流水线的过程如下。数据中心生成模块210接收在目标云平台中部署数据中心的请求。数据中心生成模块210为数据中心的每个服务组执行聚合流水线。聚合流水线包括用于服务组内的服务的流水线。对于每个服务组内的每个服务,通过执行流水线的所有阶段来执行流水线。供应流水线的执行导致用于服务的资源的供应,并且部署流水线引起服务在目标云平台中的部署。
云平台上部署的数据中心的修改
各实施例在最少的停机时间内执行对部署在云平台中的数据中心的修改。可以对任何数据中心实体执行对数据中心的修改,例如,可以修改服务组,可以修改服务,可以修改团队等。数据中心的修改可以包括添加新服务、停用现有服务、修改现有服务的配置等。
对部署在云平台中的现有数据中心的修改可出于若干原因而执行。例如,多租户系统的租户可以递增地构建数据中心。最初部署的数据中心可以是小的,并具有最小集的服务组和服务。一旦数据中心是可操作的并且被使用一段时间,则可以通过添加服务组或服务来增强数据中心。该过程可以随时间继续,以迭代地构建数据中心。
由于使用数据中心的企业或租户的需求的改变,可以执行对现有数据中心的修改。例如,租户可以引入需要安装新服务的新功能。负载可能有季节性或永久性变化。由于云平台的使用允许所使用的资源的弹性,租户或企业可以基于负载变化,通过增加或减少所使用的云计算资源来修改数据中心。
由于租户或企业的策略的改变,可以执行对现有数据中心的修改。例如,租户可以决定增强安全并由此引入新的安全策略。租户可以改变网络策略以限制或修改对各种服务的访问。租户可以基于安全考虑或基于组织策略改变来限制或修改对特定服务的出站访问。租户可以修改负责各种数据中心实体的团队以响应组织变化。租户可能需要基于对服务使用的监视来添加或停用服务。例如,如果服务的使用被确定为在超过阈值时间段内低于阈值,则租户可以决定停用该服务或修改该服务的配置以考虑负载的变化。
因此,可能存在修改当前部署在云平台中的数据中心的若干原因。实施例允许对部署在云平台中的现有数据中心的这种动态修改,同时最小化对当前运行的服务的中断。
图9是示出根据实施例的数据中心修改模块的系统架构的框图。数据中心修改模块900包括元数据差异模块910、修改计划生成模块920和CRUD操作模块930。其他实施例可以具有更多或更少的模块,并且被指示为由一个模块执行的功能可以由除了在此指示的那些模块之外的其他模块来执行。
元数据差异模块910确定数据中心的两个元数据表示之间的差异。在一个实施例中,元数据差异模块910接收当前部署在云平台上的数据中心的元数据表示和计划要部署的经修改的数据中心的元数据表示,并且生成表示这两个元数据表示之间的差异的增量元数据表示。元数据差异模块910将增量元数据表示提供给修改计划生成模块,以生成用于将当前部署在云平台中的数据中心修改为计划的数据中心的修改计划。在一个实施例中,输入元数据表示是云平台特定详细元数据表示730,但也可以是独立于云平台的详细元数据表示720或独立于云平台的声明性规范710。在一个实施例中,元数据差异模块910以自上向下的分层方式同时遍历两个元数据表示,并比较元数据表示的节点,以确定在每个层级处是否存在可用的匹配节点。如果元数据差异模块910确定元数据表示的节点不匹配,则元数据差异模块910将节点添加到表示差异的增量元数据表示。如果在特定级别的节点N1中存在差异,则元数据差异模块910在所生成的增量元数据表示中添加从根节点延伸到节点N1的完整分支。元数据差异模块910还用表征差异的信息来标记或注释增量元数据表示的节点。增量元数据表示中的节点可以被标记为未改变的、新增的、修改的或删除的。
CRUD操作模块930包括用于对数据中心执行特定修改的指令。由CRUD操作模块930支持的操作是创建操作、读取操作、更新操作和删除操作。创建操作在数据中心中创建数据中心实体。读操作返回数据中心或数据中心的一部分的表示。更新操作依据数据中心修改现有的数据中心实体。删除操作删除或停用数据中心实体。
修改计划生成模块920接收表示当前部署在云平台中的数据中心的元数据表示与计划的数据中心配置的元数据表示之间的差异的数据中心的增量元数据表示,并生成用于将当前部署在云平台中的数据中心修改为计划的数据中心配置的修改计划。在一个实施例中,修改计划生成模块920使用节点的注释来确定添加到修改计划的指令。因此,修改计划生成模块920生成(1)如果增量元数据表示中的节点被标记为新增的则添加数据中心实体的指令,(2)如果增量元数据表示中的节点被标记为已删除则删除数据中心实体的指令,以及(3)如果增量元数据表示中的节点被标记为更新则更新数据中心实体的指令。修改计划生成模块920生成尽可能最小化服务中断的计划。例如,如果更新数据中心实体D1不影响数据中心实体D2,则修改计划保持数据中心实体未被修改并且在数据中心实体D1被修改时运行。
图10A-10C示出了根据一个实施例的对数据中心所请求的增量元数据表示的变化的确定。图10A示出了当前可以部署在云平台中的数据中心的元数据表示1010a。如图10A所示,数据中心DC,包括两个服务组SG1和SG2;服务组SG1包括两个单元格CELL1和CELL2;CELL1包括服务SVCA,...,SVCZ以及CELL2包括服务SVCB;服务组SG2包括两个服务SVCA和SVCB。
图10B包括数据中心DC的修改的元数据表示1010b。例如,用户可通过修改对应于图10A的元数据表示的声明性规范的先前版本来构建修改的声明性规范。修改的元数据表示1010b除了元数据表示1010a的节点之外还包括以下节点:单元格CELL2中SVCF的节点;以及包括单元格CELL1和服务SVCE的新服务组SG3。
图10C示出了表示元数据表示1010a和1010b之间的差异的增量元数据表示1010c。所述增量元数据表示1010c包括具有所述节点DC下所属的服务组SG1和SG3的节点DC;节点SG1下的节点CELL2和节点SVCF下的节点CELL2;节点DC下的节点SG3、节点SG3下的节点CELL1,以及节点CELL1下的节点SVCE。如果诸如与1010a相比在1010b中不同的SVCF的节点的节点N1出现在较低层,例如叶层,则增量元数据表示1010c包括包含从根节点DC启动的节点N1的整个分支。因此,节点SVCF上方的节点DC、SG1和CELL2被包括,尽管它们在元数据表示1010a和1010b中没有区别。此外,增量元数据表示1010c包括在节点DC下的包括SG3、CELL1和SVCE的分支。
元数据差异模块910可通过同时执行元数据表示1010a和1010b的自上向下遍历来获得增量元数据表示1010c。对于在两个元数据表示1010a和1010b中匹配的每个节点,元数据差异模块910比较相应的子节点。如果在节点的子节点中存在差异,则元数据差异模块910确定该差异并将相应的节点添加到增量元数据表示1010c。
例如,元数据差异模块910注意到,元数据表示1010a和1010b在根节点处是相同的,因为两者都具有单个节点DC。元数据表示模块910在元数据表示1010a和1010b中检查根节点的子节点。元数据表示1010b包括根节点DC下的三个节点SG1、SG2和SG3,而元数据表示1010a包括根节点DC下的两个节点SG1和SG2。因此,在根节点下的子节点中存在不同。元数据差异模块910将差异确定为节点SG3,并因此将节点SG3添加到增量元数据表示1010c中的节点DC之下。
下面是当具有服务组SG1和SG2的数据中心被修改以添加新的服务组SG3时的增量元数据表示1010c的一部分的示例。
以下是当具有三个服务SVCA、SVCB和SVCC的服务组SG1的数据中心被修改为使得服务组SG1具有四个服务SVCA、SVCB、SVCC和SVCD时,增量元数据表示1010c的一部分的示例。增量元数据表示1010c包括添加的新服务SVCD的节点和与服务SVCD相关的任何其它元数据,例如服务SVCD的团队的元数据。
/>
图11是示出根据一个实施例的用于修改部署在云平台上的数据中心的过程的流程图。数据中心修改模块900接收(方框1110)数据中心的修改的元数据表示,例如,先前创建的数据中心的独立于云平台声明性规范的修改版本。编译模块编译(方框1120)独立于云平台声明性规范以生成云平台特定详细数据中心表示。数据中心修改模块900访问(方框1130)云平台中当前部署的数据中心的云平台特定详细数据中心表示。
数据中心修改模块900将增量元数据表示确定(方框1140)为两个云平台特定详细数据中心表示之间的差异。在一个实施例中,数据中心的元数据表示作为例如被规定为JSON对象的嵌套对象结构被接收。数据中心修改模块900将所接收的结构处理为图形。每个数据中心实体被表示为JSON对象。JSON对象的某些属性表示数据中心实体的元数据属性。一些属性可以表示一组对象,例如对应于JSON对象的子对象的字典表示。元数据差异模块910通过比较表示数据中心实体的每个嵌套对象的元数据属性并对每个子对象递归地执行差异化过程来确定增量元数据。
数据中心修改模块900生成(方框1150)用于根据增量元数据表示来修改数据中心的指令。如果增量元数据表示1010c包括被标记为新增的数据中心实体的节点,则数据中心修改模块900生成用于创建新增的数据中心实体的指令。如果增量元数据表示包括被标记为删除的数据中心实体的节点,则数据中心修改模块900生成用于删除现有数据中心实体的指令。如果增量元数据表示包括被标记为更新的数据中心实体的节点,则数据中心修改模块900生成更新现有数据中心实体的指令。在一个实施例中,指令包括用于在云平台上执行的流水线。
数据中心修改模块900发送所生成的指令以在云平台中执行。所述指令使得数据中心被修改为对应于独立于云平台的声明性规范的修改版本。数据中心修改模块900向用户提供对作为修改的结果添加到数据中心的任何新服务的访问。
尽管图11所示的过程确定了数据中心的两个特定于云平台的详细数据中心表示之间的差异,但是该过程可以通过确定数据中心的任何其他元数据表示之间的差异来执行,例如,数据中心的独立于云平台的详细数据中心的表示。
如果增量元数据表示包括被标记为更新的数据中心实体的节点,则数据中心修改模块900确定对数据中心实体执行的改变,并相应地生成指令。例如,如果更新操作修改了服务的安全策略,则数据中心修改模块900生成用于修改安全策略的适当指令。如果更新操作修改了服务的网络策略,则数据中心修改模块900生成用于修改网络策略的适当指令。
如果增量元数据表示包括两个服务SVCA和SVCB之间的新关系,则数据中心修改模块900生成用于修改安全组定义以允许SVCA和SVCB之间的交互并重新应用安全组定义的指令。
如果增量元数据表示规定服务的端口从P1到P2的改变,则数据中心修改模块900生成指令以删除基于端口P1的网络策略和信任关系,因为端口P1不再起作用。数据中心修改模块900基于增量元数据表示中规定的端口P2生成添加网络策略和信任关系的指令。
如果增量元数据表示规定对服务的出站访问从URL1改变为URL2,则数据中心修改模块900生成指令以删除对URL1的访问并添加对服务的URL2的访问。
数据中心修改模块900生成指令,使得数据中心的服务中断在进行更新时被最小化,并且数据中心的安全风险也被最小化。例如,如果修改了任何出站或入站访问,则生成的指令首先移除不需要的访问,然后添加新的访问,从而确保最小化未授权访问的机会。在一个实施例中,数据中心修改模块900分层地遍历数据中心表示以确定需要关闭和重启以执行更新操作的服务的最小数量。如果不需要改变服务来执行更新,则数据中心修改模块900使服务没有任何改变。
数据中心修改模块900分析增量元数据表示中的服务依赖性,以根据需要为数据中心实体执行的操作的类型来确定服务启动或停用的顺序。
在一个实施例中,数据中心实体在声明性规范中规定启动依赖性信息,例如,该数据中心实体所依赖的一组其它数据中心实体。如果数据中心实体E1具有对数据中心实体E2的启动依赖性,则必须在启动数据中心实体E1之前启动数据中心实体E2。数据中心修改模块900分析增量元数据表示中的所有数据中心实体的启动依赖性。数据中心修改模块900基于增量元数据表示的数据中心实体中规定的启动依赖信息来构建依赖图。数据中心修改模块900基于依赖图生成修改计划。在一个实施例中,数据中心修改模块900生成用于以基于依赖图确定的顺序启动数据中心实体的流水线。
如果增量元数据表示包括需要在数据中心中创建的数据中心实体E1,则数据中心修改模块900生成启动数据中心实体的集合S1的修改计划,数据中心实体E1以基于依赖图确定的顺序依赖于该数据中心实体的集合S1,使得集合S1的数据中心在数据中心实体E1之前启动。集合S1中的数据中心实体也以这样的顺序启动,使得如果数据中心实体Ex依赖于数据中心实体Ey,则数据中心实体Ey在数据中心实体Ex之前启动。
如果增量元数据表示包括需要在数据中心中删除或停用的数据中心实体E1,则数据中心修改模块900生成修改计划,该修改计划停用数据中心实体E1以基于依赖图确定的顺序所依赖的数据中心实体的集合S1,使得集合S1的数据中心在数据中心实体E1之后停用。集合S1中的数据中心实体也以这样的顺序停用,使得如果数据中心实体Ex依赖于数据中心实体Ey,则数据中心实体Ey在数据中心实体Ex之后停用。当云平台回收数据中心实体所使用的计算资源时,数据中心实体被停用,例如,以将它们用于其它目的。云平台还移除对数据中心实体的访问。如果数据中心实体是服务,则云平台通过移除对服务的访问来停用服务并停止执行服务的指令的过程。
计算机架构
图12是示出根据一个实施例的用作图1的环境100中示出的实体之一的典型计算机系统的功能视图的高级框图。示出了耦合到芯片组1204的至少一个处理器1202。还耦合到芯片组1204的是存储器1206、存储设备1208、键盘1210、图形适配器1212、定点设备1214和网络适配器1216。显示器1218耦合到图形适配器1212。在一个实施例中,芯片组1204的功能由存储器控制器集线器1220和I/O控制器集线器1222提供。在另一个实施例中,存储器1206直接耦合到处理器1202而不是芯片组1204。
存储设备1208是非瞬态计算机可读存储介质,例如硬盘驱动器、光盘只读存储器(CD-ROM)、DVD或固态存储设备。存储器1206保存由处理器1202使用的指令和数据。定点设备1214可以是鼠标、跟踪球或其它类型的定点设备,并且与键盘1210结合使用以将数据输入到计算机系统200中。图形适配器1212在显示器1218上显示图像和其他信息。网络适配器1216将计算机系统1200耦合到网络。
如本领域中已知的,计算机1200可具有与图12中所示的组件不同的组件和/或其它组件。另外,计算机1200可以缺少某些示出的组件。例如,充当多租户系统110的计算机系统1200可以缺少键盘1210和定点设备1214。此外,存储设备1208可以是本地的和/或远离计算机1200(例如包含在存储区域网络(SAN)中)。
计算机1200适于执行用于提供本文所述功能的计算机模块。如这里所使用的,术语“模块”是指用于提供规定功能的计算机程序指令和其它逻辑。模块可以用硬件、固件和/或软件来实现。模块可以包括一个或多个进程,和/或仅由进程的一部分提供。模块通常存储在存储设备1208上,加载到存储器1206中,并由处理器1202执行。
图1的实体使用的计算机系统1200的类型可以根据实施例和实体使用的处理能力而变化。例如,客户端设备105可以是具有有限处理能力的移动电话、小显示器1218,并且可以缺少定点设备1214。相反,多租户系统110和云平台120可以包括一起工作以提供这里描述的功能的多个刀片服务器。
附加考虑
组件的特定命名、术语的大写、属性、数据结构或任何其他编程或结构方面不是强制性的或重要的,并且实现所描述的实施例的机制可以具有不同的名称、格式或协议。此外,所述系统可以通过所描述的硬件和软件的组合来实现,或者完全在硬件元件中实现。此外,这里描述的各种系统组件之间的功能的特定划分仅仅是示例性的,而不是强制性的;由单个系统组件执行的功能可以替代地由多个组件执行,并且由多个组件执行的功能可以替代地由单个组件执行。
以上描述的某些部分根据对信息的操作的算法和符号表示来呈现特征。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的手段。虽然在功能上或逻辑上描述了这些操作,但是这些操作被理解为由计算机程序来实现。此外,在不丧失一般性的情况下,将这些操作布置称为模块或功能名称有时也被证明是方便的。
除非特别声明,否则如从上述讨论中显而易见的,应当理解,在整个说明书中,利用诸如“处理”或“计算”或“运算”或“确定”或“显示”等类似术语的讨论指的是计算机系统或类似电子计算设备的动作和过程,该计算机系统或类似电子计算设备在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中,对以物理(电子)量表示的数据进行操作和转换。
这里描述的某些实施例包括以算法形式描述的处理步骤和指令。应当注意,实施例的处理步骤和指令可以在软件、固件或硬件中实现,并且当在软件中实现时,可以被下载以驻留在实时网络操作系统所使用的不同平台上并从实时网络操作系统所使用的不同平台进行操作。
所描述的实施例还涉及用于执行这里的操作的装置。装置可以为所需目的而专门构造,或者它可以包括由存储在计算机可读介质上的计算机程序选择性地激活或重新配置的通用计算机,该计算机可读介质可以由计算机访问。这样的计算机程序可以存储在非瞬态计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、CD-ROM、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、专用集成电路(ASIC),或适合于存储电子指令的任何类型的介质,并且每个都耦合到计算机系统总线。此外,说明书中提到的计算机可以包括单个处理器,或者可以是采用多处理器设计以增加计算能力的架构。
这里给出的算法和操作并不固有地涉及任何特定的计算机或其它装置。各种通用系统也可以与根据这里的教导的程序一起使用,或者可以证明构造更专业的装置来执行所需的方法步骤是方便的。对于本领域的技术人员来说,各种这些系统的所需结构以及等效变化将是显而易见的。此外,不参考任何特定编程语言来描述本实施例。可以理解,可以使用各种编程语言来实现这里描述的实施例的教导。
这些实施例非常适合于众多拓扑上的多种计算机网络系统。在该领域内,大型网络的配置和管理包括存储设备和计算机,它们通过诸如因特网的网络可通信地耦合到不同的计算机和存储设备。
最后,应当注意的是,说明书中使用的语言主要是出于可读性和指导性的目的而选择的,没有被选择来描绘或限制本发明的主题。因此,实施例的公开旨在说明而非限制。

Claims (63)

1.一种用于在云平台中配置数据中心的计算机实现的方法,所述方法包括:
接收用于多租户系统的租户的数据中心的独立于云平台的声明性规范,所述数据中心表示由与所述租户相关联的一组用户使用的一组计算资源,所述独立于云平台的声明性规范被配置成在多个云平台中的任何一个上生成所述数据中心并且使用云平台基础设施语言进行规定;
接收标识目标云平台以便基于所述独立于云平台的声明性规范而创建所述数据中心的信息;
编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示,以便在所述目标云平台上创建所述数据中心;
发送所述云平台特定数据中心表示和用于在所述目标云平台上执行的一组指令,其中所述目标云平台执行所述指令以使用所述云平台特定数据中心表示而配置所述数据中心;和
由所述多租户系统向所述租户的用户提供对由所述目标云平台配置的所述数据中心的所述计算资源的访问。
2.根据权利要求1所述的计算机实现的方法,其中编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示包括:
从所述独立于云平台的声明性规范生成所述数据中心的独立于云平台的详细元数据表示,所述独立于云平台的详细元数据表示包括在所述独立于云平台的声明性规范中规定的数据中心实体的实例的标识符。
3.根据权利要求2所述的计算机实现的方法,其中编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示还包括:
基于所述独立于云平台的详细元数据表示,针对所述目标云平台生成平台特定详细元数据表示;和
基于所述平台特定详细元数据表示,在所述目标云平台上部署所述数据中心。
4.根据权利要求3所述的计算机实现的方法,其中针对所述目标云平台生成平台特定详细元数据表示包括:
在所述目标云平台上创建一个或多个用户账户;和
将生成的用户账户包括在所述平台特定详细元数据表示中。
5.根据权利要求3所述的计算机实现的方法,其中针对所述目标云平台生成平台特定详细元数据表示包括:
基于在所述独立于云平台的声明性规范中定义的服务的出站访问属性,在所述目标云平台上创建一个或多个网络策略。
6.根据权利要求3所述的计算机实现的方法,其中针对所述目标云平台生成平台特定详细元数据表示包括:
在所述目标云平台上创建一个或多个计算资源;
接收来自所述目标云平台的所述一个或多个计算资源的标识符;和
在所述平台特定详细元数据表示中包括所述标识符。
7.根据权利要求1所述的计算机实现的方法,其中所述独立于云平台的声明性规范包括一个或多个数据中心实例的定义,每个数据中心实例包括一个或多个服务组,其中每个服务组包括一组服务。
8.根据权利要求7所述的计算机实现的方法,其中服务组还规定一组计算节点集群,其中一个或多个服务与计算节点集群相关联,其中部署在所述目标云平台上的所述数据中心包括所述计算节点集群并且如所述独立于云平台的声明性规范中所规定的在所述计算节点上执行所述服务。
9.根据权利要求1所述的计算机实现的方法,还包括:
生成包括一组阶段的一个或多个流水线,每个阶段执行用于在所述云平台上创建所述数据中心的动作。
10.根据权利要求9所述的计算机实现的方法,其中所述一个或多个流水线包括用于供应资源以便在所述目标云平台上创建所述数据中心的供应流水线。
11.根据权利要求10所述的计算机实现的方法,其中所述一个或多个流水线包括用于在由所述供应流水线供应的资源上部署应用的部署流水线。
12.根据权利要求10所述的计算机实现的方法,其中所述一个或多个流水线包括编制流水线,所述编制流水线包括所述供应流水线和所述部署流水线。
13.根据权利要求1所述的计算机实现的方法,其中所述目标云平台是第一目标云平台,并且所述云平台特定数据中心表示是第一云平台特定数据中心表示,所述方法还包括:
接收标识第二目标云平台的信息;
编译所述独立于云平台的声明性规范以生成第二云平台特定数据中心表示,以便在所述第二目标云平台上创建所述数据中心;
发送所述第二云平台特定数据中心表示和用于在所述第二目标云平台上执行的一组指令,其中所述第二目标云平台执行所述指令以使用所述第二云平台特定数据中心表示而配置所述数据中心。
14.一种用于存储指令的非瞬态计算机可读存储介质,所述指令在由计算机处理器执行时使得所述计算机处理器执行用于在云平台中配置数据中心的步骤,所述步骤包括:
接收用于多租户系统的租户的数据中心的独立于云平台的声明性规范,所述数据中心表示由与所述租户相关联的一组用户使用的一组计算资源,所述独立于云平台的声明性规范被配置成在多个云平台中的任何一个上生成所述数据中心并且使用云平台基础设施语言进行规定;
接收标识目标云平台以便基于所述独立于云平台的声明性规范而创建所述数据中心的信息;
编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示,以便在所述目标云平台上创建所述数据中心;
发送所述云平台特定数据中心表示和用于在所述目标云平台上执行的一组指令,其中所述目标云平台执行所述指令以使用所述云平台特定数据中心表示而配置所述数据中心;和
由所述多租户系统向所述租户的用户提供对由所述目标云平台配置的所述数据中心的所述计算资源的访问。
15.根据权利要求14所述的非瞬态计算机可读存储介质,其中编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示包括:
从所述独立于云平台的声明性规范生成所述数据中心的独立于云平台的详细元数据表示,所述云平台无关的详细元数据表示包括在所述独立于云平台的声明性规范中规定的数据中心实体的实例的标识符。
16.根据权利要求15所述的非瞬态计算机可读存储介质,其中编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示包括:
基于所述独立于云平台的详细元数据表示,针对所述目标云平台生成平台特定详细元数据表示;和
基于所述平台特定详细元数据表示,在所述目标云平台上部署所述数据中心。
17.根据权利要求15所述的非瞬态计算机可读存储介质,其中编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示包括:
在所述目标云平台上创建一个或多个计算资源;
接收来自所述目标云平台的所述一个或多个计算资源的标识符;和
在所述平台特定详细元数据表示中包括所述标识符。
18.根据权利要求14所述的非瞬态计算机可读存储介质,其中一个或多个流水线包括:
供应流水线,用于供应资源以便在所述目标云平台上创建所述数据中心;和
部署流水线,用于在由所述供应流水线供应的资源上部署应用。
19.根据权利要求14所述的非瞬态计算机可读存储介质,其中所述目标云平台是第一目标云平台,并且所述云平台特定数据中心表示是第一云平台特定数据中心表示,其中所述指令还使所述处理器执行包括如下的步骤:
接收标识第二目标云平台的信息;
编译所述独立于云平台的声明性规范以生成第二云平台特定数据中心表示,以便在所述第二目标云平台上创建所述数据中心;
发送所述第二云平台特定数据中心表示和用于在所述第二目标云平台上执行的一组指令,其中所述第二目标云平台执行所述指令以使用所述第二云平台特定数据中心表示而配置所述数据中心。
20.一种计算机系统,包括:
计算机处理器;和
用于存储指令的非瞬态计算机可读存储介质,所述指令在由所述计算机处理器执行时使所述计算机处理器执行用于在云平台中配置数据中心的步骤,所述步骤包括:
接收用于多租户系统的租户的数据中心的独立于云平台的声明性规范,所述数据中心表示由与所述租户相关联的一组用户使用的一组计算资源,所述独立于云平台的声明性规范被配置成在多个云平台中的任何一个上生成所述数据中心并且使用云平台基础设施语言进行规定;
接收标识目标云平台以便基于所述独立于云平台的声明性规范而创建所述数据中心的信息;
编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示,以便在所述目标云平台上创建所述数据中心;
发送所述云平台特定数据中心表示和用于在所述目标云平台上执行的一组指令,其中所述目标云平台执行所述指令以使用所述云平台特定数据中心表示而配置所述数据中心;和
由所述多租户系统向所述租户的用户提供对由所述目标云平台配置的所述数据中心的所述计算资源的访问。
21.一种用于修改在云平台中创建的数据中心的计算机实现的方法,所述方法包括:
接收数据中心的原始声明性规范,其中所述数据中心表示由与多租户系统的租户相关联的一组用户使用的一组计算资源,所述原始声明性规范使用云平台基础设施语言进行规定并且被配置成在多个云平台中的任何一个上生成所述数据中心的原始版本;
在目标云平台上部署符合所述原始声明性规范的所述数据中心的所述原始版本;
接收所述数据中心的修改的声明性规范;
生成表示基于所述原始声明性规范的所述数据中心的所述原始版本与基于所述修改的声明性规范的所述数据中心的修改版本之间的差异的增量元数据表示;
基于所述增量元数据表示,生成所述数据中心的修改计划,所述修改计划包括用于修改所述目标云平台上的所述数据中心以获得所述数据中心的所述修改版本的指令;
将生成的用于执行的指令发送至所述目标云平台,其中所述目标云平台执行所述生成的指令,以从所述数据中心的所述原始版本获得所述数据中心的所述修改版本;和
向与所述多租户系统的所述租户相关联的所述一组用户提供对部署在所述目标云平台上的所述数据中心的所述修改版本的计算资源的访问。
22.根据权利要求21所述的计算机实现的方法,其中改变包括以下中的一个或多个:
创建新的数据中心实体,
删除数据中心实体,或
更新数据中心实体。
23.根据权利要求21所述的计算机实现的方法,还包括编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示,所述编译包括:
从所述原始声明性规范生成所述数据中心的所述独立于云平台的详细元数据表示的第一版本;和
从所述修改的声明性规范生成所述数据中心的所述独立于云平台的详细元数据表示的第二版本。
24.根据权利要求23所述的计算机实现的方法,还包括:
基于所述独立于云平台的详细元数据表示的所述第一版本,针对所述目标云平台生成平台特定详细元数据表示;和
基于所述平台特定详细元数据表示,在所述目标云平台上部署所述数据中心。
25.根据权利要求24所述的计算机实现的方法,其中所述增量元数据表示代表所述独立于云平台的详细元数据表示的所述第一版本与所述独立于云平台的详细元数据表示的所述第二版本之间的差异。
26.根据权利要求21所述的计算机实现的方法,其中所述独立于云平台的声明性规范包括一个或多个数据中心实例的定义,每个数据中心实例包括一个或多个服务组,其中每个服务组包括一组服务。
27.根据权利要求21所述的计算机实现的方法,其中所述生成的指令包括一个或多个流水线,每个流水线包括一系列阶段,每个阶段执行用于在所述云平台上创建所述数据中心的一个或多个动作。
28.根据权利要求21所述的计算机实现的方法,其中生成所述修改计划包括:确定需要重启以便修改所述数据中心的最小服务集,以及生成将所述重启操作限于所述最小服务集的指令。
29.根据权利要求21所述的计算机实现的方法,其中所述增量元数据表示包括被添加到所述数据中心的新的数据中心实体,所述方法还包括:
确定对所述数据中心实体具有启动依赖性的一组数据中心实体;并且
其中所述修改计划包括在启动所述数据中心实体之前启动所述一组中的数据中心实体的指令。
30.根据权利要求21所述的计算机实现的方法,其中所述增量元数据表示包括从所述数据中心删除的数据中心实体,所述方法还包括:
确定对所述数据中心实体具有启动依赖性的一组数据中心实体;并且
其中所述修改计划包括在所述一组中的数据中心实体之前删除所述数据中心实体的指令。
31.根据权利要求21所述的计算机实现的方法,其中所述增量元数据表示包括所述数据中心的服务被更新为具有第二出站访问而不是第一出站访问,所述第一出站访问和第二出站访问中的每一个规定URL(统一资源定位符),其中所述修改计划包括更新所述目标云平台中的网络策略以允许所述服务访问所述第二出站访问的URL并且禁止所述服务访问所述第一出站访问的URL的指令。
32.根据权利要求21所述的计算机实现的方法,其中所述增量元数据表示包括添加对第二服务的访问的第一服务,其中所述修改计划包括更新所述目标云平台中的网络策略以允许所述第二服务与所述第一服务交互的指令。
33.一种用于存储指令的非瞬态计算机可读存储介质,所述指令在由计算机处理器执行时使所述计算机处理器执行包括如下的步骤:
接收数据中心的原始声明性规范,其中所述数据中心表示由与多租户系统的租户相关联的一组用户使用的一组计算资源,所述原始声明性规范使用云平台基础设施语言进行规定并且被配置成在多个云平台中的任何一个上生成所述数据中心的原始版本;
在目标云平台上部署符合所述原始声明性规范的所述数据中心的所述原始版本;
接收所述数据中心的修改的声明性规范;
生成表示基于所述原始声明性规范的所述数据中心的所述原始版本与基于所述修改的声明性规范的所述数据中心的修改版本之间的差异的增量元数据表示;
基于所述增量元数据表示生成所述数据中心的修改计划,所述修改计划包括用于修改所述目标云平台上的所述数据中心以获得所述数据中心的所述修改版本的指令;
将生成的用于执行的指令发送至所述目标云平台,其中所述目标云平台执行所述生成的指令以从所述数据中心的所述原始版本获得所述数据中心的所述修改版本;和
向与所述多租户系统的所述租户相关联的所述一组用户提供对部署在所述目标云平台上的所述数据中心的所述修改版本的计算资源的访问。
34.根据权利要求33所述的非瞬态计算机可读存储介质,还包括编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示,所述编译包括:
从所述原始声明性规范生成所述数据中心的所述独立于云平台的详细元数据表示的第一版本;和
从所述修改的声明性规范生成所述数据中心的所述独立于云平台的详细元数据表示的第二版本。
35.根据权利要求34所述的非瞬态计算机可读存储介质,其中编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示还包括:
基于所述独立于云平台的详细元数据表示,针对所述目标云平台生成平台特定详细元数据表示;和
基于所述平台特定详细元数据表示,在所述目标云平台上部署所述数据中心。
36.根据权利要求33所述的非瞬态计算机可读存储介质,其中生成所述修改计划包括确定需要重启以修改所述数据中心的所述最小服务集并且将所述重启操作限于所述确定的最小服务集。
37.根据权利要求33所述的非瞬态计算机可读存储介质,其中所述增量元数据表示包括被添加到所述数据中心的新的数据中心实体,所述指令还使所述处理器执行包括如下的步骤:
确定对所述数据中心实体具有启动依赖性的一组数据中心实体;并且
其中所述修改计划包括在启动所述数据中心实体之前启动所述一组中的数据中心实体的指令。
38.根据权利要求33所述的非瞬态计算机可读存储介质,其中所述增量元数据表示包括从所述数据中心删除的数据中心实体,所述指令还使所述处理器执行包括如下的步骤:
确定对所述数据中心实体具有启动依赖性的一组数据中心实体;并且
其中所述修改计划包括在所述一组中的数据中心实体之前删除所述数据中心实体的指令。
39.根据权利要求33所述的非瞬态计算机可读存储介质,其中所述增量元数据表示包括所述数据中心的服务被更新为具有第二出站访问而不是第一出站访问,所述第一出站访问和第二出站访问中的每一个规定URL(统一资源定位符),其中所述修改计划包括更新所述目标云平台中的网络策略以允许所述服务访问所述第二出站访问的URL并禁止所述服务访问所述第一出站访问的URL的指令。
40.一种计算机系统,包括:
计算机处理器;和
用于存储指令的非瞬态计算机可读存储介质,所述指令在由所述计算机处理器执行时使所述计算机处理器执行用于在云平台中配置数据中心的步骤,所述步骤包括:
接收数据中心的原始声明性规范,其中所述数据中心表示由与多租户系统的租户相关联的一组用户使用的一组计算资源,所述原始声明性规范使用云平台基础设施语言进行规定并且被配置成在多个云平台中的任何一个上生成所述数据中心的原始版本;
在目标云平台上部署符合所述原始声明性规范的所述数据中心的所述原始版本;
接收所述数据中心的修改的声明性规范;
生成表示基于所述原始声明性规范的所述数据中心的所述原始版本与基于所述修改的声明性规范的所述数据中心的修改版本之间的差异的增量元数据表示;
基于所述增量元数据表示生成所述数据中心的修改计划,所述修改计划包括用于修改所述目标云平台上的所述数据中心以获得所述数据中心的所述修改版本的指令;
将所述生成的用于执行的指令发送至所述目标云平台,其中所述目标云平台执行所述生成的指令以从所述数据中心的所述原始版本获得所述数据中心的所述修改版本;和
向与所述多租户系统的所述租户相关联的所述一组用户提供对部署在所述目标云平台上的所述数据中心的所述修改版本的计算资源的访问。
41.根据权利要求1-2中任一项所述的计算机实现的方法,其中编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示还包括:
基于所述独立于云平台的详细元数据表示,针对所述目标云平台生成平台特定详细元数据表示;和
基于所述平台特定详细元数据表示,在所述目标云平台上部署所述数据中心。
42.根据权利要求1-2、41中任一项所述的计算机实现的方法,其中针对所述目标云平台生成平台特定详细元数据表示包括:
在所述目标云平台上创建一个或多个用户账户;和
将生成的用户账户包括在所述平台特定详细元数据表示中。
43.根据权利要求1-2、41-42中任一项所述的计算机实现的方法,其中针对所述目标云平台生成平台特定详细元数据表示包括:
基于在所述独立于云平台的声明性规范中定义的服务的出站访问属性,在所述目标云平台上创建一个或多个网络策略。
44.根据权利要求1-2、41-43中任一项所述的计算机实现的方法,其中,针对所述目标云平台生成平台特定详细元数据表示包括:
在所述目标云平台上创建一个或多个计算资源;
接收来自所述目标云平台的所述一个或多个计算资源的标识符;和
在所述平台特定详细元数据表示中包括所述标识符。
45.根据权利要求1-2、41-44中任一项所述的计算机实现的方法,其中所述独立于云平台的声明性规范包括一个或多个数据中心实例的定义,每个数据中心实例包括一个或多个服务组,其中每个服务组包括一组服务。
46.根据权利要求1-2、41-45中任一项所述的计算机实现的方法,其中服务组还规定一组计算节点集群,其中一个或多个服务与计算节点集群相关联,其中部署在所述目标云平台上的所述数据中心包括所述计算节点集群并在所述计算节点上执行如所述独立于云平台的声明性规范中所规定的所述服务。
47.根据权利要求1-2、41-46中任一项所述的计算机实现的方法,还包括:
生成包括一组阶段的一个或多个流水线,每个阶段执行用于在所述云平台上创建所述数据中心的动作。
48.根据权利要求1-2、41-47中任一项所述的计算机实现的方法,其中所述一个或多个流水线包括用于供应资源以便在所述目标云平台上创建所述数据中心的供应流水线。
49.根据权利要求1-2、41-48中任一项所述的计算机实现的方法,其中所述一个或多个流水线包括用于在由所述供应流水线供应的资源上部署应用的部署流水线。
50.根据权利要求1-2、41-49中任一项所述的计算机实现的方法,其中,所述一个或多个流水线包括编制流水线,所述编制流水线包括所述供应流水线和所述部署流水线。
51.根据权利要求1-2、41-50中任一项所述的计算机实现的方法,其中所述目标云平台是第一目标云平台,并且所述云平台特定数据中心表示是第一云平台特定数据中心表示,所述方法还包括:
接收标识第二目标云平台的信息;
编译所述独立于云平台的声明性规范以生成第二云平台特定数据中心表示,以便在所述第二目标云平台上创建所述数据中心;
发送所述第二云平台特定数据中心表示和用于在所述第二目标云平台上执行的一组指令,其中所述第二目标云平台执行所述指令以使用所述第二云平台特定数据中心表示而配置所述数据中心。
52.根据权利要求21-22中任一项所述的计算机实现的方法,还包括编译所述独立于云平台的声明性规范以生成云平台特定数据中心表示,所述编译包括:
从所述原始声明性规范生成所述数据中心的所述独立于云平台的详细元数据表示的第一版本;和
从所述修改的声明性规范生成所述数据中心的所述独立于云平台的详细元数据表示的第二版本。
53.根据权利要求21-22、52中任一项所述的计算机实现的方法,还包括:
基于所述独立于云平台的详细元数据表示的所述第一版本,针对所述目标云平台生成平台特定详细元数据表示;和
基于所述平台特定详细元数据表示在所述目标云平台上部署所述数据中心。
54.根据权利要求21-22、52-53中任一项所述的计算机实现的方法,其中所述增量元数据表示表示所述独立于云平台的详细元数据表示的所述第一版本与所述独立于云平台的详细元数据表示的所述第二版本之间的差异。
55.根据权利要求21-22、52-54中任一项所述的计算机实现的方法,其中所述独立于云平台的声明性规范包括一个或多个数据中心实例的定义,每个数据中心实例包括一个或多个服务组,其中每个服务组包括一组服务。
56.根据权利要求21-22、52-55中任一项所述的计算机实现的方法,其中所述生成的指令包括一个或多个流水线,每个流水线包括一系列阶段,每个阶段执行用于在所述云平台上创建所述数据中心的一个或多个动作。
57.根据权利要求21-22、52-56中的任一项所述的计算机实现的方法,其中生成所述修改计划包括确定需要重启以修改所述数据中心的所述最小服务集以及生成将所述重启操作限于所述最小服务集的指令。
58.根据权利要求21-22、52-57中任一项所述的计算机实现的方法,其中所述增量元数据表示包括被添加到所述数据中心的新的数据中心实体,所述方法还包括:
确定对所述数据中心实体具有启动依赖性的一组数据中心实体;并且
其中所述修改计划包括在启动所述数据中心实体之前启动所述一组中的数据中心实体的指令。
59.根据权利要求21-22、52-58中任一项所述的计算机实现的方法,其中所述增量元数据表示包括从所述数据中心删除的数据中心实体,所述方法还包括:
确定对所述数据中心实体具有启动依赖性的一组数据中心实体;并且
其中所述修改计划包括在所述一组中的数据中心实体之前删除所述数据中心实体的指令。
60.根据权利要求21-22、52-59中任一项所述的计算机实现的方法,其中所述增量元数据表示包括所述数据中心的服务被更新为具有第二出站访问而不是第一出站访问,所述第一出站访问和第二出站访问中的每一个规定URL(统一资源定位符),其中所述修改计划包括更新所述目标云平台中的网络策略以允许所述服务访问所述第二出站访问的URL并禁止所述服务访问所述第一出站访问的URL的指令。
61.根据权利要求21-22、52-60中任一项所述的计算机实现的方法,其中所述增量元数据表示包括添加对第二服务的访问的第一服务,其中所述修改计划包括更新所述目标云平台中的网络策略以允许所述第二服务与所述第一服务交互的指令。
62.一种用于存储指令的非瞬态计算机可读存储介质,所述指令在由计算机处理器执行时使得所述计算机处理器执行上述方法权利要求中任一项所述的步骤。
63.一种计算机系统,包括:
计算机处理器;和
用于存储指令的非瞬态计算机可读存储介质,所述指令在由所述计算机处理器执行时使得所述计算机处理器执行上述方法权利要求中任一项所述的步骤。
CN202180082651.8A 2020-11-06 2021-01-28 在云平台上声明式供应资源 Pending CN116601605A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/091,988 2020-11-06
US17/091,988 US11848829B2 (en) 2020-11-06 2020-11-06 Modifying a data center based on cloud computing platform using declarative language and compiler
US17/091,982 2020-11-06
PCT/US2021/015525 WO2022098382A1 (en) 2020-11-06 2021-01-28 Declaratively provisioning resources on cloud platforms

Publications (1)

Publication Number Publication Date
CN116601605A true CN116601605A (zh) 2023-08-15

Family

ID=81453726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180082651.8A Pending CN116601605A (zh) 2020-11-06 2021-01-28 在云平台上声明式供应资源

Country Status (2)

Country Link
US (1) US11848829B2 (zh)
CN (1) CN116601605A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868750B2 (en) * 2022-01-28 2024-01-09 Salesforce, Inc. Orchestration of datacenter creation on a cloud platform
WO2024010662A1 (en) * 2022-07-06 2024-01-11 Microsoft Technology Licensing, Llc Tenant configuration state extraction and variance detection

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676552B2 (en) 2004-02-11 2010-03-09 International Business Machines Corporation Automatic provisioning of services based on a high level description and an infrastructure description
US7533265B2 (en) 2004-07-14 2009-05-12 Microsoft Corporation Establishment of security context
US9621435B2 (en) * 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US8972725B2 (en) * 2012-09-07 2015-03-03 Oracle International Corporation Security infrastructure for cloud services
US9380027B1 (en) * 2015-03-30 2016-06-28 Varmour Networks, Inc. Conditional declarative policies
US20170168797A1 (en) * 2015-12-09 2017-06-15 Microsoft Technology Licensing, Llc Model-driven updates distributed to changing topologies
EP3430562B1 (en) * 2016-03-18 2020-04-01 Telefonaktiebolaget LM Ericsson (PUBL) Using nano-services to secure multi-tenant networking in datacenters
US10333983B2 (en) * 2016-08-30 2019-06-25 Nicira, Inc. Policy definition and enforcement for a network virtualization platform
US10613791B2 (en) * 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US11714811B2 (en) * 2017-09-27 2023-08-01 Salesforce, Inc. Run-time querying of multi-tenant non-relational platform objects
US11086545B1 (en) * 2018-03-23 2021-08-10 Tintri By Ddn, Inc. Optimizing a storage system snapshot restore by efficiently finding duplicate data
US10999163B2 (en) * 2018-08-14 2021-05-04 Juniper Networks, Inc. Multi-cloud virtual computing environment provisioning using a high-level topology description
US10795690B2 (en) 2018-10-30 2020-10-06 Oracle International Corporation Automated mechanisms for ensuring correctness of evolving datacenter configurations
US10924347B1 (en) * 2019-10-16 2021-02-16 Microsoft Technology Licensing, Llc Networking device configuration value persistence
US11494349B2 (en) * 2019-11-22 2022-11-08 Liquibase Inc. Code packager with SQL parser
US11698915B1 (en) * 2021-04-15 2023-07-11 Humana Inc. Cloud platform based architecture for continuous deployment and execution of modular data pipelines
US11277303B1 (en) 2021-05-04 2022-03-15 Salesforce.Com, Inc. Declarative specification based override mechanism for customizing data centers deployed on cloud platforms

Also Published As

Publication number Publication date
US20220150133A1 (en) 2022-05-12
US11848829B2 (en) 2023-12-19

Similar Documents

Publication Publication Date Title
US9183062B2 (en) Automated application reconfiguration
US8494996B2 (en) Creation and revision of network object graph topology for a network performance management system
US8495352B2 (en) System and method for instantiation of distributed applications from disk snapshots
US11561784B2 (en) Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms
US11487546B2 (en) Change management of services deployed on datacenters configured in cloud platforms
US11677620B2 (en) Declarative specification based override mechanism for customizing data centers deployed on cloud platforms
US11356508B1 (en) Retry strategies for handling failures during continuous delivery of software artifacts in a cloud platform
US11349958B1 (en) Deployment of software releases on datacenters configured in cloud platforms
US20230054760A1 (en) Deployment strategies for continuous delivery of software rtifacts in cloud platforms
US11392366B1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
US11392361B2 (en) Software release orchestration for continuous delivery of features in a cloud platform based data center
US11733987B2 (en) Executing shared pipelines for continuous delivery of services in cloud platforms
CN116601605A (zh) 在云平台上声明式供应资源
US20220147399A1 (en) Declarative language and compiler for provisioning and deploying data centers on cloud platforms
Madduri et al. A configuration management database architecture in support of IBM Service Management
WO2022250864A1 (en) Deploying a cloud service based on component dependencies
US11570048B2 (en) Declarative language and compiler for provisioning and deploying data centers on cloud platforms
US11403145B1 (en) Enforcing system configuration freeze of services deployed via continuous delivery on datacenters configured in cloud platforms
US11868750B2 (en) Orchestration of datacenter creation on a cloud platform
JP2023551963A (ja) クラウドプラットフォームにおいて構成されたデータセンタへのソフトウェアリリースのデプロイ
EP4217863A1 (en) Declaratively provisioning resources on cloud platforms
WO2022154811A1 (en) System configuration freeze and change management of services deployed via continuous delivery on datacenters configured in cloud platforms
US11240107B1 (en) Validation and governance of a cloud computing platform based datacenter
Shaik et al. Best Ways to Install PostgreSQL
Soh et al. Infrastructure as Code (IaC)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination