HK40100729A - Deployment of software releases on datacenters configured in cloud platforms - Google Patents
Deployment of software releases on datacenters configured in cloud platforms Download PDFInfo
- Publication number
- HK40100729A HK40100729A HK62024088171.9A HK62024088171A HK40100729A HK 40100729 A HK40100729 A HK 40100729A HK 62024088171 A HK62024088171 A HK 62024088171A HK 40100729 A HK40100729 A HK 40100729A
- Authority
- HK
- Hong Kong
- Prior art keywords
- data center
- cloud platform
- independent
- pipeline
- cloud
- Prior art date
Links
Description
背景技术Background Technology
技术领域Technical Field
公开文本总体上涉及在云计算平台中管理软件发布,并且具体地,涉及在云计算平台中配置的数据中心上部署软件发布。The publicly available text generally relates to managing software distribution within a cloud computing platform, and more specifically, to deploying software distribution on data centers configured within a cloud computing platform.
相关技术描述Related technical descriptions
组织越来越多地在云平台(或云计算平台)上响应,如AWS(亚马逊网络服务)、谷歌云平台、微软AZURE等,以满足其基础设施需求。云平台通过互联网向组织提供服务器、存储、数据库、网络、软件等等。通常,组织维护包含组织使用的硬件和软件的数据中心。然而,维护数据中心可能会导致在维护、人员等方面的巨大开销。因此,组织正在将其数据中心转移到云平台,以提供计算资源的可扩展性和弹性。Organizations are increasingly turning to cloud platforms (or cloud computing platforms), such as AWS (Amazon Web Services), Google Cloud Platform, and Microsoft Azure, to meet their infrastructure needs. Cloud platforms deliver servers, storage, databases, networks, software, and more to organizations via the internet. Typically, organizations maintain data centers containing the hardware and software they use. However, maintaining data centers can incur significant costs in terms of maintenance, personnel, and other aspects. Therefore, organizations are migrating their data centers to cloud platforms to provide the scalability and elasticity of computing resources.
组织使用可以在云平台上管理和部署应用程序的持续交付平台来维护云平台上的云基础设施。这种持续交付平台允许组织简化软件部署过程,并管理云平台上的应用程序、防火墙、集群、服务器、负载均衡器和其他计算基础设施。然而,使用持续交付平台为云平台上提供的服务部署软件发布可能会很复杂。例如,不同版本的软件可能必须部署在于不同云计算资源上运行的不同服务上。此外,每个云平台使用不同的工具来管理资源。Organizations use continuous delivery platforms (CDPs) to maintain cloud infrastructure on cloud platforms, enabling them to manage and deploy applications. These CDPs allow organizations to streamline software deployment processes and manage applications, firewalls, clusters, servers, load balancers, and other computing infrastructure on cloud platforms. However, deploying software releases for services offered on cloud platforms using CDPs can be complex. For example, different versions of software may need to be deployed on different services running on different cloud computing resources. Furthermore, each cloud platform uses different tools to manage resources.
诸如多租户系统的大型系统可以为代表多租户系统的租户的大量组织管理服务,并且可以与多个云平台交互。多租户系统可能必须在云平台上维护几千个这样的数据中心。每个数据中心对软件发布可能有不同的要求。此外,每个云平台支持的软件、语言和特征可能不同。例如,不同的云平台可能支持不同的机制来实施网络策略或访问控制。因此,取决于数据中心支持的云平台的数量,多租户系统必须维护用于在数据中心上发布和部署服务的机制的不同实现方式。这导致支持在跨多个云平台的数据中心上的软件发布的多租户系统的维护成本高。Large systems, such as multi-tenant systems, can provide organizational management services for a large number of tenants representing the multi-tenant system and can interact with multiple cloud platforms. A multi-tenant system may have to maintain thousands of such data centers across cloud platforms. Each data center may have different requirements for software deployment. Furthermore, each cloud platform may support different software, languages, and features. For example, different cloud platforms may support different mechanisms for enforcing network policies or access controls. Therefore, depending on the number of cloud platforms supported by the data center, the multi-tenant system must maintain different implementations of the mechanisms used to publish and deploy services across the data center. This results in high maintenance costs for multi-tenant systems that support software deployment across data centers on multiple cloud platforms.
附图说明Attached Figure Description
图1是示出根据实施方案的在云平台上配置数据中心的多租户系统的系统环境的框图。Figure 1 is a block diagram illustrating the system environment for configuring a multi-tenant system for a data center on a cloud platform according to the implementation scheme.
图2A是示出根据实施方案的部署模块210的架构的框图。Figure 2A is a block diagram illustrating the architecture of deployment module 210 according to the implementation scheme.
图2B示出了根据实施方案的用于在数据中心中部署软件工件的整体过程。Figure 2B illustrates the overall process for deploying software artifacts in a data center according to the implementation plan.
图3是示出根据一个实施方案的软件发布管理模块的架构的框图。Figure 3 is a block diagram illustrating the architecture of a software release management module according to one implementation scheme.
图4示出了根据一个实施方案的数据中心声明性规范的实施例。Figure 4 illustrates an example of a data center declarative specification according to one implementation plan.
图5示出了根据一个实施方案的基于声明性规范在云平台上创建的示例性数据中心。Figure 5 illustrates an exemplary data center created on a cloud platform based on a declarative specification according to one implementation scheme.
图6是示出根据一个实施方案的基于声明性规范在云平台上生成数据中心的框图。Figure 6 is a block diagram illustrating the generation of a data center on a cloud platform based on a declarative specification according to one implementation scheme.
图7示出了根据实施方案的生成用于在云平台上配置的数据中心上部署软件工件的管线的整体过程。Figure 7 illustrates the overall process of generating a pipeline for deploying software artifacts on a data center configured on a cloud platform, according to the implementation scheme.
图8示出了根据实施方案的示例性主管线。Figure 8 illustrates an exemplary main line according to the implementation scheme.
图9示出了根据实施方案的由云平台上的主管线的环境的阶段执行的整体过程。Figure 9 illustrates the overall process executed in stages by the main pipeline environment on the cloud platform according to the implementation scheme.
图10示出了根据实施方案的示例性主管线。Figure 10 illustrates an exemplary mainline according to an implementation scheme.
图11示出了根据实施方案的用于数据中心的示例性主管线。Figure 11 illustrates an exemplary mainline for a data center according to an implementation scheme.
图12示出了根据实施方案如何基于工件版本映射来修改主管线的执行。Figure 12 illustrates how the execution of the pipeline can be modified based on the artifact version mapping according to the implementation scheme.
图13示出了根据实施方案的用于在云平台上配置的数据中心上部署软件工件的整体过程。Figure 13 illustrates the overall process for deploying software artifacts on a data center configured on a cloud platform, according to the implementation scheme.
图14是示出根据一个实施方案的在图1的环境中使用的典型计算机系统的功能视图的框图。Figure 14 is a block diagram showing a functional view of a typical computer system used in the environment of Figure 1 according to one embodiment.
附图仅出于示出的目的描绘了各种实施方案。本领域的技术人员将容易地从以下讨论中认识到,在不偏离本文描述的实施方案的原理的情况下,可以采用本文所示的结构和方法的替代实施方案。The accompanying drawings depict various embodiments for illustrative purposes only. Those skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods shown herein can be employed without departing from the principles of the embodiments described herein.
图使用相似的参考数字来标识相似的要素。参考数字后面的字母,如“115a”,指示该文本具体指的是具有该特定参考数字的要素。文本中没有后面的字母的参考数字,如“115”,指的是图中带有该参考数字的任何或所有要素。The diagram uses similar reference numbers to identify similar features. A letter following the reference number, such as "115a," indicates that the text specifically refers to the feature with that particular reference number. Reference numbers without a following letter, such as "115," refer to any or all features in the diagram that have that reference number.
具体实施方式Detailed Implementation
云平台经由互联网等公共网络按需向计算系统提供计算资源,如存储、计算资源、应用程序等。云平台允许企业最大限度地降低建立计算基础设施的前期成本,还允许企业以更少的维护开销更快地启动和运行应用程序。云平台还允许企业调整计算资源,以适应快速波动和不可预测的需求。企业可以使用云平台创建数据中心,以便企业的用户使用。然而,在每个云平台上实现数据中心需要云平台技术方面的专业知识。Cloud platforms provide computing resources, such as storage, computing resources, and applications, to computing systems on demand via public networks like the internet. Cloud platforms allow businesses to minimize the upfront costs of building computing infrastructure and enable applications to be launched and running faster with less maintenance overhead. They also allow businesses to adjust computing resources to adapt to rapidly fluctuating and unpredictable demands. Businesses can use cloud platforms to create data centers for their users. However, implementing a data center on each cloud platform requires expertise in the cloud platform technology.
实施方案使用独立于云平台的云平台基础设施语言,在云平台中创建数据中心。该系统接收数据中心的独立于云平台的声明性规范。该声明性规范描述了数据中心的结构,并且可能不提供指定如何创建数据中心的指令。独立于云平台的声明性规范配置为在多个云平台中的任何一个上生成数据中心,并且其使用云平台基础设施语言来指定。该系统接收标识用于创建数据中心的目标云平台的信息,并编译独立于云平台的声明性规范,以生成特定于云平台的数据中心表示。该系统发送特定于云平台的数据中心表示和用于在目标云平台上执行的指令集。目标云平台使用特定于平台的数据中心表示来执行配置数据中心的指令。该系统为用户提供对云平台配置的数据中心计算资源的访问。The implementation uses a cloud platform infrastructure language (LPIL) to create data centers within a cloud platform. The system receives a cloud platform-independent declarative specification for the data center. This declarative specification describes the structure of the data center and may not provide instructions on how to create it. The cloud platform-independent declarative specification is configured to generate data centers on any of multiple cloud platforms and is specified using the LPIL. The system receives information identifying the target cloud platform used to create the data center and compiles the cloud platform-independent declarative specification to generate a cloud platform-specific data center representation. The system sends the cloud platform-specific data center representation and a set of instructions for execution on the target cloud platform. The target cloud platform uses the platform-specific data center representation to execute instructions for configuring the data center. The system provides users with access to the data center computing resources configured on the cloud platform.
在一个实施方案中,该系统执行与配置在云平台上的数据中心上的软件发布相关的操作,例如,部署软件发布、提供资源、执行软件发布的回滚等等。该系统访问配置在目标云平台上的数据中心。数据中心是基于独立于云平台的声明性规范生成的,该规范包括数据中心实体的层级。每个数据中心实体包括(1)服务和(2)一个或多个其他数据中心实体中的一个或多个。该系统生成独立于云平台的主管线,该主管线包括:(1)用于部署软件工件的阶段序列,例如,开发阶段、测试阶段和生产阶段,以及(2)用于将软件工件从一个阶段推进至阶段序列的后续阶段的标准。该系统编译独立于云平台的主管线,以针对所述目标云平台生成依赖于云平台的详细管线,该详细管线具有用于根据声明性规范定义的数据中心布局执行与服务相关的操作的指令。该系统在目标云平台上执行依赖于云平台的详细管线,例如,在数据中心的数据中心实体上部署软件发布。In one implementation, the system performs operations related to software releases configured on a data center on a cloud platform, such as deploying software releases, providing resources, performing software release rollbacks, etc. The system accesses a data center configured on a target cloud platform. The data center is generated based on a cloud platform-independent declarative specification that includes a hierarchy of data center entities. Each data center entity includes (1) a service and (2) one or more other data center entities. The system generates a cloud platform-independent pipeline that includes: (1) a sequence of phases for deploying software artifacts, such as development, testing, and production phases, and (2) standards for advancing software artifacts from one phase to subsequent phases in the phase sequence. The system compiles the cloud platform-independent pipeline to generate a cloud platform-dependent detailed pipeline for the target cloud platform, which has instructions for performing service-related operations according to the data center layout defined in the declarative specification. The system executes the cloud platform-dependent detailed pipeline on the target cloud platform, such as deploying software releases on data center entities within the data center.
在一个实施方案中,该系统访问配置在目标云平台上的数据中心。该系统接收独立于云平台的工件版本映射,该工件版本映射将数据中心的数据中心实体与以部署在数据中心实体上为目标的软件工件的版本相关联。每个软件工件包括与配置用于在一个或多个云平台上执行的服务相关联的可执行指令。该系统基于独立于云平台的工件版本映射,针对目标云平台生成特定于云平台的主管线。特定于云平台的主管线包括指令,以执行例如根据独立于云平台的版本映射,针对数据中心实体上的服务构建和部署适当版本的部署工件的操作。该系统将特定于云平台的部署管线传输至目标云平台以便执行。工件版本映射和主管线可以用于执行与服务相关的各种动作,包括部署服务、销毁服务、提供服务资源、销毁服务资源等等。In one implementation, the system accesses a data center configured on a target cloud platform. The system receives a cloud platform-independent artifact version map that associates a data center entity with versions of software artifacts targeted for deployment on that data center entity. Each software artifact includes executable instructions associated with a service configured to execute on one or more cloud platforms. Based on the cloud platform-independent artifact version map, the system generates a cloud platform-specific pipeline for the target cloud platform. The cloud platform-specific pipeline includes instructions to perform operations such as building and deploying appropriate versions of deployment artifacts for services on the data center entity according to the cloud platform-independent version map. The system transmits the cloud platform-specific deployment pipeline to the target cloud platform for execution. The artifact version map and pipeline can be used to perform various service-related actions, including deploying services, destroying services, providing service resources, destroying service resources, and so on.
云平台在本文中也被称为基板。数据中心的声明性规范是独立于基板的或与基板无关的。如果使用传统技术执行与数据中心相关的操作,如部署软件发布、提供资源等,则用户必须提供特定于云平台的指令。因此,用户需要所使用的云平台的专业知识。此外,这些指令是特定于云平台的,并且不能跨多个平台移植。例如,在AWS云平台上部署软件的指令不同于在GCP云平台上的指令。开发人员需要了解如何在特定的云平台上实施每个特征的详细信息。所公开的系统提供了一种云平台基础设施语言,其允许用户使用独立于云平台并且可以在从多个云平台中选择的任何云平台上执行的指令在数据中心上执行操作。云平台基础设施语言的编译器为目标云平台生成特定于云平台的详细指令。The cloud platform is also referred to as the substrate in this document. The declarative specifications of a data center are substrate-independent or substrate-agnostic. If traditional technologies are used to perform data center-related operations, such as deploying software releases and providing resources, users must provide cloud platform-specific instructions. Therefore, users require expertise in the cloud platform they are using. Furthermore, these instructions are cloud platform-specific and not portable across multiple platforms. For example, the instructions for deploying software on the AWS cloud platform differ from those on the GCP cloud platform. Developers need to understand the details of implementing each feature on a specific cloud platform. The disclosed system provides a cloud platform infrastructure language that allows users to perform operations in the data center using cloud platform-independent instructions that can be executed on any cloud platform selected from multiple cloud platforms. The compiler of the cloud platform infrastructure language generates detailed cloud platform-specific instructions for the target cloud platform.
云平台基础设施语言可以被称为领域特定语言(DSL)。该系统可以表示多租户系统,但不限于多租户系统,并且可以是任何在线系统或具有对云平台的网络访问的任何计算系统。The language of cloud platform infrastructure can be called a domain-specific language (DSL). This system can represent a multi-tenant system, but is not limited to multi-tenant systems, and can be any online system or any computing system with network access to the cloud platform.
系统环境System Environment
图1是示出根据实施方案在云平台上配置数据中心的多租户系统的系统环境的框图。系统环境100包括多租户系统110、一个或多个云平台120和一个或多个客户端设备105。在其他实施方案中,系统环境100可以包括更多或更少的部件。Figure 1 is a block diagram illustrating a system environment for configuring a multi-tenant system for a data center on a cloud platform according to an implementation scheme. System environment 100 includes a multi-tenant system 110, one or more cloud platforms 120, and one or more client devices 105. In other implementations, system environment 100 may include more or fewer components.
多租户系统110存储一个或多个租户115的信息。每个租户可以与代表多租户系统110的客户的企业相关联。每个租户可以具有经由客户端设备105与多租户系统交互的多个用户。Multitenant system 110 stores information about one or more tenants 115. Each tenant can be associated with an enterprise that represents a customer of multitenant system 110. Each tenant can have multiple users interacting with the multitenant system via client device 105.
云平台也可以被称为云计算平台或公共云环境。租户可以使用云平台基础设施语言来提供在目标云平台120上创建的数据中心的声明性规范,并使用数据中心来执行操作,例如,提供资源、执行软件发布等等。租户115可以在云平台120上创建一个或多个数据中心。数据中心表示计算资源集,包括用户(例如,与租户相关联的用户)可以使用的服务器、应用程序、存储、内存等。每个租户可以向租户的用户提供不同的功能。因此,每个租户可以在为该租户配置的数据中心上执行不同的服务。多租户系统可以为每个租户实施不同的软件发布和部署机制。租户可进一步获得或开发包括用于在数据中心中执行的各种服务的指令的软件版本。实施方案允许租户为在数据中心的不同计算资源上运行的不同服务部署软件发布的特定版本。A cloud platform can also be referred to as a cloud computing platform or a public cloud environment. Tenants can use the cloud platform infrastructure language to provide declarative specifications for data centers created on the target cloud platform 120 and use these data centers to perform operations, such as providing resources, performing software releases, etc. Tenant 115 can create one or more data centers on cloud platform 120. A data center represents a set of computing resources, including servers, applications, storage, memory, etc., that can be used by users (e.g., users associated with a tenant). Each tenant can provide different functionalities to its users. Therefore, each tenant can perform different services on the data center configured for that tenant. Multi-tenant systems can implement different software release and deployment mechanisms for each tenant. Tenants can further obtain or develop software versions that include instructions for various services performed in the data center. Implementation schemes allow tenants to deploy specific versions of software releases for different services running on different computing resources in the data center.
数据中心的计算资源是安全的,并且未被授权访问它们的用户可能无法访问它们。例如,除非明确地授权访问,否则为租户115a的用户创建的数据中心125a可能不能被租户115b的用户访问。类似地,除非明确地授权访问,否则为租户115b的用户创建的数据中心125b可能不能被租户115a的用户访问。此外,只有在根据数据中心的声明性规范向计算系统授权访问时,由数据中心提供的服务才可以由数据中心外部的计算系统访问。The computing resources in a data center are secure, and users without authorized access may not be able to access them. For example, data center 125a created for user 115a may not be accessible to user 115b unless access is explicitly authorized. Similarly, data center 125b created for user 115b may not be accessible to user 115a unless access is explicitly authorized. Furthermore, services provided by the data center can only be accessed by computing systems outside the data center if access is authorized to the computing system in accordance with the data center's declarative specifications.
对于多租户系统110,多个租户的数据可以存储在相同的物理数据库中。然而,数据库配置为使得一个租户的数据与其他租户的数据在逻辑上保持分离,使得一个租户不能访问另一个租户的数据,除非这种数据被明确地共享。租户的数据可以存储在与其他客户的数据共享的表中,这对于租户来说是透明的。数据库表可以存储多个租户的行。因此,在多租户系统中,系统的硬件和软件的各种元件可以由一个或多个租户共享。例如,多租户系统110可以执行同时处理对多个租户的请求的应用服务器。然而,多租户系统强制执行租户级数据隔离,以确保一个租户的作业不会访问其他租户的数据。In a multi-tenant system 110, data from multiple tenants can be stored in the same physical database. However, the database is configured to logically separate one tenant's data from that of other tenants, preventing one tenant from accessing another's data unless such data is explicitly shared. Tenant data can be stored in tables shared with other clients, transparent to the tenant. Database tables can store rows from multiple tenants. Therefore, in a multi-tenant system, various hardware and software components of the system can be shared by one or more tenants. For example, multi-tenant system 110 can execute application servers that simultaneously process requests from multiple tenants. However, multi-tenant systems enforce tenant-level data isolation to ensure that one tenant's job does not access other tenants' data.
云平台的实施例包括AWS(亚马逊网络服务)、谷歌云平台或微软AZURE。云平台120提供可以由租户115或云平台120外部的任何计算系统按需使用的计算基础设施服务。云平台提供的计算基础设施服务的实施例包括服务器、存储、数据库、网络、安全、负载平衡、软件、分析、智能和其他基础设施服务功能。租户115可以使用这些基础设施服务以可扩展和安全的方式构建、部署和管理应用。Implementations of the cloud platform include AWS (Amazon Web Services), Google Cloud Platform, or Microsoft Azure. Cloud platform 120 provides computing infrastructure services that can be used on demand by tenant 115 or any computing system outside of cloud platform 120. Implementations of the computing infrastructure services provided by the cloud platform include server, storage, database, networking, security, load balancing, software, analytics, intelligence, and other infrastructure service functions. Tenant 115 can use these infrastructure services to build, deploy, and manage applications in a scalable and secure manner.
多租户系统110可以包括租户数据存储,其存储多租户存储的各种租户的数据。租户数据存储可以将不同租户的数据存储在单独的物理结构中,例如,单独的数据库表或单独的数据库。可替代地,租户数据存储可以将多个租户的数据存储在共享的结构中。例如,所有租户的用户账户可以共享相同的数据库表。然而,多租户系统存储附加信息以在逻辑上分离不同租户的数据。Multitenant system 110 may include a tenant data store that stores data for various tenants within the multitenant storage. The tenant data store may store data for different tenants in separate physical structures, such as separate database tables or separate databases. Alternatively, the tenant data store may store data for multiple tenants in a shared structure. For example, user accounts for all tenants may share the same database table. However, the multitenant system stores additional information to logically separate the data for different tenants.
图1中所示的每个部件表示一个或多个计算设备。例如,计算设备可以是执行MicrosoftTM、WindowsTM兼容的操作系统(OS)、AppleTMOS X和/或Linux发行版的常规计算机系统。计算设备也可以是具有计算机功能的客户端设备,例如个人数字助理(PDA)、移动电话、视频游戏系统等。每个计算设备存储软件模块,其存储指令。Each component shown in Figure 1 represents one or more computing devices. For example, a computing device can be a conventional computer system running a Microsoft ™ , Windows ™ compatible operating system (OS), Apple ™ OS X, and/or Linux distribution. A computing device can also be a client device with computer functionality, such as a personal digital assistant (PDA), mobile phone, video game system, etc. Each computing device stores software modules, which store instructions.
系统环境100的各种部件之间的交互通常经由网络(图1中未示出)来执行。在一个实施方案中,网络使用标准通信技术和/或协议。在另一个实施方案中,实体可以使用自定义和/或专用数据通信技术来代替或补充上述技术。Interactions between various components of system environment 100 are typically performed via a network (not shown in Figure 1). In one embodiment, the network uses standard communication technologies and/or protocols. In another embodiment, entities may use custom and/or proprietary data communication technologies to replace or supplement the aforementioned technologies.
尽管本文公开的技术是在多租户系统的上下文中描述的,但是可以使用可能不是多租户系统的其他系统来实施这些技术。例如,单个组织或企业使用的在线系统可以使用本文公开的技术在一个或多个云平台120上创建一个或多个数据中心。Although the techniques disclosed herein are described in the context of multi-tenant systems, these techniques can be implemented using other systems that may not be multi-tenant systems. For example, an online system used by a single organization or enterprise can use the techniques disclosed herein to create one or more data centers on one or more cloud platforms 120.
系统架构System Architecture
多租户系统110包括用于在云平台上部署软件工件的部署模块。部署模块可以执行与软件发布相关联的各种操作,例如,在云平台上提供资源、部署软件发布、执行在数据中心实体上安装的软件工件的回滚,等等。图2是示出根据实施方案的部署模块210的系统架构的框图。部署模块210包括数据中心生成模块220和软件发布管理模块230。其他实施方案可以具有不同于这里描述的部件和/或其他部件,并且功能可以以不同的方式分布在部件之间。Multitenant system 110 includes a deployment module for deploying software artifacts on a cloud platform. The deployment module can perform various operations associated with software releases, such as providing resources on the cloud platform, deploying software releases, performing rollbacks of software artifacts installed on data center entities, and so on. Figure 2 is a block diagram illustrating the system architecture of deployment module 210 according to an implementation scheme. Deployment module 210 includes a data center generation module 220 and a software release management module 230. Other implementations may have components and/or other components different from those described herein, and functionality may be distributed among the components in different ways.
数据中心生成模块220包括用于在云平台上创建数据中心的指令。软件发布管理模块230包括用于部署在由数据中心生成模块220创建的数据中心上运行的各种服务或应用的软件发布的指令。The data center creation module 220 includes instructions for creating a data center on a cloud platform. The software release management module 230 includes instructions for deploying software releases that run on the data center created by the data center creation module 220.
数据中心生成模块220从用户(例如,租户的用户)接收数据中心的独立于云平台的声明性规范。数据中心的独立于云平台的声明性规范指定了数据中心的各种实体。在一个实施方案中,数据中心的独立于云平台的声明性规范包括数据中心实体的层级组织,其中每个数据中心实体可以包括一个或多个服务、一个或多个其他数据中心实体或两者的组合。图4更详细地描述了各种类型的数据中心实体。数据中心生成模块220接收平台独立声明性规范和目标云平台作为输入,并为目标云平台生成特定于云平台的元数据表示。数据中心生成模块220在目标云平台上部署生成的特定于云平台的元数据表示,以根据声明性规范在目标云平台上创建数据中心。Data center generation module 220 receives a cloud platform-independent declarative specification of the data center from a user (e.g., a tenant's user). The cloud platform-independent declarative specification of the data center specifies various entities within the data center. In one implementation, the cloud platform-independent declarative specification of the data center includes a hierarchical organization of data center entities, where each data center entity may include one or more services, one or more other data center entities, or a combination of both. Figure 4 illustrates the various types of data center entities in more detail. Data center generation module 220 receives a platform-independent declarative specification and a target cloud platform as input and generates a cloud platform-specific metadata representation for the target cloud platform. Data center generation module 220 deploys the generated cloud platform-specific metadata representation on the target cloud platform to create the data center on the target cloud platform according to the declarative specification.
软件发布管理模块230接收(1)工件版本映射225和(2)主管线235作为输入。工件版本映射225标识以部署在特定数据中心实体上为目标的软件发布或部署工件的特定版本。工件版本映射225将数据中心实体映射到以部署在数据中心实体上为目标的软件发布版本。主管线235包括用于与数据中心上的软件发布相关的操作的指令,例如,部署服务、销毁服务、提供服务资源、销毁服务资源等等。The software release management module 230 receives (1) an artifact version map 225 and (2) a supervisor line 235 as input. The artifact version map 225 identifies a specific version of a software release or deployment artifact targeted for deployment on a specific data center entity. The artifact version map 225 maps the data center entity to a software release version targeted for deployment on the data center entity. The supervisor line 235 includes instructions for operations related to software releases on the data center, such as deploying services, destroying services, providing service resources, destroying service resources, etc.
主管线235可以包括用于执行与不同环境(如开发环境、测试环境、金丝雀环境和生产环境)的软件发布相关的操作的指令,以及用于确定何时将软件发布从一个环境推进至另一个环境的指令。例如,如果软件发布在开发环境中的部署执行超过阈值数量的测试用例,则该软件发布被推进至测试环境以进行进一步的测试,例如,系统级和集成测试。如果测试环境中的软件发布通过了测试覆盖的阈值,则软件发布被推进至金丝雀环境,在该环境中,软件发布在试用的基础上被提供给一小部分用户。如果金丝雀环境中的软件发布在阈值时间内没有错误地执行,则软件发布被推进至生产环境,在生产环境中,该软件发布被提供给所有用户。Supervisor line 235 may include instructions for performing operations related to software releases in different environments (such as development, testing, canary, and production environments), and instructions for determining when to advance a software release from one environment to another. For example, if a software release is deployed in the development environment and executes more than a threshold number of test cases, the release is advanced to the testing environment for further testing, such as system-level and integration testing. If the software release in the testing environment passes a test coverage threshold, it is advanced to the canary environment, where it is offered to a small group of users on a trial basis. If the software release in the canary environment executes without errors within a threshold time, it is advanced to the production environment, where it is offered to all users.
软件发布管理模块230编译输入工件版本映射225和主管线235,以生成传输至目标云平台的特定于云平台的详细管线255。特定于云平台的详细管线255包括用于在数据中心实体上部署软件发布或适当版本的部署工件的指令,如工件版本映射225中所指定的。软件发布管理模块230可以接收对其中一个输入的修改。例如,用户可以修改输入工件版本映射225并提供相同的主管线235。因此,使用相同的主管线,但在数据中心实体上部署不同的软件发布。软件发布管理模块230重新编译输入,以生成新的特定于云平台的详细管线255,该管线根据新的工件版本映射225部署软件发布的版本。The software release management module 230 compiles the input artifact version map 225 and the main pipeline 235 to generate a cloud-platform-specific detailed pipeline 255 for transmission to the target cloud platform. The cloud-platform-specific detailed pipeline 255 includes instructions for deploying the software release or an appropriate version of the deployment artifact on the data center entity, as specified in the artifact version map 225. The software release management module 230 can accept modifications to one of the inputs. For example, a user can modify the input artifact version map 225 while providing the same main pipeline 235. Thus, the same main pipeline is used, but a different software release is deployed on the data center entity. The software release management module 230 recompiles the input to generate a new cloud-platform-specific detailed pipeline 255 that deploys the version of the software release according to the new artifact version map 225.
工件版本映射也可以被称为部署清单、版本清单、软件发布映射或软件工件版本映射。主管线也可以被称为主部署管线或主编排管线。Artifact version mapping can also be referred to as deployment manifest, version manifest, software release mapping, or software artifact version mapping. The main pipeline can also be referred to as the main deployment pipeline or main orchestration pipeline.
图2B示出了根据实施方案的用于在数据中心中部署软件工件的整体过程。图2B示出了包括各种数据中心实体的数据中心265的布局。如图2B中所示,工件版本映射225标识目标为在数据中心265的不同数据中心实体275上发布的软件的不同版本。主管线表示通过数据中心的各种环境的部署工件流。软件发布管理模块230将主管线235中的信息与工件版本映射225组合,以确定特定于云平台的详细管线255,该管线根据工件版本映射225在数据中心实体上映射适当版本的软件工件。Figure 2B illustrates the overall process for deploying software artifacts in a data center according to the implementation scheme. Figure 2B shows the layout of data center 265, which includes various data center entities. As shown in Figure 2B, artifact version mapping 225 identifies different versions of software targeted for release on different data center entities 275 of data center 265. Pipelines represent the deployment artifact flow through various environments of the data center. Software release management module 230 combines the information in pipeline 235 with artifact version mapping 225 to determine cloud platform-specific detailed pipelines 255 that map the appropriate versions of software artifacts on the data center entities according to artifact version mapping 225.
图3是示出根据一个实施方案的软件发布管理模块230的架构的框图。软件发布管理模块230包括解析模块310、管线生成器模块320、工件版本映射存储330、管线存储340和管线执行引擎360。其他实施方案可以包括比图3中本文所指示的模块更多、更少或不同的模块。Figure 3 is a block diagram illustrating the architecture of a software release management module 230 according to one embodiment. The software release management module 230 includes a parsing module 310, a pipeline generator module 320, an artifact version mapping store 330, a pipeline store 340, and a pipeline execution engine 360. Other embodiments may include more, fewer, or different modules than those indicated herein in Figure 3.
解析模块310解析各种类型的用户输入,包括数据中心的声明性规范、工件版本映射225和主管线235。解析模块310生成所处理的输入的数据结构和元数据表示,并将生成的数据结构和元数据表示提供给软件发布管理模块230的其他模块以便进一步处理。The parsing module 310 parses various types of user input, including declarative specifications for data centers, artifact version mappings 225, and main pipelines 235. The parsing module 310 generates data structures and metadata representations of the processed inputs and provides these representations to other modules within the software release management module 230 for further processing.
元数据存储340存储由软件发布管理模块230生成的数据中心的各种转换的元数据表示。如果在数据中心的当前版本中遇到问题,则可以使用转换的元数据表示执行回滚到先前版本。转换的元数据表示可以在转换过程的各个阶段用于验证、审计、治理等。Metadata store 340 stores metadata representations of various transformations in the data center generated by software release management module 230. If an issue is encountered in the current version of the data center, a rollback to a previous version can be performed using the metadata representation of the transformation. The metadata representation of the transformation can be used for verification, auditing, governance, etc., at various stages of the transformation process.
管线生成器模块320结合作为输入接收的工件版本映射来处理主管线,以生成用于目标云平台的详细管线。管线包括阶段,该阶段包括用于提供服务或部署应用的指令,用于根据工件版本映射针对云平台上的各种服务的部署软件发布的版本。工件版本映射存储330存储从用户接收的工件版本映射,并且管线存储340存储主管线以及由管线生成器模块320生成的管线。Pipeline generator module 320 processes main pipelines in conjunction with artifact version maps received as input to generate detailed pipelines for a target cloud platform. The pipeline includes stages containing instructions for providing services or deploying applications, and deployment software release versions for various services on the cloud platform based on the artifact version maps. Artifact version map store 330 stores artifact version maps received from the user, and pipeline store 340 stores the main pipelines as well as the pipelines generated by pipeline generator module 320.
管线执行引擎360执行由管线生成器模块320生成的详细管线。在一个实施方案中,管线执行引擎360是诸如SPINNAKER的系统,其执行用于发布/部署软件的管线。管线执行引擎360解析管线并在目标云计算平台上执行管线的每个阶段。Pipeline execution engine 360 executes the detailed pipeline generated by pipeline generator module 320. In one implementation, pipeline execution engine 360 is a system such as SPINNAKER that executes pipelines for publishing/deploying software. Pipeline execution engine 360 parses the pipeline and executes each stage of the pipeline on the target cloud computing platform.
基于云平台的数据中心生成Data center generation based on cloud platform
图4示出了根据一个实施方案的数据中心的声明性规范的实施例。声明性规范410包括多个数据中心实体。数据中心实体是数据中心实体类型的实例,并且每个数据中心实体类型可以有多个实例。数据中心实体的实施例包括数据中心、服务组、服务、团队、环境和模式。Figure 4 illustrates an embodiment of a declarative specification for a data center according to one implementation. The declarative specification 410 includes multiple data center entities. A data center entity is an instance of a data center entity type, and each data center entity type can have multiple instances. Embodiments of data center entities include data centers, service groups, services, teams, environments, and patterns.
声明性规范410包括各种类型的数据中心实体的定义,包括服务组、服务、团队、环境和模式。声明性规范包括数据中心的一个或多个实例。以下是对各种类型的数据中心实体及其实施例的描述。这些实施例是说明性的,显示了数据中心实体的一些属性。其他实施方案可以包括不同的属性,并且具有相同功能的属性可以被赋予与本文所指示的名称不同的名称。在一个实施方案中,使用符合预定义模式的分层对象(例如,JSON(Javascript对象符号))来指定声明性规范。Declarative specification 410 includes definitions for various types of data center entities, including service groups, services, teams, environments, and patterns. A declarative specification includes one or more instances of a data center. The following is a description of the various types of data center entities and their embodiments. These embodiments are illustrative and show some attributes of the data center entity. Other implementations may include different attributes, and attributes with the same functionality may be given names different from those indicated herein. In one implementation, a hierarchical object conforming to a predefined pattern (e.g., JSON (Javascript object notation)) is used to specify the declarative specification.
根据一个实施方案,服务组520表示由一个或多个计算系统提供的可以独立地构建和交付能力、特征和服务集。服务组也可以被称为逻辑服务组、功能单元或有界上下文。服务组520还可以被视为由一个或多个计算系统提供的内聚技术用例功能集的服务集。服务组520强制执行安全边界。服务组520定义修改的范围。因此,对实体的任何修改,例如由服务组520内的一个或多个计算系统提供的能力、特征或服务,可以根据需要或适合于服务组内的实体而传播,但是不传播到驻留在服务组520的有界定义之外的实体。数据中心可以包括多个服务组520。服务组定义指定属性,包括名称、描述、标识符、模式版本和服务集实例。服务组的实施例是区块链服务组,其包括用于提供区块链功能的服务集。类似地,安全服务组提供安全特征。用户界面服务组提供特定用户界面特征的功能。共享文档服务组提供跨用户共享文档的功能。类似地,可以有几个其他服务组。According to one implementation, service group 520 represents a set of capabilities, features, and services that can be independently built and delivered by one or more computing systems. A service group may also be referred to as a logical service group, functional unit, or bounded context. Service group 520 can also be viewed as a set of services containing a cohesive set of technical use case functions provided by one or more computing systems. Service group 520 enforces security boundaries. Service group 520 defines the scope of modifications. Therefore, any modifications to an entity, such as capabilities, features, or services provided by one or more computing systems within service group 520, may propagate as needed or suitable for the entities within the service group, but not to entities residing outside the bounded definition of service group 520. A data center may include multiple service groups 520. Service group definitions specify attributes, including name, description, identifier, schema version, and service set instance. An example of a service group is a blockchain service group, which includes a set of services for providing blockchain functionality. Similarly, a security service group provides security features. A user interface service group provides functionality for specific user interface features. A shared document service group provides functionality for sharing documents across users. Similarly, there may be several other service groups.
服务组支持规范的可重用性,以便对开发数据中心感兴趣的租户或用户拥有他们可以随时使用的服务组库。围绕服务组的服务的边界基于安全问题和网络问题等。服务组与用于执行与服务组的交互的协议相关联。在一个实施方案中,服务组提供API(应用程序编程接口)和实施这些API的服务的集合。此外,服务组是独立于基板的。服务组为服务组内的服务提供爆炸半径范围,使得服务组内的任何服务故障的影响仅限于服务组内的服务,而在服务组外的影响最小。Service groups support specification reusability, providing tenants or users interested in developing data centers with a library of service groups they can readily use. The boundaries of services surrounding a service group are based on security and network issues, among others. A service group is associated with protocols used to perform interactions with it. In one implementation, a service group provides an API (Application Programming Interface) and a collection of services that implement those APIs. Furthermore, service groups are independent of the substrate. Service groups provide an blast radius for services within the group, ensuring that the impact of any service failure within the group is limited to the services within the group, with minimal impact outside the group.
以下是服务组的规范的实施例。服务组指定表示服务组元数据的各种属性,并且包括服务组内的服务集。可能存在为服务组指定的其他类型的元数据,本文没有指示。The following is an example of a service group specification. A service group specifies various attributes representing the service group's metadata and includes the set of services within the service group. Other types of metadata may exist for service groups, which are not indicated herein.
如上面的实施例所示,服务组可以指定一组集群。集群表示一组计算节点,例如,一组服务器、一组虚拟机或一组容器(如KUBERNETES容器)。物理服务器可以运行多个容器,其中每个容器都有自己的文件系统、CPU、内存、进程空间等的份额。As illustrated in the examples above, a service group can specify a cluster. A cluster represents a group of compute nodes, such as a group of servers, a group of virtual machines, or a group of containers (such as Kubernetes containers). A physical server can run multiple containers, each with its own share of file system, CPU, memory, process space, etc.
该服务组指定服务集。服务组可以为服务指定集群,使得部署在云平台上的数据中心运行计算节点的集群,并且如果指定的映射包括在声明性规范中,则基于该指定的映射将该服务映射到集群。例如,在上面显示的服务组实施例中,服务实例serviceinstance0002被指定为在集群实例cluster1上运行。This service group specifies a set of services. A service group can specify a cluster for a service, enabling a cluster of compute nodes to run in a data center deployed on a cloud platform, and mapping the service to the cluster based on that specified mapping if the specified mapping is included in a declarative specification. For example, in the service group embodiment shown above, the service instance serviceinstance0002 is specified to run on the cluster instance cluster1.
服务组可以指定安全组,每个安全组指定允许彼此交互的服务集。安全组外的服务需要通过额外的认证才能与安全组内的服务通信。可替代地,安全组内的服务使用一种协议彼此交互,而安全组外的服务使用不同的协议,需要增强认证才能与安全组内的服务交互。因此,安全组指定了确定服务如何相互交互的策略。安全策略可以指定安全策略适用的一个或多个环境。例如,安全策略policy1可以应用于特定环境env1(例如,生产环境),并且另一安全策略policy2可以应用于另一环境env2(例如,开发环境)。可以为服务组类型或特定服务类型指定安全策略。Service groups can specify security groups, each specifying a set of services that are allowed to interact with each other. Services outside a security group require additional authentication to communicate with services within the security group. Alternatively, services within a security group may use one protocol to interact with each other, while services outside the security group may use a different protocol and require enhanced authentication to interact with services within the security group. Therefore, security groups specify the policies that determine how services interact with each other. Security policies can specify one or more environments to which a security policy applies. For example, security policy policy1 may apply to a specific environment env1 (e.g., a production environment), and another security policy policy policy2 may apply to another environment env2 (e.g., a development environment). Security policies can be specified for service group types or specific service types.
在实施方案中,安全策略基于各种属性指定用于过滤服务组的表达式,使得安全策略适用于所过滤的一组服务组。例如,安全策略可以指定IP(互联网协议)地址的列表,该IP地址是由所过滤的组标识的一组服务组的白名单,并且因此允许这些计算系统访问服务组或服务组内的特定的服务集。In the implementation, the security policy specifies expressions for filtering service groups based on various attributes, making the security policy applicable to the filtered set of service groups. For example, the security policy may specify a list of IP (Internet Protocol) addresses that are whitelisted as a set of service groups identified by the filtered groups, and thus allow these computing systems to access the service groups or specific sets of services within the service groups.
在实施方案中,安全策略可以为服务组指定一组源服务和一组目的地服务。针对特定服务的源服务指定允许与该特定服务连接的安全组之外的服务。特定服务的目的地服务指定该特定服务需要连接到的安全组之外的服务。在供应和部署期间,数据中心生成模块为云平台生成指令,该指令使用特定于云平台的特征和网络功能来实施特定网络策略,使得网络策略实施声明性规范中指定的安全策略。In the implementation scheme, a security policy can specify a set of source services and a set of destination services for a service group. The source services for a specific service specify services outside the security group that are allowed to connect to that specific service. The destination services for a specific service specify services outside the security group that that specific service needs to connect to. During provisioning and deployment, the data center generation module generates instructions for the cloud platform that use cloud platform-specific features and network functions to enforce specific network policies, causing the network policies to implement the security policies specified in the declarative specification.
被称为单元格的数据中心实体表示以垂直方式相互交互的服务集,并且可以通过单元格的附加实例或副本(即,该组服务的副本)进行扩展。创建单元格的多个实例允许系统扩展彼此交互的服务集。数据中心实例可以包括一个或多个单元格。每个单元格可以包括一个或多个服务。数据中心可以包括服务组或单元格的实例。A data center entity, referred to as a cell, represents a set of services that interact with each other vertically and can be expanded by additional instances or copies of the cell (i.e., copies of the group of services). Creating multiple instances of a cell allows the system to expand the set of services that interact with each other. A data center instance can include one or more cells. Each cell can include one or more services. A data center can include instances of service groups or cells.
服务定义指定服务(例如数据库服务、负载均衡器服务等)类型的元数据。元数据描述服务的各种属性,包括服务的名称、服务的描述、服务的文档的位置、与服务相关联的任何子服务、服务的所有者、与服务相关联的团队、指定该服务在构建时所依赖的其他服务的服务构建依赖关系、指定当该特定服务启动时应该运行的其他服务的服务启动依赖关系、授权的客户端、与服务相关联的DNS(域名服务器)名称、服务状态、对服务的支持级别等等。服务定义指定侦听端口属性,该属性指定服务可以侦听不同通信协议的端口,例如,服务可以侦听UDP协议的端口p1和TCP协议的端口p2。数据中心内的其他服务可以经由服务指定的端口与服务交互。A service definition specifies metadata for a service type (such as a database service, load balancer service, etc.). This metadata describes various attributes of the service, including the service name, description, location of the service's documentation, any associated sub-services, the service owner, the team associated with the service, service build dependencies specifying other services the service depends on during construction, service startup dependencies specifying other services that should run when the specific service starts, authorized clients, the DNS (Domain Name Server) name associated with the service, service status, support level for the service, and so on. The service definition also specifies the listening port attribute, which indicates the ports the service can listen on for different communication protocols. For example, the service can listen on port p1 for UDP and port p2 for TCP. Other services within the data center can interact with the service via the ports specified by the service.
服务定义指定属性出站访问,其指定了目的地端点(例如,外部URL(统一资源定位符)),该目的地端点指定服务需要访问指定的外部URL。在部署期间,数据中心生成模块确保云平台实施访问策略,从而为该服务类型的实例提供对外部URL的请求访问。The service definition specifies outbound access attributes, which specify the destination endpoint (e.g., an external URL (Uniform Resource Locator)) that the service needs to access a specified external URL. During deployment, the datacenter generation module ensures that the cloud platform enforces access policies to provide instances of this service type with the ability to request access to the external URL.
出站访问规范可以识别出站访问适用的服务的一个或多个环境类型。例如,一组端点S1的出站访问可以应用于特定环境env1(例如,生产环境),并且一组端点S2的出站访问可以应用于另一环境env2(例如,开发环境)。Outbound access specifications can identify one or more environment types for which outbound access applies. For example, outbound access for a set of endpoints S1 can be applied to a specific environment env1 (e.g., production environment), and outbound access for a set of endpoints S2 can be applied to another environment env2 (e.g., development environment).
以下是服务定义的实施例。The following is an example of a service definition.
团队定义450包括团队成员名称和团队的其他属性,例如名称、电子邮件、通信信道等。以下是团队定义的实施例。服务可以与一个或多个负责对该服务进行修改的团队相关联。因此,对该服务所做的任何修改都得到团队的批准。被部署到云平台之后,服务可以与负责维护服务的团队相关联。团队可以与服务组相关联,并且相应地与该服务组的所有服务相关联。例如,团队批准对服务组(例如,作为服务组一部分的服务)的任何更改。团队可以与数据中心相关联,并且相应地与数据中心内的所有服务组相关联。在数据中心级别指定的团队关联为数据中心内的所有服务组提供默认团队,并进一步为服务组内的所有服务提供默认团队。Team definition 450 includes team member names and other team attributes such as name, email, communication channel, etc. The following is an example of a team definition. A service can be associated with one or more teams responsible for modifying that service. Therefore, any modifications made to the service are approved by the team. After being deployed to a cloud platform, a service can be associated with a team responsible for maintaining the service. A team can be associated with a service group, and correspondingly with all services within that service group. For example, a team approves any changes to a service group (e.g., services that are part of the service group). A team can be associated with a data center, and correspondingly with all service groups within that data center. Team associations specified at the data center level provide a default team for all service groups within the data center, and further provide a default team for all services within the service group.
根据实施方案,在功能级别指定的团队关联覆盖在数据中心级别提供的团队关联。类似地,在服务级别指定的团队关联覆盖在服务组级别或数据中心级别指定的团队关联可能已经提供的默认值。团队可以决定如何为与该团队相关联的数据中心实体采取某些动作。团队关联还确定云平台上的账户数量,该账户针对由编译器生成云平台的数据中心的最终元数据表示以及针对在云平台上供应和部署数据中心而创建。数据中心生成模块210在云平台中创建一个或多个用户账户,并向团队成员提供对用户账户的访问。因此,允许团队成员执行与团队相关联的数据中心实体相关联的特定动作,例如,在部署数据中心实体时对数据中心实体进行或批准结构改变或维护数据中心实体,包括可以为数据中心实体识别的调试和测试问题。According to the implementation scheme, team associations specified at the functional level override team associations provided at the data center level. Similarly, team associations specified at the service level override default values that may already be provided for team associations specified at the service group level or data center level. Teams can decide how to take certain actions for data center entities associated with them. Team associations also determine the number of accounts on the cloud platform created for the final metadata representation of the data center generated by the compiler for the cloud platform, as well as for provisioning and deploying the data center on the cloud platform. The data center generation module 210 creates one or more user accounts in the cloud platform and provides team members with access to these user accounts. This allows team members to perform specific actions associated with the data center entities associated with their team, such as making or approving structural changes to or maintaining the data center entity during deployment, including debugging and testing issues that can be identified for the data center entity.
传统技术在整个设计过程中将同一团队与数据中心相关联,从而导致组织结构对数据中心或服务组的设计产生影响。实施方案将团队定义与定义数据中心实体的构造分离,从而减少团队对数据中心实体的设计和架构的影响。Traditional techniques associate the same team with the data center throughout the design process, resulting in organizational structure influencing the design of the data center or service group. The implementation plan separates team definition from defining the construction of the data center entity, thereby reducing the team's influence on the design and architecture of the data center entity.
环境定义460指定由数据中心表示的系统环境的类型,例如,开发环境、模拟环境、测试环境或生产环境。模式定义470指定了指定特定数据中心实体定义的语法的模式。模式定义470用于验证各种数据中心实体定义。数据中心生成模块基于环境确定在特定于云平台的元数据表示中的数据中心的安全策略。例如,特定的一组安全策略可以适用于环境env1,并且不同的一组安全策略可以适用于环境env2。例如,与开发环境相比,安全策略在生产环境中提供了多得多的受限制的访问。安全策略可以指定为特定目的而允许安全令牌存在的时间长度。例如,在开发环境中可以允许长的访问令牌(例如,一周时长的访问令牌),但是在生产环境中使用的访问令牌的使用寿命要小得多(例如,几个小时)。访问令牌可以允许用户或服务访问特定的云平台资源。Environment definition 460 specifies the type of system environment represented by the data center, such as a development environment, simulation environment, test environment, or production environment. Schema definition 470 specifies a schema for the syntax of defining a particular data center entity. Schema definition 470 is used to validate various data center entity definitions. The data center generation module determines the security policy of the data center in the cloud platform-specific metadata representation based on the environment. For example, a specific set of security policies may apply to environment env1, and a different set of security policies may apply to environment env2. For example, the security policy in the production environment provides much more restricted access compared to the development environment. Security policies can specify the length of time a security token is allowed to exist for a specific purpose. For example, long access tokens (e.g., access tokens lasting one week) may be allowed in the development environment, but access tokens used in the production environment have a much shorter lifespan (e.g., a few hours). Access tokens can allow users or services to access specific cloud platform resources.
数据中心定义420指定数据中心实例的属性和部件。声明性规范可以指定多个数据中心实例。数据中心定义420指定包括名称、描述、环境类型、一组服务组、团队、数据中心的域名服务器等的属性。数据中心定义可以指定模式定义,并且针对指定的模式定义来验证从数据中心定义生成的任何元数据表示。数据中心包括一组核心服务和功能,使其他服务能够在数据中心内发挥作用。数据中心的实例部署在特定的云平台中,并且可以与特定的环境类型(例如,开发、测试、模拟、生产等等)相关联。Datacenter definition 420 specifies the attributes and components of a datacenter instance. A declarative specification can specify multiple datacenter instances. Datacenter definition 420 specifies attributes including name, description, environment type, a set of service groups, teams, the datacenter's domain name servers, etc. A datacenter definition can specify a schema definition and validate any metadata representation generated from the datacenter definition against the specified schema definition. A datacenter includes a set of core services and functions that enable other services to function within the datacenter. Datacenter instances are deployed on a specific cloud platform and can be associated with specific environment types (e.g., development, testing, simulation, production, etc.).
以下是数据中心实例的定义。数据中心实例定义包括数据中心实例中包括的服务组的列表和其他属性,包括数据中心的环境、数据中心标识符、名称、表示地理区域的区域、与数据中心相关联的一个或多个团队以及模式版本。The following is the definition of a data center instance. A data center instance definition includes a list of service groups included in the data center instance and other attributes, including the data center environment, data center identifier, name, region representing the geographic area, one or more teams associated with the data center, and mode version.
图5示出了根据一个实施方案的基于声明性规范在云平台上创建的一些示例性数据中心。可以基于由数据中心生成模块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。服务组可以包括相同服务类型的服务的多个实例。Figure 5 illustrates some exemplary data centers created on a cloud platform according to a declarative specification based on one implementation scheme. Data centers 510 can be created based on declarative specifications processed by the data center generation module 210. As shown in Figure 5, multiple data centers can be configured within the cloud platform 120. Each data center 510 can correspond to tenant 115 of the multi-tenant system 110. Tenant 115 can create one or more data centers 510. Alternatively, data centers 510 can be created by any computing system. Each data center includes one or more service groups. For example, data center 510a includes service groups 520a and 520b, and data center 510b includes service group 520c. A data center can include multiple instances of a specific type of service group. Each service group includes a set of services. For example, service group 520a includes services 530a and 530b, service group 520b includes services 530a, 530b, and 530c, and service group 520c includes services 530e, 530f, and 530g. A service group can include multiple instances of services of the same service type.
数据中心生成模块220使用以下步骤基于声明性规范在云平台上创建数据中心。数据中心生成模块210接收数据中心的独立于云平台的声明性规范。独立于云平台的声明性规范可以用于多租户系统的租户或用于任何其他计算系统,例如在线系统。独立于云平台的声明性规范是使用云平台基础设施语言指定的。数据中心的独立于云平台的声明性规范配置为在多个云平台中的任何一个上生成数据中心。Data center generation module 220 uses the following steps to create a data center on a cloud platform based on a declarative specification. Data center generation module 210 receives a cloud platform-independent declarative specification for the data center. The cloud platform-independent declarative specification can be used by tenants in a multi-tenant system or by any other computing system, such as an online system. The cloud platform-independent declarative specification is specified using the cloud platform infrastructure language. The cloud platform-independent declarative specification of the data center is configured to generate a data center on any of multiple cloud platforms.
数据中心生成模块210接收标识用于基于独立于云平台的声明性规范创建数据中心的目标云平台的信息。目标云平台可以是多个云平台中的任何一个,例如,AWS、AZURE、GCP等等。数据中心生成模块210进一步接收与目标云平台连接的信息,例如,用于创建与目标云平台的连接的凭证。云平台也可以称为云计算平台。The data center generation module 210 receives information identifying the target cloud platform used to create a data center based on a declarative specification independent of the cloud platform. The target cloud platform can be any of several cloud platforms, such as AWS, Azure, GCP, etc. The data center generation module 210 further receives information related to the connection with the target cloud platform, such as credentials for creating a connection to the target cloud platform. The cloud platform can also be referred to as a cloud computing platform.
数据中心生成模块210编译独立于云平台的声明性规范,以生成用于在目标云计算平台上创建数据中心的特定于云平台的数据中心表示。例如,特定于云平台的数据中心表示可以指特定于目标云计算平台的用户账户、网络地址等。The data center generation module 210 compiles a cloud platform-independent declarative specification to generate a cloud platform-specific data center representation for creating a data center on the target cloud computing platform. For example, the cloud platform-specific data center representation can refer to user accounts, network addresses, etc., specific to the target cloud computing platform.
数据中心生成模块210发送特定于平台的数据中心表示以及用于在目标云计算平台上部署数据中心的指令。目标云计算平台执行指令以配置目标云计算平台的计算资源,以根据特定于平台的数据中心表示生成数据中心。数据中心生成模块210为用户提供对云计算平台配置的数据中心的计算资源的访问。例如,如果数据中心是为多租户系统的租户创建的,则向与租户相关联的用户提供对数据中心的访问。The data center generation module 210 sends a platform-specific data center representation and instructions for deploying the data center on the target cloud computing platform. The target cloud computing platform executes the instructions to configure its computing resources to generate the data center based on the platform-specific data center representation. The data center generation module 210 provides users with access to the computing resources of the data center configured on the cloud computing platform. For example, if the data center is created for a tenant in a multi-tenant system, access to the data center is provided to the users associated with that tenant.
图6是示出根据一个实施方案的基于声明性规范在云平台上生成数据中心的框图。数据中心生成模块210接收独立于云平台的声明性规范610作为输入。独立于云平台的声明性规范610可以是由用户逐步修改的声明性规范的版本。数据中心生成模块210处理独立于云平台的声明性规范610的特定版本。由于没有为任何特定的目标云平台指定独立于云平台的声明性规范610,因此数据中心生成模块210可以基于独立于云平台的声明性规范610在任何目标云平台上配置数据中心。Figure 6 is a block diagram illustrating the generation of a data center on a cloud platform based on a declarative specification according to one implementation. The data center generation module 210 receives a cloud platform-independent declarative specification 610 as input. The cloud platform-independent declarative specification 610 can be a version of the declarative specification that has been progressively modified by the user. The data center generation module 210 processes a specific version of the cloud platform-independent declarative specification 610. Since no cloud platform-independent declarative specification 610 is specified for any particular target cloud platform, the data center generation module 210 can configure a data center on any target cloud platform based on the cloud platform-independent declarative specification 610.
数据中心生成模块210处理独立于云平台的声明性规范610,以生成用于数据中心的独立于云平台的详细元数据表示620。独立于云平台的详细元数据表示620定义了在独立于云平台的声明性规范610中指定的数据中心实体的每个实例的详细信息。数据中心生成模块210为数据中心实体实例(例如,服务实例)创建唯一标识符。The data center generation module 210 processes the cloud platform-independent declarative specification 610 to generate a cloud platform-independent detailed metadata representation 620 for the data center. The cloud platform-independent detailed metadata representation 620 defines the details of each instance of the data center entity specified in the cloud platform-independent declarative specification 610. The data center generation module 210 creates unique identifiers for data center entity instances (e.g., service instances).
在实施方案中,独立于云平台的详细元数据表示620包括数据中心实体类型的实例的阵列,例如,特定服务组类型的服务组实例的阵列。每个服务组实例包括服务实例的阵列。服务实例可还包括被允许执行与服务实例相关联的某些动作的用户团队的详细信息。数据中心生成模块210在供应和部署期间使用团队的详细信息,例如,用于为服务实例创建用户账户并允许团队的成员访问用户账户。In the implementation, the cloud platform-independent detailed metadata representation 620 includes an array of instances of data center entity types, such as an array of service group instances of a specific service group type. Each service group instance includes an array of service instances. The service instances may also include details of user teams permitted to perform certain actions associated with the service instance. The data center generation module 210 uses these team details during provisioning and deployment, for example, to create user accounts for the service instances and allow team members to access those user accounts.
独立于云平台的详细元数据表示620包括数据中心实体的每个实例的属性。因此,扩展数据中心实体的每个实例的描述以包括所有详细信息。结果,数据中心的独立于云平台的详细元数据表示620可以明显大于独立于云平台的声明性规范610。例如,独立于云平台的声明性规范610可以是几千行规范,而独立于云平台的详细数据中心表示620可以是数百万行生成的代码。结果,数据中心生成模块210将独立于云平台的详细元数据表示620保持为不可变的,即,一旦该表示被最终确定,就不对该表示执行任何修改。例如,如果需要执行数据中心实体的任何更新、删除或添加,则在独立于云平台的声明性规范610上执行它们。The cloud-independent detailed metadata representation 620 includes attributes for each instance of the data center entity. Therefore, the description of each instance of the data center entity is expanded to include all detailed information. As a result, the cloud-independent detailed metadata representation 620 of the data center can be significantly larger than the cloud-independent declarative specification 610. For example, the cloud-independent declarative specification 610 can be a few thousand lines of specification, while the cloud-independent detailed data center representation 620 can be millions of lines of generated code. Consequently, the data center generation module 210 keeps the cloud-independent detailed metadata representation 620 immutable; that is, once the representation is finalized, no modifications are made to it. For example, if any updates, deletions, or additions to the data center entity need to be performed, they are performed on the cloud-independent declarative specification 610.
数据中心生成模块210接收预期在其上供应和部署数据中心的目标云平台,并生成数据中心的特定于云平台的详细元数据表示630。例如,数据中心生成模块210与目标云平台交互,以生成某些实体(或资源),例如,用户账户、虚拟私有云(VPC)和网络资源,例如VPC上的子网、云平台中实体之间的各种连接等等。数据中心生成模块210接收在目标云平台中创建的资源的资源标识符,例如,用户账户名称、VPC ID等,并将这些并入独立于云平台的详细元数据表示620中,以获得数据中心的特定于云平台的元数据表示630。在一个实施方案中,数据中心生成模块210为服务组和服务的给定组合,在云平台上为每个团队创建一个唯一的用户账户。用户账户由团队使用来执行与该服务组的特定服务的交互,例如,用于调试、用于接收警报等。The data center generation module 210 receives a target cloud platform on which a data center is intended to be provisioned and deployed, and generates a cloud platform-specific detailed metadata representation 630 for the data center. For example, the data center generation module 210 interacts with the target cloud platform to generate certain entities (or resources), such as user accounts, Virtual Private Clouds (VPCs), and network resources, such as subnets on the VPC, various connections between entities in the cloud platform, etc. The data center generation module 210 receives resource identifiers of the resources created in the target cloud platform, such as user account names, VPC IDs, etc., and incorporates these into a cloud platform-independent detailed metadata representation 620 to obtain a cloud platform-specific metadata representation 630 for the data center. In one implementation, the data center generation module 210 creates a unique user account on the cloud platform for each team for a given combination of service groups and services. The user account is used by the team to perform interactions with specific services of that service group, such as for debugging, for receiving alerts, etc.
目标云平台可以执行几个步骤来处理特定于云平台的详细元数据表示630。例如,独立于云平台的声明性规范可以指定服务之间允许的交互。这些允许的交互在特定于云平台的详细元数据表示630中被指定,并且被实施为云平台的网络策略。云平台可进一步创建安全组来实施网络策略,以根据声明性规范实施数据中心。The target cloud platform can perform several steps to process the cloud platform-specific detailed metadata representation 630. For example, a cloud platform-independent declarative specification can specify permitted interactions between services. These permitted interactions are specified in the cloud platform-specific detailed metadata representation 630 and enforced as cloud platform network policies. The cloud platform can further create security groups to enforce network policies to enforce the data center according to the declarative specification.
独立于云平台的声明性规范指定了服务之间的依赖关系,例如,每个服务的启动依赖关系列出了启动特定服务时应该运行的所有服务。数据中心生成模块220生成数据中心的特定于云平台的详细元数据表示,其包括描述这些依赖关系的信息,使得用于部署服务的指令确保云平台以依赖关系指定的顺序启动服务,使得对于每个服务,当启动该服务时,需要在该服务之前启动的服务正在运行。因此,服务之间的依赖关系表示依赖关系图,并且云平台以基于依赖关系图确定的顺序开始运行服务,使得如果服务A依赖于服务B,则服务B在服务A启动之前启动。Declarative specifications, independent of the cloud platform, define the dependencies between services. For example, startup dependencies for each service list all services that should run when a specific service is started. The data center generation module 220 generates a cloud platform-specific, detailed metadata representation of the data center, including information describing these dependencies. This ensures that instructions for deploying services guarantee that the cloud platform starts services in the order specified by the dependencies, and that for each service, services that need to be started before it are running when that service is started. Therefore, the dependencies between services represent a dependency graph, and the cloud platform starts services in the order determined by the dependency graph, such that if service A depends on service B, service B starts before service A.
数据中心生成模块220在用户账户之间创建信任关系,该信任关系允许服务经由安全通信信道访问其他服务。这些信任关系是使用基于声明性规范(例如,基于为服务指定的出站访问属性)生成的基板特定指令生成的。数据中心生成模块220向云平台发送指令,以基于控制服务组和服务之间的交互和访问的特定于云平台的机制来创建网络策略,例如,如声明性规范的结构所指定的,诸如出站访问、安全组、安全策略等。The data center generation module 220 creates trust relationships between user accounts, allowing services to access other services via secure communication channels. These trust relationships are generated using substrate-specific instructions based on declarative specifications (e.g., based on outbound access attributes specified for services). The data center generation module 220 sends instructions to the cloud platform to create network policies based on cloud platform-specific mechanisms that control interactions and access between service groups and services, such as outbound access, security groups, and security policies as specified in the structure of the declarative specifications.
数据中心生成模块210在为其生成表示的特定目标云平台上部署特定于云平台的元数据表示630。数据中心生成模块210可以使用生成的元数据表示来执行各种验证,包括策略验证、格式验证等等。The data center generation module 210 deploys a cloud platform-specific metadata representation 630 on the specific target cloud platform for which it generates the representation. The data center generation module 210 can use the generated metadata representation to perform various validations, including policy validation, format validation, and so on.
独立于云平台的声明性规范610可以被称为声明的数据中心表示,独立于云平台的详细元数据表示620被称为数据中心的派生元数据表示,以及特定于云平台的元数据表示630被称为数据中心的水合元数据表示。The cloud platform-independent declarative specification 610 can be referred to as the declarative data center representation, the cloud platform-independent detailed metadata representation 620 can be referred to as the data center derived metadata representation, and the cloud platform-specific metadata representation 630 can be referred to as the data center hydrated metadata representation.
用于在数据中心上部署软件工件的整体过程The overall process for deploying software artifacts on a data center
图7示出了根据实施方案的用于生成用于在云平台上配置的数据中心上部署软件工件的管线的整体过程。数据中心生成模块在目标云平台上生成710一个或多个数据中心。每个数据中心都是根据独立于云平台的声明性规范生成的,并且具有数据中心实体的层级。Figure 7 illustrates the overall process, according to the implementation scheme, for generating a pipeline for deploying software artifacts on data centers configured on a cloud platform. The data center generation module generates one or more data centers on the target cloud platform. Each data center is generated according to a declarative specification independent of the cloud platform and has a hierarchy of data center entities.
软件发布管理模块230生成720独立于云平台的主管线。在一个实施方案中,独立于云平台的主管线包括对应于数据中心的环境(例如,开发环境、测试环境、金丝雀环境和生产环境)的阶段。主管线组成了跨各种环境(如开发环境、测试环境、模拟环境或生产环境)的渐进和/或有条件部署的序列。可以通过传递软件工件的映像来触发主管线,并且包括在开发类型的环境中部署构建的阶段或指令。构建的软件工件被有条件地推进至一个或多个测试环境,然后是一个或多个金丝雀环境,最后被部署到生产环境。可以由用户(例如,服务所有者)定制主管线,以表示跨环境的特定编排。可以定制主管线以捕获用于从一个阶段移动到下一个阶段的特定推进标准。例如,多租户系统的不同租户可以以不同的方式定制主管线。在实施方案中,主管线默认地将软件的最新版本用于服务的软件工件,并跨各种环境构建和部署该版本。用户可以使用工件版本映射来确保软件工件的特定版本部署在特定的数据中心实体上。The software release management module 230 generates 720 cloud-independent pipelines. In one implementation, the cloud-independent pipeline includes phases corresponding to data center environments (e.g., development, testing, canary, and production environments). The pipelines constitute a sequence of progressive and/or conditional deployments across various environments (e.g., development, testing, simulation, or production). A pipeline can be triggered by passing an image of a software artifact and includes phases or instructions for deploying a build in a development-type environment. The built software artifact is conditionally advanced to one or more testing environments, then one or more canary environments, and finally deployed to the production environment. The pipeline can be customized by users (e.g., service owners) to represent specific orchestrations across environments. The pipeline can be customized to capture specific advancement criteria for moving from one phase to the next. For example, different tenants in a multi-tenant system can customize the pipelines differently. In one implementation, the pipeline defaults to using the latest version of the software for the service's software artifacts and builds and deploys that version across various environments. Users can use artifact version mapping to ensure that a specific version of a software artifact is deployed on a specific data center entity.
在实施方案中,部署在数据中心中的每个服务具有由数据中心的声明性规范定义的数据中心实体生成的独立于云平台的主管线,例如,用于数据中心实例的主管线、用于服务组的主管线、用于单元格的主管线、用于服务的主管线等等。可以在传递软件工件的映像时触发主管线。主管线可以实施服务所有者控制的连续部署。主管线可以实施数据中心实例所有者拥有的或发布所有者拥有的按需部署。In the implementation, each service deployed in the data center has a cloud platform-independent supervisor line generated by the data center entity as defined by the data center's declarative specification. Examples include supervisor lines for data center instances, supervisor lines for service groups, supervisor lines for cells, supervisor lines for services, and so on. Supervisor lines can be triggered when delivering images of software artifacts. Supervisor lines can implement continuous deployments controlled by the service owner. Supervisor lines can also implement on-demand deployments owned by the data center instance owner or the publishing owner.
可以由用户(例如,由在数据中心上部署服务的多租户系统的租户)定制主管线的某些部分。例如,可以由租户定制推进决策管线,以确定执行哪些测试用例以及阈值是多少。软件发布管理模块230接收730对用于将软件工件从独立于云平台的主管线的一个阶段推进至另一个阶段的逻辑的定制。Certain parts of the pipeline can be customized by users (e.g., by tenants of a multi-tenant system deploying services on a data center). For example, tenants can customize the advance decision pipeline to determine which test cases to execute and what the thresholds are. The software release management module 230 receives 730 customizations of the logic used to advance software artifacts from one stage of the pipeline to another, independent of the cloud platform.
软件发布管理模块230编译740独立于云平台的主管线,以生成特定于云平台的详细部署管线,该详细部署管线特定于如由数据中心的独立于云平台的声明性规范所指定的每个数据中心的数据中心实体的层级。The software release management module 230 compiles 740 cloud platform-independent main pipelines to generate cloud platform-specific detailed deployment pipelines, which are specific to the tiers of data center entities for each data center as specified by the cloud platform-independent declarative specification of the data center.
软件发布管理模块230进一步接收750用于发布部署在数据中心上的服务的一个或多个特征的代码。软件发布管理模块230执行760特定于云平台的详细部署管线,以基于接收到的代码部署软件工件。The software release management module 230 further receives 750 code for publishing one or more features of a service deployed on a data center. The software release management module 230 executes 760 a cloud platform-specific detailed deployment pipeline to deploy software artifacts based on the received code.
图8示出了根据实施方案的示例性主管线800。主管线代表阶段序列,这些阶段代表跨各种数据中心环境的渐进式条件部署。图8显示了数据中心的包括开发环境、测试环境、金丝雀环境和生产环境的不同环境的阶段。每个阶段进一步表示针对该阶段执行的管线。因此,主管线800包括开发环境管线810,该开发环境管线馈送到测试环境管线820,该测试环境管线馈送到金丝雀环境管线830,该金丝雀环境管线馈送到生产环境管线840。Figure 8 illustrates an exemplary pipeline 800 according to an implementation scheme. The pipeline represents a sequence of phases that represent progressive conditional deployments across various data center environments. Figure 8 shows the phases of different environments in a data center, including development, testing, canary, and production environments. Each phase further represents the pipeline executed for that phase. Thus, pipeline 800 includes a development environment pipeline 810 that feeds to a testing environment pipeline 820, a testing environment pipeline that feeds to a canary environment pipeline 830, and a canary environment pipeline that feeds to a production environment pipeline 840.
每个阶段的管线是包括较低级别管线的分层管线。例如,取决于在数据中心的声明性规范中指定为具有开发环境的数据中心的数量,开发环境管线810包括馈送到数据中心管线D11、D12、...的开发主管线。Each stage of the pipeline is a hierarchical pipeline that includes lower-level pipelines. For example, depending on the number of data centers specified as having development environments in the data center's declarative specification, the development environment pipeline 810 includes main development pipelines that feed to data center pipelines D11, D12, ...
取决于在数据中心的声明性规范中指定为具有测试环境的数据中心的数量,测试环境管线820包括馈送到数据中心管线D21、D22、...的测试主管线。Depending on the number of data centers specified as having a test environment in the data center's declarative specification, the test environment pipeline 820 includes main test pipelines that feed to the data center pipelines D21, D22, ...
取决于在数据中心的声明性规范中指定为具有金丝雀环境的数据中心的数量,金丝雀环境管线820包括馈送到数据中心管线D31、D32、...的金丝雀主管线。Depending on the number of data centers specified as having a canary environment in the data center's declarative specification, the canary environment pipeline 820 includes canary main pipelines feeding into data center pipelines D31, D32, ...
取决于在数据中心的声明性规范中指定为具有测试环境的数据中心的数量,生产环境管线820包括馈送到数据中心管线D21、D22、...的生产主管线。Depending on the number of data centers specified as having a test environment in the data center's declarative specification, the production environment pipeline 820 includes the main production pipelines that feed to the data center pipelines D21, D22, ...
每个环境管线810、820、830分别包括推进决策管线815a、815b、815c。由推进决策管线815收集环境管线的数据中心管线的输出,推进决策管线确定软件工件是否准备好推进至下一阶段。推进决策管线815可以基于数据中心获得的测试用例结果来确定服务的软件工件是否被推进至下一阶段。例如,如果通过了超过阈值测试用例,则推进决策管线815将软件工件推进至下一阶段。最后一个环境阶段,例如,生产环境管线可能没有推进决策管线,因为没有软件工件需要被推进至的后续阶段。如图8中所示,开发环境管线的推进决策管线815a确定是否将软件工件从开发阶段推进至测试阶段;测试环境管线的推进决策管线815b确定是否将软件工件从测试阶段推进至金丝雀阶段,金丝雀环境管线的推进决策管线815c确定是否将软件工件从金丝雀阶段推进至生产阶段。Each environment pipeline 810, 820, and 830 includes advancement decision pipelines 815a, 815b, and 815c, respectively. Advancement decision pipeline 815 collects the output from the data center pipeline of the environment pipelines and determines whether the software artifact is ready to advance to the next stage. Advancement decision pipeline 815 can determine whether the service's software artifact should be advanced to the next stage based on test case results obtained from the data center. For example, if more than a threshold of test cases pass, advancement decision pipeline 815 advances the software artifact to the next stage. The last environment stage, such as the production environment pipeline, may not have an advancement decision pipeline because there is no subsequent stage to which the software artifact needs to be advanced. As shown in Figure 8, advancement decision pipeline 815a of the development environment pipeline determines whether to advance the software artifact from the development stage to the testing stage; advancement decision pipeline 815b of the testing environment pipeline determines whether to advance the software artifact from the testing stage to the canary stage; and advancement decision pipeline 815c of the canary environment pipeline determines whether to advance the software artifact from the canary stage to the production stage.
主管线包括多个管线,例如,用于供应目标云平台的资源的供应管线和用于在数据中心实体上部署软件工件的部署管线。每个管线包括阶段的序列,每个阶段代表目标云平台需要执行的一个或多个动作,以供应和部署数据中心。数据中心生成模块210生成用于在数据中心实体上部署软件工件版本的详细管线。The main pipeline comprises multiple pipelines, such as a provisioning pipeline for provisioning resources to the target cloud platform and a deployment pipeline for deploying software artifacts on the data center entity. Each pipeline includes a sequence of stages, each stage representing one or more actions that the target cloud platform needs to perform to provision and deploy the data center. The data center generation module 210 generates a detailed pipeline for deploying versions of software artifacts on the data center entity.
在实施方案中,管线生成器模块320使用包括变量的管线模板生成详细的管线。通过提供管线中变量的特定值,将管线模板转换为管线。从模板生成管线的过程被称为管线模板的水合。管线模板包含模板表达式,其用作部署中使用的实际值的占位符。例如,模板表达式可以被目标特定的参数值或表达式替换。可以通过水合不同目标的管线模板来生成多个管线实例。模板变量表示可以用给定目标的特定值替换的参数,以生成特定于该目标的管线实例。例如,在水合期间,模板变量“账户_id”可以被替换为账户_id的实际值,例如,“12345”。In the implementation, the pipeline generator module 320 generates detailed pipelines using a pipeline template that includes variables. The pipeline template is converted into a pipeline by providing specific values for the variables in the pipeline. The process of generating pipelines from a template is called pipeline template hydration. A pipeline template contains template expressions that serve as placeholders for the actual values used in the deployment. For example, a template expression can be replaced by a target-specific parameter value or expression. Multiple pipeline instances can be generated by hydrating pipeline templates for different targets. Template variables represent parameters that can be replaced with specific values for a given target to generate target-specific pipeline instances. For example, during hydration, the template variable "account_id" can be replaced with the actual value of account_id, such as "12345".
在一个实施方案中,管线生成器模块320基于数据中心的数据中心实体的层级以层级的方式生成管线。例如,数据中心包括不同类型的数据中心实体,包括数据中心、服务组、服务等等。数据中心实体可以包括一个或多个子数据中心实体。例如,数据中心包括一个或多个服务组作为子数据中心实体。服务组包括一个或多个服务作为子数据中心实体。因此,数据中心生成模块210从层级级别的数据中心实体开始,并生成低于该级别的数据中心实体的管线。例如,管线生成器模块320从数据中心级别开始,并为数据中心内的服务组生成管线。对于每个服务组,管线生成器模块320为服务组内的服务生成管线。In one implementation, the pipeline generator module 320 generates pipelines hierarchically based on the hierarchy of data center entities. For example, a data center includes different types of data center entities, including data centers, service groups, services, etc. A data center entity may include one or more sub-data center entities. For example, a data center includes one or more service groups as sub-data center entities. A service group includes one or more services as sub-data center entities. Therefore, the data center generation module 210 starts with data center entities at a hierarchical level and generates pipelines for data center entities below that level. For example, the pipeline generator module 320 starts at the data center level and generates pipelines for service groups within the data center. For each service group, the pipeline generator module 320 generates pipelines for the services within the service group.
根据一个实施方案的用于执行管线的过程如下。软件发布部署模块230接收在目标云平台中的一组数据中心实体上部署软件工件的请求。软件发布部署模块230为一个或多个数据中心执行主管线。软件发布部署模块230针对每个数据中心的每个服务组执行聚合管线。聚合管线包括用于服务组内的服务的管线。对于每个服务组中的每个服务,通过执行管线的所有阶段来执行管线。供应管线的执行导致为服务提供资源,并且部署管线导致在目标云平台中部署服务。According to one implementation, the process for executing a pipeline is as follows: Software deployment module 230 receives a request to deploy software artifacts on a set of data center entities in a target cloud platform. Software deployment module 230 executes a pipeline for one or more data centers. Software deployment module 230 executes an aggregate pipeline for each service group in each data center. The aggregate pipeline includes pipelines for services within the service group. For each service in each service group, the pipeline is executed through all stages of the pipeline execution. Execution of the provisioning pipeline results in the provisioning of resources to the service, and deployment pipeline results in the deployment of the service in the target cloud platform.
图9示出了根据实施方案的云平台上的主管线的环境的阶段执行的整体过程。可以由每个环境管线810、820、830执行步骤910、920、930、940和950。生产环境管线3可以仅执行步骤910和920。可以针对使用清单文件指定的一个服务或多个服务来执行图9中所示的步骤。Figure 9 illustrates the overall process of phased execution of the environment in the main pipeline on the cloud platform according to the implementation scheme. Steps 910, 920, 930, 940, and 950 can be performed by each environment pipeline 810, 820, and 830. Production environment pipeline 3 can perform only steps 910 and 920. The steps shown in Figure 9 can be performed for one or more services specified using the manifest file.
用于环境E的环境管线包括用于在一组数据中心实体(例如,被指定为具有环境E的一组数据中心实体)上部署910软件的指令。在实施方案中,通过编译服务的源代码来生成软件工件。可以从版本控制软件获得源代码。该组数据中心实体可以包括数据中心实例、服务组、单元格、服务或这些的任意组合。The environment pipeline for environment E includes instructions for deploying the 910 software on a set of data center entities (e.g., a set of data center entities designated as having environment E). In an implementation, software artifacts are generated by compiling the source code of the services. The source code can be obtained from version control software. The set of data center entities may include data center instances, service groups, cells, services, or any combination thereof.
用于环境E的环境管线还包括用于运行920测试的指令,该测试用于测试一组数据中心实体上部署的软件工件。用于环境E的环境管线还包括用于例如使用推进决策管线815对照推进标准来评估930测试结果的指令。如果不满足推进标准,则可以使用修订的软件工件来重复步骤910、920、930和940,该修订的软件工件例如是从源代码生成的软件工件,该软件工件包括对在测试920期间识别的某些缺陷的修复。用于环境E的环境管线还包括用于在满足推进标准的情况下前进950到下一阶段的指令。The environment pipeline for Environment E also includes instructions for running Test 920, which tests software artifacts deployed on a set of data center entities. The environment pipeline for Environment E also includes instructions for evaluating the results of Test 930 against advancement criteria, for example, using Advancement Decision Pipeline 815. If the advancement criteria are not met, steps 910, 920, 930, and 940 can be repeated using revised software artifacts, such as those generated from source code, which include fixes for certain defects identified during Test 920. The environment pipeline for Environment E also includes instructions for advancing to the next stage, 950, if the advancement criteria are met.
在实施方案中,主管线包括管线的层级。该层级包括多个级别,并且特定级别的管线包括下一个较低级别的管线作为子管线。例如,在层级的最高级,主管线包括发布主管线,其部署与产品相关的服务集。下一级别的层级包括服务主管线,其表示跨各种环境特定服务的所有部署。下一级别的层级可以包括服务组主管线,然后是服务主管线。In the implementation, the pipeline includes a hierarchy. This hierarchy comprises multiple levels, and a particular level of pipeline includes the next lower level's pipeline as a sub-pipeline. For example, at the highest level of the hierarchy, the pipeline includes the release pipeline, which deploys a set of services associated with the product. The next level of the hierarchy includes the service pipeline, which represents all deployments of a specific service across various environments. The next level of the hierarchy may include the service group pipeline, followed by the service pipeline.
图10示出了根据实施方案的示例性主管线。主管线是分层管线,其中管线的每个阶段可以包括具有用于执行该阶段的详细指令的管线。主管线层级可以镜像数据中心层级。例如,主管线的顶级代表不同环境的阶段序列。每个环境可以包括一个或多个用于数据中心实例的管线或用于其他类型的数据中心实体的管线。数据中心实例管线1010可以包括服务组管线1020。每个服务组管线1020可以包括一个或多个服务管线1030。数据中心实例管线1010可以包括单元格管线1025,每个单元格管线1025包括一个或多个服务管线1030。服务管线1030可以包括阶段,每个阶段代表这样的管线,该管线代表用于为特定环境部署服务的指令。层级中的最低级别管线或叶级管线被称为单元管线,并且可以包括用于执行与服务相关的操作的详细的服务特定指令。例如,服务的部署可以包括部署前步骤、部署步骤、部署后步骤以及部署后测试和验证步骤。不是叶级管线并且具有一个或多个子管线的管线是编排子管线的执行的聚合管线。Figure 10 illustrates an exemplary pipeline according to an implementation scheme. A pipeline is a hierarchical pipeline, where each stage of the pipeline may include a pipeline with detailed instructions for performing that stage. The pipeline hierarchy may mirror a data center hierarchy. For example, the top level of the pipeline represents a sequence of stages for different environments. Each environment may include one or more pipelines for data center instances or for other types of data center entities. Data center instance pipeline 1010 may include service group pipeline 1020. Each service group pipeline 1020 may include one or more service pipelines 1030. Data center instance pipeline 1010 may include cell pipelines 1025, each cell pipeline 1025 including one or more service pipelines 1030. Service pipeline 1030 may include stages, each stage representing a pipeline that represents instructions for deploying a service for a specific environment. The lowest-level pipeline or leaf-level pipeline in the hierarchy is called a unit pipeline and may include detailed service-specific instructions for performing service-related operations. For example, service deployment may include pre-deployment steps, deployment steps, post-deployment steps, and post-deployment testing and verification steps. A pipeline that is not a leaf-level pipeline and has one or more sub-pipelines is an aggregate pipeline that performs the arrangement of sub-pipelines.
可以由发生的拉取请求驱动主管线,其发生软件的版本控制系统接收用于考虑提交给外部存储库以包含在项目的主存储库中的更改的请求。因此,当接收到拉取请求时,自动触发主管线,并且基于接收到了请求的最新软件版本来部署软件工件。主管线基于拉取请求执行软件工件的持续交付。例如,通过使用部署模块210的应用编程接口(API)调用请求,可以基于按需方式来驱动主管线。可以为任一组服务和使用API指定的给定服务的任何版本,请求基于主管线的按需部署。可以调用主管线来请求从当前版本回滚到先前版本,或者从当前部署的版本前滚到更新的版本。A pipeline can be driven by pull requests, which occur when the software's version control system receives requests to consider committing changes to an external repository for inclusion in the project's main repository. Therefore, when a pull request is received, a pipeline is automatically triggered, and software artifacts are deployed based on the latest software version that received the request. The pipeline performs continuous delivery of software artifacts based on pull requests. For example, a pipeline can be driven on an on-demand basis by calling requests using the application programming interface (API) of deployment module 210. On-demand deployment based on a pipeline can be requested for any set of services and any version of a given service specified using the API. A pipeline can be invoked to request a rollback from the current version to a previous version, or a rollforward from the currently deployed version to a newer version.
在实施方案中,部署模块210为每个服务创建服务主管线。当接收到对软件的存储库的拉取请求时,就会触发这些管线。部署模块210从用于特定服务的用户接收管线模板。这些管线模板包括用于对特定服务进行测试、验证、构建等的详细指令。数据中心生成模块220接收用于一个或多个数据中心的独立于云平台的声明性规范。数据中心生成模块220根据接收到的独立于云平台的声明性规范生成(或配置)数据中心。部署模块210接收推进决策815管线。推进决策815管线被并入到整体主管线中。In the implementation, deployment module 210 creates service pipelines for each service. These pipelines are triggered when a pull request for the software repository is received. Deployment module 210 receives pipeline templates from users for specific services. These pipeline templates include detailed instructions for testing, validating, building, etc., for specific services. Data center generation module 220 receives cloud platform-independent declarative specifications for one or more data centers. Data center generation module 220 generates (or configures) data centers based on the received cloud platform-independent declarative specifications. Deployment module 210 receives the Advancement Decision 815 pipeline. The Advancement Decision 815 pipeline is incorporated into the overall pipeline.
管线生成器从模板针对每个数据中心创建所有管线,并经由主管线以分层方式组合它们,例如,如图10中所示。在实施方案中,管线生成器生成用于各个服务的服务管线;管线生成器生成单元格主管线以调用服务管线;管线生成器生成服务组主管线以调用单元格主管线;管线生成器生成数据中心实例主管线以调用服务组管线;管线生成器生成服务主管线以调用数据中心实例主管线。The pipeline generator creates all pipelines for each data center from a template and combines them hierarchically via main pipelines, as shown in Figure 10. In the implementation, the pipeline generator generates service pipelines for each service; the pipeline generator generates cell main pipelines to invoke service pipelines; the pipeline generator generates service group main pipelines to invoke cell main pipelines; the pipeline generator generates data center instance main pipelines to invoke service group pipelines; and the pipeline generator generates service main pipelines to invoke data center instance main pipelines.
以下是显示了各个阶段的主管线的片段。每个阶段可以指定属性,包括阶段名称、管线类型、阶段类型(例如,主部署管线或推进管线)、先前阶段等等。The following is a snippet showing the pipeline for each stage. Each stage can specify attributes, including stage name, pipeline type, stage type (e.g., main deployment pipeline or advance pipeline), previous stage, and so on.
如审查主管线中所示,第一阶段是工件版本映射。下一阶段是用于部署到开发环境的主部署管线。下一阶段是用于确定是否可以将软件工件推进至下一阶段的推进管线。下一阶段是用于部署到测试环境的主部署管线。下一阶段是用于确定是否可以将软件工件推进至下一阶段(即,模拟环境)的推进管线。As shown in the review pipeline, the first phase is artifact version mapping. The next phase is the main deployment pipeline for deployment to the development environment. The next phase is the advancement pipeline for determining whether the software artifact can be advanced to the next phase. The next phase is the main deployment pipeline for deployment to the test environment. The next phase is the advancement pipeline for determining whether the software artifact can be advanced to the next phase (i.e., the simulation environment).
软件工件版本映射Software artifact version mapping
在实施方案中,部署模块210接收将各种软件工件及其版本与数据中心实体相关联的工件版本映射。工件版本映射提供了需要为不同数据中心实体中的服务部署的软件工件的特定版本的声明性规范。每个数据中心实体可以基于其在如由数据中心的声明性规范所指定的数据中心层级中的位置而被唯一标识。例如,对于服务,软件库可以充当软件工件。软件工件可以具有多个版本,例如,V1、V2、V3等等。工件版本映射可以指定版本V1需要部署在数据中心实体C1和C2中,并且版本V2需要部署在数据中心实体C3和C4中。部署模块210生成主管线和指令,其确保如在工件版本映射中指定的那样,在数据中心实体中部署适当的软件工件版本。In the implementation, deployment module 210 receives an artifact version map that associates various software artifacts and their versions with data center entities. The artifact version map provides a declarative specification of the specific versions of the software artifacts that need to be deployed for services in different data center entities. Each data center entity can be uniquely identified based on its position in the data center hierarchy as specified by the data center's declarative specification. For example, for a service, a software library can act as a software artifact. Software artifacts can have multiple versions, such as V1, V2, V3, etc. The artifact version map can specify that version V1 needs to be deployed in data center entities C1 and C2, and version V2 needs to be deployed in data center entities C3 and C4. Deployment module 210 generates supervisor lines and instructions that ensure the appropriate software artifact versions are deployed in the data center entities as specified in the artifact version map.
在实施方案中,工件版本映射被指定为JSON(Javascript对象符号)文件、YAML文件或使用用于表示嵌套对象的任何其他语法的文件。工件版本映射可以包括与分布在数据中心的层级上的各种数据中心实体相关联的一组<服务>:<版本>密钥对。工件版本映射密钥对充当对应管线的白名单。如果在工件版本映射中没有包括一服务的密钥,那么在管线的执行期间,该服务的所有管线都被排除在外。不同的工件版本映射可以应用于相同的主管线,导致在主管线的执行期间包括/排除不同的服务。In the implementation, artifact version mappings are specified as JSON (JavaScript Object Notation) files, YAML files, or files using any other syntax for representing nested objects. Artifact version mappings may include a set of <service>:<version> key pairs associated with various data center entities distributed across a data center hierarchy. The artifact version mapping key pairs act as a whitelist for corresponding pipelines. If a service's key is not included in the artifact version mapping, then all pipelines for that service are excluded during pipeline execution. Different artifact version mappings can be applied to the same main pipeline, resulting in different services being included/excluded during pipeline execution.
以下是示例性工件版本映射。工件版本映射使用属性“环境_类型”指定环境类型。在以下的实施例中,指定了环境类型开发。环境类型可以包括一个或多个数据中心实例;数据中心实例可以包括一个或多个服务组,服务组可以包括一个或多个服务。在以下的实施例中,软件工件名称被指定为library1,版本被指定为version1,并且与服务实例instance001相关联。然而,软件工件名称和版本可以与层级中的任何级别的数据中心实体相关联。例如,对于指定的软件工件名称和版本或服务组,软件工件名称和版本适用于服务组内的所有服务,除非软件工件名称和版本被针对服务组内的特定服务实例指定的软件工件名称和版本的不同值覆盖。The following is an example artifact version mapping. The artifact version mapping uses the attribute "environment_type" to specify the environment type. In the following embodiments, an environment type development is specified. An environment type may include one or more data center instances; a data center instance may include one or more service groups, and a service group may include one or more services. In the following embodiments, the software artifact name is specified as library1, the version is specified as version1, and it is associated with the service instance instance001. However, the software artifact name and version can be associated with a data center entity at any level of the tier. For example, for a specified software artifact name and version or service group, the software artifact name and version apply to all services within the service group, unless the software artifact name and version are overridden by different values of the software artifact name and version specified for a specific service instance within the service group.
类似地,除非为服务组指定了覆盖值,否则软件工件名称和版本可以为数据中心实例指定并且适用于数据中心实例内的所有服务组或单元格。Similarly, unless an overridden value is specified for a service group, the software artifact name and version can be specified for the data center instance and apply to all service groups or cells within the data center instance.
在实施方案中,工件版本映射使用数据中心实体的完整路径,例如“stagger_group1/datacenter1/service_group2/service1”来指定数据中心实体。在实施方案中,工件版本映射使用数据中心实体的完整路径中的正则表达式来指定一组数据中心实体。例如,包括service_group[?]的完整路径包括service_group1、service_group2、service_group3等等。In the implementation, artifact version mapping uses the full path of the data center entity, such as "stagger_group1/datacenter1/service_group2/service1", to specify the data center entity. Alternatively, artifact version mapping uses a regular expression within the full path of the data center entity to specify a group of data center entities. For example, a full path including service_group[?] includes service_group1, service_group2, service_group3, and so on.
以下是工件版本映射的实施例,其指定正则表达式来定义服务集。环境类型被指定为开发和测试,并且完整路径中的数据中心实体(包括数据中心实例和服务组)被指定为通配符,并且服务实例被指定为“service*”。因此,对于开发和测试环境的所有数据中心实例、所有服务组、与service*匹配的服务名称,将部署应用程序app1的版本V1。The following is an example of artifact version mapping, which specifies regular expressions to define service sets. The environment type is specified as Development and Test, and the data center entities (including data center instances and service groups) in the full path are specified as wildcards, and the service instances are specified as "service*". Therefore, for all data center instances, all service groups, and service names matching "service*" in the Development and Test environments, version V1 of application app1 will be deployed.
在一些实施方案中,工件版本映射可以指定管线使用的参数。因此,指定的参数将适用于为其指定参数的交错组。In some implementations, the workpiece version mapping can specify the parameters used by the pipeline. Therefore, the specified parameters will apply to the staggered groups for which the parameters are specified.
图11示出了根据实施方案的用于数据中心的示例性主管线。如图11中所示,主管线在部署组(也被称为交错组)上执行,该部署组指由声明性规范定义的数据中心实体的集合。工件版本映射可以指定交错组属性,以定义可以与特定工件版本相关联的一组数据中心实体。可以通过指定来自数据中心的层级中的根节点的路径来标识数据中心实体,例如,数据中心实例。如图11所示,主管线为不同的环境定义了不同的阶段。每个阶段在被称为部署组1110的一组数据中心实体上执行动作。图11示出了包括数据中心实体的开发部署组1110a,其包括服务组S11、S12和S13;包括数据中心实体的测试部署组1110b,其包括服务组S21、S22和S23;以及包括数据中心实体的生产部署组1110b,其包括服务组S31、S32、S33和S34。评估1120a在开发部署组1110a的数据中心实体上的测试结果,以确定在开发部署组1110a中测试的软件工件是否被推进至测试部署组1110b。类似地,评估1120b在测试部署组1110a的数据中心实体上的测试结果,以确定在测试部署组1110a中测试的软件工件是否被推进至生产部署组1110c。Figure 11 illustrates an exemplary pipeline for a data center according to an implementation scheme. As shown in Figure 11, the pipeline executes on a deployment group (also referred to as an interleaved group), which refers to a collection of data center entities defined by a declarative specification. An artifact version mapping can specify interleaved group attributes to define a set of data center entities that can be associated with a particular artifact version. Data center entities can be identified by specifying a path from the root node in the data center hierarchy, such as a data center instance. As shown in Figure 11, the pipeline defines different phases for different environments. Each phase executes actions on a set of data center entities referred to as deployment group 1110. Figure 11 illustrates a development deployment group 1110a including data center entities, which includes service groups S11, S12, and S13; a test deployment group 1110b including data center entities, which includes service groups S21, S22, and S23; and a production deployment group 1110b including data center entities, which includes service groups S31, S32, S33, and S34. Evaluate the test results of 1120a on the data center entity of development deployment group 1110a to determine whether the software artifacts tested in development deployment group 1110a are advanced to test deployment group 1110b. Similarly, evaluate the test results of 1120b on the data center entity of test deployment group 1110a to determine whether the software artifacts tested in test deployment group 1110a are advanced to production deployment group 1110c.
图12示出了根据实施方案如何基于工件版本映射来修改主管线的执行。工件版本映射将软件工件的版本与数据中心实体相关联。系统修改在数据中心实体上执行的详细管线,以确保在每个数据中心实体上执行与软件工件的适当版本相关的动作。例如,图12示出了用于服务SVC1的软件工件的版本V1和V2。版本V1与服务组S11、S23和S31相关联,并且版本V2与服务组S11、S21和S32相关联。假设主管线正在数据中心上部署服务SVC1的版本。因此,系统修改执行的管线,以在服务组S11、S23和S31上部署版本V1和在服务组S11、S21和S32上部署版本V2。在一个实施方案中,系统在图11中所示的主管线的阶段之前引入版本映射过滤器。主管线的执行基于版本映射过滤器针对每个数据中心实体选择软件工件的版本。例如,版本映射过滤器包括对该特定动作跳过服务组S13、S22、S33和S34的指令。版本映射过滤器指定版本V1部署在服务组S11、S23和S31上,并且版本V2部署在服务组S11、S21和S32上。Figure 12 illustrates how the execution of the pipeline is modified based on artifact version mapping according to an implementation scheme. Artifact version mapping associates versions of software artifacts with data center entities. The system modifies the detailed pipelines executed on data center entities to ensure that actions associated with the appropriate version of the software artifact are executed on each data center entity. For example, Figure 12 shows versions V1 and V2 of the software artifacts used for service SVC1. Version V1 is associated with service groups S11, S23, and S31, and version V2 is associated with service groups S11, S21, and S32. Assume the pipeline is deploying a version of service SVC1 on the data center. Therefore, the system modifies the executed pipelines to deploy version V1 on service groups S11, S23, and S31 and version V2 on service groups S11, S21, and S32. In one implementation, the system introduces a version mapping filter prior to the phase of the pipeline shown in Figure 11. The execution of the pipeline selects the version of the software artifact for each data center entity based on the version mapping filter. For example, the version mapping filter includes instructions to skip service groups S13, S22, S33, and S34 for that specific action. The version mapping filter specifies that version V1 is deployed on service groups S11, S23, and S31, and version V2 is deployed on service groups S11, S21, and S32.
图13示出了根据实施方案的用于在云平台上配置的数据中心上部署软件工件的整体过程。数据中心生成模块在目标云平台上生成1310一个或多个数据中心。每个数据中心都是根据独立于云平台的声明性规范生成的,并且具有数据中心实体的层级。Figure 13 illustrates the overall process for deploying software artifacts on a data center configured on a cloud platform, according to the implementation scheme. The data center generation module generates one or more data centers on the target cloud platform. Each data center is generated according to a declarative specification independent of the cloud platform and has a hierarchy of data center entities.
软件发布管理模块230接收将数据中心实体映射到软件工件的版本的工件版本映射作为输入。软件发布管理模块230还接收1330独立于云平台的主管线作为输入。The software release management module 230 receives an artifact version mapping that maps data center entities to versions of software artifacts as input. The software release management module 230 also receives a cloud platform-independent main pipeline as input.
软件发布管理模块230结合工件版本映射编译1340独立于云平台的主管线,以生成特定于云平台的详细管线。在一个实施方案中,生成的特定于云平台的详细管线包括某些阶段之前的工件版本映射过滤器,以根据工件版本映射确定是否应该启用或禁用某些阶段。The software release management module 230, in conjunction with the artifact version mapping compilation 1340, generates a cloud-platform-independent main pipeline to produce a cloud-platform-specific detailed pipeline. In one implementation, the generated cloud-platform-specific detailed pipeline includes artifact version mapping filters prior to certain stages to determine whether certain stages should be enabled or disabled based on the artifact version mapping.
软件发布管理模块230进一步接收1350用于发布部署在数据中心上的服务的一个或多个特征的代码。例如,代码可以表示从版本控制管理系统获得的源代码,该版本控制管理系统存储由开发人员向其提交更改的源代码存储库。软件发布管理模块230执行1360特定于云平台的部署管线,以基于接收到的代码部署软件工件。The software release management module 230 further receives 1350 code for releasing one or more features of a service deployed on a data center. For example, the code may represent source code obtained from a version control management system that stores a repository of source code to which developers submit changes. The software release management module 230 executes 1360 a cloud platform-specific deployment pipeline to deploy software artifacts based on the received code.
工件版本映射和主管线可以用于编排与基于云的数据中心中软件工件的持续交付相关的各种类型的操作。工件版本映射和主管线可以配置为对服务或服务组或任何数据中心实体执行聚合重试操作。工件版本映射包括对数据中心实体的重试操作的配置,该配置包括重试策略、在执行管线的一阶段失败的情况下要执行的重试的阈值数量、在重试之前是否需要来自用户的确认或自动执行重试,等等。例如,重试策略可以是在重试之前暂停执行一段固定时间的固定回退策略。可以使用工件版本映射和主管线来配置其他重试策略。在实施方案中,管线生成器在聚合管线内引入调用重试阶段,以在先前管线阶段失败时触发重试策略。为数据中心实体指定的重试策略和配置参数适用于数据中心实体内的所有数据中心实体和服务,除非该值被嵌套的数据中心实体覆盖。Artifact version mappings and pipelines can be used to orchestrate various types of operations related to the continuous delivery of software artifacts in cloud-based data centers. Artifact version mappings and pipelines can be configured to perform aggregated retry operations on services, service groups, or any data center entity. Artifact version mappings include configurations for retry operations on data center entities, including retry policies, a threshold number of retries to perform in the event of a failure in one phase of the execution pipeline, whether user acknowledgment is required before a retrieval or whether retries are performed automatically, and so on. For example, a retry policy could be a fixed fallback policy that pauses execution for a fixed period before a retry. Artifact version mappings and pipelines can be used to configure other retry policies. In an implementation, the pipeline generator introduces a retry phase within the aggregate pipeline to trigger the retry policy if a previous pipeline phase fails. The retry policy and configuration parameters specified for a data center entity apply to all data center entities and services within that data center entity, unless the value is overridden by nested data center entities.
计算机架构Computer Architecture
图14是示出根据实施方案的用作图1的环境100中所示的实体之一的典型计算机系统的功能视图的高级框图。示出了联接到芯片组1404的至少一个处理器1402。还联接到芯片组1404的是存储器1406、存储设备1408、键盘1410、图形适配器1412、定点设备1414和网络适配器1416。显示器1418联接到图形适配器1412。在一个实施方案中,由存储器控制器集线器1420和I/O控制器集线器1422提供芯片组1404的功能。在另一个实施方案中,存储器1406直接联接到处理器1402而不是芯片组1404。Figure 14 is a high-level block diagram illustrating a functional view of a typical computer system used as one of the entities shown in environment 100 of Figure 1, according to an embodiment. At least one processor 1402 is shown connected to chipset 1404. Also connected to chipset 1404 are memory 1406, storage device 1408, keyboard 1410, graphics adapter 1412, pointing device 1414, and network adapter 1416. Display 1418 is connected to graphics adapter 1412. In one embodiment, the functionality of chipset 1404 is provided by memory controller hub 1420 and I/O controller hub 1422. In another embodiment, memory 1406 is directly connected to processor 1402 instead of chipset 1404.
存储设备1408是非暂时性计算机可读存储介质,如硬盘驱动器、光盘只读存储器(CD-ROM)、DVD或固态存储器设备。存储器1406保存由处理器1402使用的指令和数据。定点设备1414可以是鼠标、轨迹球或其他类型的定点设备,并且与键盘1410结合使用以将数据输入到计算机系统200中。图形适配器1412在显示器1418上显示图像和其他信息。网络适配器1416将计算机系统1400联接到网络。Storage device 1408 is a non-transitory computer-readable storage medium, such as a hard disk drive, optical disc read-only memory (CD-ROM), DVD, or solid-state storage device. Memory 1406 stores instructions and data used by processor 1402. Pointing device 1414 may be a mouse, trackball, or other type of pointing device and is used in conjunction with keyboard 1410 to input data into computer system 200. Graphics adapter 1412 displays images and other information on monitor 1418. Network adapter 1416 connects computer system 1400 to a network.
如本领域中已知的,计算机1400可以具有与图14中所示的那些不同的和/或其他部件。此外,计算机1400可以缺少某些图示的部件。例如,充当多租户系统110的计算机系统1400可以缺少键盘1410和定点设备1414。此外,存储设备1408可以是本地的和/或远离计算机1400的(例如体现在存储区域网络(SAN)内)。As is known in the art, computer 1400 may have different and/or other components than those shown in FIG. 14. Furthermore, computer 1400 may lack certain components illustrated. For example, computer system 1400 acting as multi-tenant system 110 may lack keyboard 1410 and point-of-sale device 1414. Additionally, storage device 1408 may be local and/or remote from computer 1400 (e.g., embodied within a storage area network (SAN)).
计算机1400适于执行用于提供本文描述的功能的计算机模块。如本文所使用的,术语“模块”指的是用于提供指定功能的计算机程序指令和其他逻辑。模块可以用硬件、软件和/或固件来实施。模块可以包括一个或多个过程,和/或仅由过程的一部分提供。模块通常存储在存储设备1408上,加载到存储器1406中,并由处理器1402执行。Computer 1400 is adapted to execute computer modules for providing the functions described herein. As used herein, the term "module" refers to computer program instructions and other logic for providing specified functions. Modules may be implemented in hardware, software, and/or firmware. A module may include one or more processes, and/or be provided only by a portion of those processes. Modules are typically stored on storage device 1408, loaded into memory 1406, and executed by processor 1402.
系统环境的实体所使用的计算机系统1400的类型可以根据实施方案和实体所使用的处理能力而变化。例如,客户端设备可以是具有有限处理能力的移动电话、小型显示器1418,并且可以缺少定点设备1414。相比之下,多租户系统或云平台可以包括协同工作以提供本文描述的功能的多个刀片服务器。The type of computer system 1400 used by the entities in the system environment can vary depending on the implementation scheme and the processing power used by the entities. For example, client devices may be mobile phones with limited processing power, small displays 1418, and may lack fixed-point devices 1414. In contrast, multi-tenant systems or cloud platforms may include multiple blade servers working together to provide the functionality described herein.
其他注意事项Other precautions
部件的特定命名、术语的大写、属性、数据结构或任何其他编程或结构方面不是强制性的或重要的,并且实施所描述的实施方案的机制可以具有不同的名称、格式或协议。此外,如所描述的,系统可以经由硬件和软件的组合来实施,或者完全以硬件元件来实施。此外,本文描述的各种系统部件之间的功能的特定划分仅仅是示例性的,而不是强制性的;由单个系统部件执行的功能可以替代地由多个部件执行,并且由多个部件执行的功能可以替代地由单个部件执行。Specific naming of components, capitalization of terms, attributes, data structures, or any other programming or structural aspects are not mandatory or important, and the mechanisms for implementing the described implementation schemes may have different names, formats, or protocols. Furthermore, as described, the system may be implemented via a combination of hardware and software, or entirely with hardware components. Moreover, the specific division of functionality among the various system components described herein is merely exemplary and not mandatory; a function performed by a single system component may alternatively be performed by multiple components, and a function performed by multiple components may alternatively be performed by a single component.
以上描述的一些部分根据对信息的操作的算法和符号表示来呈现特征。这些算法描述和表示是数据处理技术领域的技术人员用来最有效地将其工作的实质传达给本领域的其他技术人员的方式。虽然在功能上或逻辑上描述了这些操作,但被理解为由计算机程序来实施。此外,在不丧失通用性的情况下,将这些操作安排称为模块或功能名称有时也被证明是方便的。Some of the descriptions above are characterized by the algorithms and symbolic representations of the operations on information. These algorithmic descriptions and representations are the means by which those skilled in the art of data processing most effectively communicate the essence of their work to others skilled in the art. Although these operations are described functionally or logically, they are understood to be implemented by computer programs. Furthermore, it is sometimes convenient, without loss of generality, to refer to these operations as modules or functional names.
除非从上面的讨论中明确地说明,否则应该理解,在整个描述中,利用诸如“处理”或“算”或“计算”或“确定”或“显示”等术语的讨论是指计算机系统或类似电子计算设备的动作和过程,其操纵和转换计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内表示为物理(电子)量的数据。Unless explicitly stated in the discussion above, it should be understood that throughout the description, the use of terms such as “processing” or “calculating” or “determining” or “displaying” refers to the actions and processes of a computer system or similar electronic computing device that manipulate and convert data represented as physical (electronic) quantities within the computer system’s memory or registers or other such information storage, transmission or display devices.
本文描述的某些实施方案包括以算法形式描述的处理步骤和指令。应当注意,实施方案的处理步骤和指令可以体现在软件、固件或硬件中,并且当体现在软件中时,可以下载以驻留在实时网络操作系统使用的不同平台上并从其进行操作。Some implementations described herein include processing steps and instructions described in algorithmic form. It should be noted that the processing steps and instructions of the implementation can be embodied in software, firmware, or hardware, and when embodied in software, can be downloaded to reside on and operated from different platforms used by a real-time network operating system.
所描述的实施方案还涉及用于执行本文的操作的装置。装置可以为所需目的而特别构造,或者其可以包括通用计算机,该通用计算机由存储在计算机可读介质上的计算机程序选择性地激活或重新配置,该计算机可读介质可以被计算机访问。这种计算机程序可以存储在非暂时性计算机可读存储介质中,例如但不限于包括软盘、光盘、CD-ROM、磁光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、专用集成电路(ASIC)、或适用于存储电子指令的任何类型的介质,并且每种介质都耦合到计算机系统总线。此外,说明书中提到的计算机可以包括单个处理器,或者可以是采用多个处理器设计以提高计算能力的架构。The described embodiments also relate to means for performing the operations described herein. The means may be specifically constructed for the desired purpose, or it may include a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer-readable medium accessible to a computer. Such a computer program may be stored in a non-transitory computer-readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magneto-optical disks, read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic cards or optical cards, application-specific integrated circuits (ASICs), or any type of medium suitable for storing electronic instructions, and each medium is coupled to a computer system bus. Furthermore, the computer mentioned in the specification may include a single processor, or may be an architecture employing multiple processors to increase computing power.
本文提出的算法和操作与任何具体计算机或其他装置没有本质的关系。各种通用系统也可以与根据本文教导的程序一起使用,或者可以证明构造更专用的装置来执行所需的方法步骤是方便的。对于本领域的技术人员来说,各种这些系统所需的结构以及等效的变体将是显而易见的。此外,本实施方案不参考任何具体编程语言来描述。应当理解,可以使用各种编程语言来实施如本文所描述的实施方案的教导。The algorithms and operations presented herein are not substantially related to any specific computer or other device. Various general-purpose systems can also be used with the programs taught herein, or it can be demonstrated that it is convenient to construct more specialized devices to perform the required method steps. The necessary structures for various such systems, as well as equivalent variations, will be apparent to those skilled in the art. Furthermore, this embodiment is described without reference to any specific programming language. It should be understood that the teachings of the embodiments described herein can be implemented using various programming languages.
实施方案非常适用于多种拓扑上的各种各样的计算机网络系统。在该领域中,大型网络的配置和管理包括存储设备和计算机,其通过网络(如互联网)通信地联接到不同计算机和存储设备。The implementation scheme is well-suited for a wide variety of computer network systems across diverse topologies. In this field, the configuration and management of large networks involves storage devices and computers communicatively connected to different computers and storage devices via a network (such as the Internet).
最后,应当注意,说明书中使用的语言主要是为了可读性和指导性目的而选择的,并且可以不是为了描绘或限定本发明主题而选择的。因此,实施方案的公开旨在是说明性的,但不是限制性的。Finally, it should be noted that the language used in this specification has been chosen primarily for readability and instructional purposes, and may not be intended to depict or limit the subject matter of the invention. Therefore, the disclosure of embodiments is intended to be illustrative, not restrictive.
Claims (57)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/110,224 | 2020-12-02 | ||
| US17/112,974 | 2020-12-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK40100729A true HK40100729A (en) | 2024-05-03 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN117099079B (en) | System configuration freezing and change management of services deployed via continuous delivery configured on a data center in a cloud platform | |
| JP7666827B2 (en) | Multi-substrate fault-tolerant continuous delivery of data center builds on cloud computing platforms | |
| US11733987B2 (en) | Executing shared pipelines for continuous delivery of services in cloud platforms | |
| US11356508B1 (en) | Retry strategies for handling failures during continuous delivery of software artifacts in a cloud platform | |
| US12056537B2 (en) | Managing execution of continuous delivery pipelines for a cloud platform based data center | |
| US12386675B2 (en) | Orchestration of operations on a cloud platform based on multiple version maps of services | |
| US11349958B1 (en) | Deployment of software releases on datacenters configured in cloud platforms | |
| US11392361B2 (en) | Software release orchestration for continuous delivery of features in a cloud platform based data center | |
| US11848829B2 (en) | Modifying a data center based on cloud computing platform using declarative language and compiler | |
| US11677620B2 (en) | Declarative specification based override mechanism for customizing data centers deployed on cloud platforms | |
| US20220147399A1 (en) | Declarative language and compiler for provisioning and deploying data centers on cloud platforms | |
| JP7742503B2 (en) | Orchestration of data center creation on cloud platforms | |
| JP7666825B2 (en) | DEPLOYING A SOFTWARE RELEASE TO A DATA CENTER CONFIGURED IN A CLOUD PLATFORM | |
| EP4278258B1 (en) | System configuration freeze and change management of services deployed via continuous delivery on datacenters configured in cloud platforms | |
| HK40100729A (en) | Deployment of software releases on datacenters configured in cloud platforms | |
| JP7743986B2 (en) | Declarative language and compiler for provisioning and deploying data centers on cloud platforms | |
| HK40104187B (en) | System configuration freeze and change management of services deployed via continuous delivery on datacenters configured in cloud platforms | |
| HK40104187A (en) | System configuration freeze and change management of services deployed via continuous delivery on datacenters configured in cloud platforms | |
| HK40103676A (en) | Methods, media and systems for multi-substrate fault tolerant continuous delivery of datacenter builds on cloud computing platforms | |
| HK40103676B (en) | Methods, media and systems for multi-substrate fault tolerant continuous delivery of datacenter builds on cloud computing platforms |