CN116391182A - 实现跨云应用模板的系统及方法 - Google Patents

实现跨云应用模板的系统及方法 Download PDF

Info

Publication number
CN116391182A
CN116391182A CN202180063601.5A CN202180063601A CN116391182A CN 116391182 A CN116391182 A CN 116391182A CN 202180063601 A CN202180063601 A CN 202180063601A CN 116391182 A CN116391182 A CN 116391182A
Authority
CN
China
Prior art keywords
tosca
template
cloud
server
infrastructure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180063601.5A
Other languages
English (en)
Inventor
克里斯蒂安·霍费尔
哈维尔·佩雷兹格里夫
巴勃罗·班奥斯
阿尔贝托·德尔瓦莱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yunlan Co ltd
Original Assignee
Yunlan Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yunlan Co ltd filed Critical Yunlan Co ltd
Publication of CN116391182A publication Critical patent/CN116391182A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及用于实现跨云基础设施部署的系统和方法,包括:接收来自用户的输入,该输入包括云应用拓扑与编排规范(TOSCA)模板和用于通过图形用户界面(GUI)进行实例化的输入参数;将输入参数应用到TOSCA模板;基于定义的关系,创建TOSCA模板的有向无环图;基于无环图中定义的顺序,通过API调用编排引擎来执行实例化后的模型。TOSCA模板和输入参数可以指定部署区域和/或服务器计划。

Description

实现跨云应用模板的系统及方法
优先权文件
本申请主张申请日为2020年9月16日、申请序列号为63/079,413的美国临时专利申请的优先权,该申请全部内容归并本文。
技术领域
本公开涉及云计算基础设施的配置与部署。
背景技术
在云计算环境中部署基础设施的系统着重于将基础设施自动部署到特定的云供应商。此类系统能够实现RightScale云应用模板、Cloudily和Hashicorp Terraform等云基础设施的配置与部署。然而,公知方案中配置需要与特定的云供应商绑定,因此还面临一定挑战性,效率不高。这些方案能够描述各种云供应商的基础设施,但需要对每个云供应商给予特定描述。就此而言,这些方案涉及“多云”。然而,此类方案通常无法实现同时跨多个云供应商进行基础设施的配置。
发明内容
本公开实施例能够实现独立地描述云供应商的基础设施,在基础设施自动部署期间,将云供应商的选择仅作参数,能够在任意云供应商的云中实现完整基础设施的自动部署。上述跨云(Trans-Cloud)方法能够同时实现跨多个云供应商的基础设施配置。
本公开实施例允许用户基于基础设施描述(服务模板)在多个云供应商中自动部署基础设施。本公开实施例提供了对特定云供应商基础设施的抽象。本公开实施例利用了云应用拓扑与编排规范(Topology and Orchestration Specification for CloudApplications,TOSCA)标准,独立于实施方式来描述基础设施,而且利用了一种新组件,即TOSCA解释器,扩展了目前公知的编排引擎(例如,Ingram Micro Cloud编排器),从而实现工作流程自动化。这一改进允许用户在云应用模板部署期间动态地选择云供应商、区域、服务器计划等。
本公开提供的系统和方法能够实现云基础设施的自动跨云部署。
附图说明
下面结合附图对本公开各示例性实施例予以说明,从而各实施例及其包含的其他特征、优势和公开内容以及它们的实施方式将更加清楚明了,更易于理解本公开。
图1示意性示出了根据示例实施例的云基础设施自动部署系统;
图2示意性示出了根据示例实施例的云编排架构;
图3示意性示出了根据示例实施例TOSCA解释器执行的进程;
图4示出了根据示例实施例TOSCA解释器提供的有向无环图(DAG)实例;
图5示出了根据示例实施例的示例计算设备。
具体实施方式
为了便于理解本公开原理,下面参照附图所示的实施例,具体用语用来描述这些实施例。但应理解,并不旨在由此限制本公开保护范围。
一个实施例中,可以利用Ingram Micro Cloud Orchestrator(加利福尼亚尔湾Ingram Micro公司提供)等云编排器(Cloud Orchestrator)来实现上述方案。一些实施例中,云编排器允许用户逐步(即,逐蓝图、逐网络、逐防火墙配置文件、逐服务器)完整地创建部署基础设施。云编排器无法实现完整基础设施的自动部署。
图1示出了一种允许在任意云供应商的云中实现完整基础设施自动部署的云基础设施部署系统。根据一些实施例,跨云应用模板提供了跨云抽象,其创建并处理可供进行基础设施部署。如图1的示意图所示,云编排器110通过连接器140集成有云服务代理(CSB)平台120(例如,“Ingram Micro Cloud Blue Platform”或其他CSB平台)。
一些实施例中,云编排器110可以包括一个或多个用来管理不同云供应商105的云基础设施的系统。云供应商105可以包括例如公共云供应商(例如,Amazon Web Services(AWS)、Azure、Google云平台、IBM Bluemix等)和私有云供应商(例如,VMware、OpenStack等)。
一些实施例中,连接器140可以利用管理应用编程接口(API)来实现。连接器140可以在CSB平台120上提供客户、用户和云凭证。一些实施例中,连接器还发起了单点登录(SSO)工作流,使得用户可以登录到CSB平台120。
一些非限制性示例中,用户(例如,客户、开发者、管理员等)登录到CSB平台120并创建对公共云服务(例如,Azure服务等)的订阅。然后,用户通过云编排器门户(例如配置管理工具130)配置并部署基础设施。CSB平台处理业务逻辑,如收集使用数据、存储附有定价的服务目录、向客户开具发票、创建/删除/更改订阅、管理访问、向公共云供应商门户和云编排器门户提供SSO、提供多层多渠道管理与商业智能。
图2示意性示出了云基础设施部署系统环境中的云编排器架构。参照图2,用于进行跨云基础设施部署的系统200包括云编排器210的架构、公共云供应商220和配置管理工具240。
通常,可以通过Web用户界面(UI)或通过API,逐个手动部署云基础设施。例如,用户可创建虚拟网络,然后在虚拟网络中创建两个子网。用户可以在每个子网中放置服务器,每个服务器均有防火墙配置文件和描述软件配置(包括操作系统(OS))的特定蓝图。该蓝图中,用户可以让一个服务器指向另一个服务器。常规上,蓝图和防火墙配置文件独立于云供应商。创建网络(在服务器属于虚拟网络一部分的情况下)或创建服务器(在服务器不是虚拟网络一部分的情况下)时,必须进行云供应商的选择。此前,用户必须手动创建网络、蓝图、服务器等。
根据本文描述的实施例,云编排器210可以实现基础设施部署进程的自动化,包括跨云应用模板。这一点与常规系统的区别在于,常规系统只能实现繁琐地使用API进行自动化,例如需要采用Ad-Hoc模式编写脚本来执行一系列API调用。根据一些实施例,系统200允许前端服务器动态地连接到后端服务器。也就是说,如果后端服务器的IP地址在某个时刻发生变化,前端服务器将自动更新自身所指向的IP地址。这一方面与常规系统的区别在于,常规系统并不更新连接。
根据一些实施例,云编排器210可以包括云供应商目录212、客户对象数据库214、配置数据中心216、云编排器API 218、TOSCA解释器220、云编排器门户222和编排引擎230。
云供应商目录212存储各种OS和各种应用的通用图像。云供应商目录212可以存储与云供应商的图像目录周期性通信并更新云编排器的云供应商目录的脚本。客户对象数据库214可以存储关于客户对象的信息,包括涉及一个或多个云服务订阅的信息、SSO信息、配置信息等。配置数据中心216可以存储一个或多个角色来定义组织中各节点之间存在的模式和进程,例如属于作业功能。
与常规系统相比,如图2所示,系统200的实施例中包括跨云TOSCA解释器220。TOSCA解释器220可以与其他组件进行通信,并进行完整基础设施部署的自动化。
TOSCA解释器220可以是通过调用云编排器API 218来执行服务模板的TOSCA编排组件。一些非限制性示例中,TOSCA解释器220接收TOSCA存档和附加输入参数作为输入。输入参数可以是TOSCA节点的任意特性,例如专用网络的网络无类别域间路由(ClasslessInter-Domain Routing-CIDR)、服务器阵列的实例数等。在本公开实施例TOSCA解释器的情况下,它也可以是网络或服务器的云提供商和区域,或者服务器的服务器计划。TOSCA存档包含服务模板加上任意附加文件(Chef Cookbook、脚本等)。服务模板包含对所有基础设施组件(网络、服务器、防火墙配置文件、负载均衡器等)的描述以及对基础设施上待执行软件栈的描述。TOSCA解释器在模板上应用附加输入参数,并通过编排引擎创建所有必要的资源来实例化该模板。
根据一些实施例,TOSCA解释器220动态地建立TOSCA节点模板实例的有向无环图。为了实例化TOSCA服务模板,TOSCA解释器220使用计算与联网抽象,以及从TOSCA标准类型派生的软件节点与关系类型。TOSCA服务模板与云供应商无关。云供应商可以按特定顺序实例化服务器和网络,有时应当首先配置网络,有时反之。编排器引擎230定义了与具体云供应商兼容的顺序。TOSCA解释器220可以修改TOSCA服务模板中定义的顺序,从而适应编排器引擎。例如,TOSCA解释器220具有通过“端口”(基本上作为虚拟NIC(虚拟网络接口控制器)工作)将服务器绑定到网络的标准模型。这些端口是虚拟NIC而不是实体NIC,基本上组织了服务器对网络的访问。在TOSCA中,计算网络节点模板之间的关系是以端口节点模板为中介,端口节点模板或多或少起到与云供应商侧的虚拟NIC相同的作用。TOSCA解释器在此所做的是共同创建NIC和服务器以适应编排器引擎所需的顺序,而不是遵循TOSCA服务模板中定义的依赖顺序,即先服务器后虚拟NIC。
在TOSCA服务模板实例化过程中,TOSCA解释器220将用户选择的码本列表上传到编排器引擎。编排器引擎继而在配置数据中心中创建角色,例如Chef。
随后,TOSCA解释器220根据其服务模板在云供应商处部署基础设施。在服务器启动期间或启动之后(取决于云供应商),TOSCA解释器220在服务器上安装小客户端程序,通过安装客户端连接到配置管理工具并获得正确的软件配置来部署管理软件栈。客户端程序还会确保执行指定的启动脚本。
云编排器API 218在TOSCA解释器220与编排引擎230之间提供集成层。云编排器API 218提供对编排引擎230在Web用户界面上所有操作的程序访问。这包括定义防火墙配置文件、软件蓝图、上传Chef Cookbook、定义脚本、创建网络和服务器等。
云编排器门户222提供可供用户与云编排器进行交互并实现云编排器的UI。通过云编排器门户222,用户可以选择订阅一个或多个公共云供应商,并创建蓝图,其中用户可以选择部署到该基础设施上的应用以及应当如何部署这些应用(例如,前端在AWS服务器,后端在Azure)。用户可以输入操作系统(OS)、Chef cookbook和其他输入,包括但不限于服务器启动或关闭时执行的脚本,或者服务器运行中任意时刻手动执行的脚本。用户还可以挑选附加服务,包括但不限于防火墙、负载均衡器等。
编排引擎230生成创建云基础设施所必须的抽象。为了便于不同云供应商之间利用不同软件配置进行网络和服务器的部署和操作,编排引擎既与配置管理工具通信,又与不同云供应商通信。编排引擎定义了与不同云供应商兼容的服务器和网络的实例化顺序。手动创建统一API的调用。可以使用云编排器门户222(包括编排器Web UI)和云编排器API218来控制编排引擎230。这种实例化的核心在于,按正确顺序创建防火墙配置文件、网络和服务器。而创建服务器的一部分在于定义服务器的蓝图,该蓝图定义服务器的软件配置(编排器引擎蓝图)。
云编排器引擎230可以包括网络管理器231、基础设施管理器232、Cookbook 233、编排引擎蓝图234和一个或多个脚本235。
网络管理器231配置网络。基础设施管理器232创建并配置基础设施。
Cookbook 233在配置管理工具(例如Chef等)中提供配置与策略分发单元。Cookbook定义了场景,并包含了支持该场景所需的每个配置元素:a)Recipe(配方),指定了待使用资源以及资源应用顺序;b)属性值;c)文件分发;d)Chef扩展,如自定义资源、库等);e)Cookbook(属性),即Cookbook配方运行列表中的可配置参数;
f)Cookbook(Run List),即Cookbook配方中的软件安装顺序,Run List(运行列表)并不局限于单个Cookbook,一般是来自不同Cookbook的配方列表;g)Cookbook(顺序),即影响特定Cookbook的一组配方。
编排引擎蓝图234为虚拟机提供了可再用配置。编排引擎蓝图是一种服务器蓝图,描述了单独服务器上待设置的软件配置(完整软件栈,包括OS)。这一点区别于TOSCA服务模板或TOSCA拓扑模板。
脚本235是可由一个或多个脚本引擎执行的可执行命令列表。脚本235可以采取文本文档格式,包含使用脚本语言编写来生成可执行进程的指令。脚本235可以包括一个或多个脚本参数,包含影响脚本的参数、针对特定脚本手动引入的脚本代码以及脚本附件,这些脚本附件可以允许利用代码上传或参考任意外部文档以使之包括在脚本中。
配置管理工具240将基础设施转化为代码,使基础设施配置自动化。无论云的大小和/或类型,该工具都能实现基础设施在整个网络中的配置、部署和管理自动化。配置管理工具例如包括但不限于Chef、Puppet、Ansible等。配置管理工具可以包括用户在云端开启的服务器,用于连接客户端与配置管理。
云供应商目录212存储各种OS和各种应用的通用图像,并且包含与云供应商的图像目录周期性通信并更新云编排器的云供应商目录的脚本。
云编排器架构110、120的实施例允许用户通过创建单个服务模板在多个云供应商中部署任意基础设施。云供应商、区域和服务器计划的选择可以设置为这种服务模板的参数。
根据一些实施例,本公开实施例中针对云编排器定义的网络服务器节点模板具有“区域”特性,指定了特定网络或服务器将要部署到的云提供商和区域。这就与不描述部署区域的TOSCA实施方案形成对比,在此情况下,所描述的基础设施可以假设为部署在特定环境中。通过包括区域特性,单个服务模板可以设置为描述将在不同云提供商与区域之间部署的基础设施。另外,由于期望一个或多个区域成为TOSCA输入参数,可以将服务模板参数化,从而指定部署实际基础设施或其部分的一个或多个位置。
非限制性示例中,用户在服务模板中指定:在Ubuntu 18.04下运行一个服务器,在Windows Server 2012下运行另一个服务器。用户将服务器计划作为两者的服务模板参数,并在云编排器门户222上执行该服务器计划。用户执行该服务器计划,以T3中型服务器计划在东弗吉尼亚地区的AWS中运行Ubuntu服务器,以B2标准服务器计划在美国西部地区的Azure中运行Windows服务器。防火墙规则可以自动应用于两个服务器,与它们部署到的云供应商无关。TOSCA解释器210在该AWS区域找到Ubuntu镜像,在Azure区域找到Windows镜像,并启动正确的服务器配置。
一个非限制性示例中,用户编写TOSCA服务模板,即一段用于基础设施配置的代码。TOSCA服务模板的第一部分可以包括拓扑模板,定义了输入/输出、节点、节点关系和策略。根据系统200的一些实施例,云编排器专用TOSCA数据和节点类型可以实现定义跨云基础设施。
图3为根据本公开一些实施例一种用于进行跨云基础设施部署的方法300的流程图。一些实施例中,方法300提供了一些实现TOSCA解释器220执行TOSCA模板的操作步骤。如上所述,TOSCA解释器220可以执行用户通过云编排器门户222提供的输入。根据一些实施例,过程300可以包括执行作为输入提供的操作。这些操作可以作为软件代码输入,例如,用户上传到云编排器门户222以供TOSCA解释器220执行。
参照图3,在操作305中,计算设备可以接收来自用户的输入,包括TOSCA模板和/或与TOSCA模板相关的信息。根据一些实施例,操作305可以包括接收用户上传到云编排器门户222的软件代码输入,以供TOSCA解释器220执行。
在操作305中,可以创建服务模板,并且可以指定拓扑模板来设定多个拓扑模板输入。拓扑模板输入可以包括例如对网络和服务器应当部署区域的说明、服务器计划和无类别域间路由(Classless Inter-Domain Routing-CIDR)。下面提供了该代码的非限制性示例。
本例中提供了拓扑模板嵌套映射,并定义了输入参数,包括区域和服务器计划参数。
Figure BDA0004129061230000081
Figure BDA0004129061230000091
Figure BDA0004129061230000101
在操作310中,计算设备可以接收来自用户的输入,包括与TOSCA模板相关、用于跨云基础设施实例化的一个或多个输入参数。
例如,在操作310中,用户可以设定节点模板来指定网络、服务器配置、各服务器之间的关系以及服务器应当部署到的区域。针对每个服务器,可以利用来自配置管理工具的可用方案来指定软件栈。
下面提供了节点模板的非限制性示例,指定用于实例化包括部署区域的基础设施模型的输入参数。
Figure BDA0004129061230000111
Figure BDA0004129061230000121
Figure BDA0004129061230000131
Figure BDA0004129061230000141
Figure BDA0004129061230000151
在操作315中,计算设备可以将操作310中的一个或多个输入应用到操作305中指定的TOSCA模板。参照上述非限制性示例,操作315可以包括除了操作310中接收到的其他输入参数外,还将指定区域的输入参数和服务器计划参数应用到TOSCA模板。
在操作320中,计算设备可以基于上述步骤中定义的关系,创建TOSCA节点实例的有向无环图(DAG)。将拓扑模板转译成DAG,描述了待部署应用的结构,包括基于操作315中定义的节点模板的节点形式的组件,以及可以基于关系模板定义的组件间关系(例如,边)。DAG可以包括专用组件、中间件、基础设施组件等。
为了说明上述非限制性示例,图4提供了示例性DAG,指定节点实例401和402以及节点元素之间的关系410。DAG 400指定了一个服务器401运行在Ubuntu 18.04下,另一个服务器402运行在Windows Server 2012下。Ubuntu服务器以T3中型服务器计划运行在东弗吉尼亚地区的AWS,Windows服务器以B2标准服务器计划运行在美国西部地区的Azure。
在操作325中,计算设备可以执行实例化后的模型。操作325可以包括编排引擎基于DAG中定义的顺序接收API调用。
根据一些实施例,操作325可以包括编排引擎230接收Cookbook 233。非限制性示例中,用户可以上传Cookbook 233以供编排引擎230接收。
Cookbook 233在配置管理工具(例如Chef等)中提供配置与策略分发单元。Cookbook定义了场景,并包含各个配置元素,包括如上所述的指定待使用资源和资源应用顺序的配方、属性值、文件分发、Chef扩展以及其他配置元素。
根据一些实施例,操作325可以包括接收定义虚拟机可再用配置的蓝图。例如,每个蓝图可以描述每个单独服务器上待设置的软件配置。
根据一些实施例,操作325可以包括接收包含可执行命令列表的脚本235,这些命令可以由一个或多个脚本引擎在启动时、关闭时或其他任意适用时间执行。操作234可以包括接收包含一个或多个脚本参数的脚本,这些脚本参数包含影响脚本的参数、具体脚本的脚本代码以及脚本附件。
一个非限制性示例中,编排引擎可以通过API调用接收包括策略的输入。例如,用户可以设定提交到编排引擎的策略,如防火墙配置。下面提供了提交到编排引擎来实现防火墙(包括防火墙策略)的示例性代码。
Figure BDA0004129061230000171
Figure BDA0004129061230000181
Figure BDA0004129061230000191
各实施例可以例如利用一个或多个计算机系统来实现,如图6所示的计算机系统500。一个或多个计算机系统500可以例如用来实现本文所述的任意实施例以及这些实施例的组合和子组合。例如,计算机系统500可以用来实现用于进行跨云基础设施部署的系统200(包括图2的云编排架构210)、用于进行跨云基础设施部署的方法300和/或本公开实施例的其他任意实施方案。
计算机系统500可以包括一个或多个处理器(又称为中央处理器或CPU),如处理器504。处理器504可以连接到通信基础设施或总线506。
计算机系统还可以包括用户输入/输出设备508,如监视器、键盘、定点设备等,可以通过用户输入/输出接口502与通信基础设施506通信。
一个或多个处理器504可以是图形处理器。一些实施例中,GPU可以是处理器,即设计为处理数学密集应用的专用电子电路。GPU可以具有并行结构,高效地并行处理大数据块,如计算机图形应用中常见的数学密集数据、图像、视频等。
计算机系统500还可以包括主存储器508,如随机存取存储器(RAM)。主存储器508可以包括一级或多级缓存。主存储器508可以具有存储于其中的控制逻辑(即计算机软件)和/或数据。
计算机系统500还可以包括一个或多个次级存储设备或次存储器510。次存储器510可以包括例如硬盘驱动器512和/或移动式存储设备或驱动器514。移动式存储驱动器514可以是软盘驱动器、磁带驱动器、光盘驱动器、光存储设备、磁带备份设备和/或其他任意存储设备/驱动器。
移动式存储驱动器514可以与移动式存储单元518进行交互。移动式存储单元518可以包括计算机可用或可读存储设备,具有存储于其上的计算机软件(控制逻辑)和/或数据。移动式存储单元518可以是软盘、磁带、光盘、DVD、光存储盘和/或其他任意计算机数据存储设备。移动式存储驱动器514可以对移动式存储单元518进行读取和/或写入。
次存储器510可以包括其他器件、设备、组件、手段或其他方式,允许计算机程序和/或其他指令和/或数据供计算机系统500访问。这些器件、设备、组件、手段或其他方式可以包括例如移动式存储单元522和接口520。移动式存储单元522和接口520例如可以包括程序盒和盒接口(如在电子游戏设备中)、移动式存储器芯片(如EPROM或PROM)和相关联的插口、记忆棒和USB端口、记忆卡和相关联的记忆卡槽和/或其他任意移动式存储设备和相关联的接口。
计算机系统500可以进一步包括通信或网络接口524。通信接口524可以使得计算机系统500能够与外部设备、外部网络、外部实体等(分别共同标以附图标记528)的任意组合进行通信和交互。例如,通信接口524可以允许计算机系统500通过通信路径526与外部或远程设备528进行通信,该通信路径可以是有线和/或无线(或其组合),并可以包括LAN、WAN、互联网等的任意组合。控制逻辑和/或数据可以通过通信路径526往来于计算机系统500传输。
计算机系统500还可以是个人数字助理(PDA)、台式工作站、笔记本计算机、上网本、平板型计算机、智能电话、智能手表或其他可穿戴器具、部分物联网(IoT)和/或嵌入式系统(仅举几个非限制性示例)或它们的任意组合。
计算机系统500可以是客户端或服务器,通过的任意交付模式(包括但不限于远程或分布式云计算方案)访问或托管任意应用和/或数据;本地或本地部署软件(“本地部署(On-Premise)”云方案);“即服务(As-a-Service)”模型(例如,内容即服务(CaaS)、数字内容即服务(DCaaS)、软件即服务(SaaS)、管理软件即服务(MSaaS)、平台即服务(PaaS)、桌面即服务(DaaS)、框架即服务(FaaS)、后台即服务(BaaS)、移动后台即服务(MBaaS)、基础设施即服务(laaS)等);和/或包括上述示例或者其他服务或交付模式的任意组合的混合模型。
计算机系统500中任意适用的数据结构、文件格式和方案可以源自标准,包括但不限于JSON(JavaScript Object Notation-JS对象简谱)、XML(Extensible MarkupLanguage-可扩展标记语言)、YAML(Yet Another Markup Language-另种标记语言)、XHTML(Extensible Hypertext Markup Language-可扩展超文本标记语言)、WML(WirelessMarkup Language-无线标记语言)、MessagePack、XUL(XML User Interface Language-XML用户界面语言)或者其他任意功能类似的单独或组合表示。替代地,专有的数据结构、格式或方案可以专用,也可以与公知或公开的标准组合使用。
一些实施例中,有形非暂态装置或制品(包括其上存储有控制逻辑(软件)的有形非暂态计算机可用或可读介质)在本文中又可称为计算机程序产品或程序存储设备。这包括但不限于计算机系统500、主存储器508、次存储器510和移动式存储单元518和522以及体现上述任意组合的有形制品。这样的控制逻辑在由一个或多个数据处理设备(例如,计算机系统500)执行时可以使得这些数据处理设备如本文所述那样工作。
参阅上述公开,可以理解本公开实施例提供了对具体云供应商基础设施的抽象。因而,用户可以定义模板,该模板很容易就能在用户想要用来部署模板的云供应商上进行参数化。因此,现有技术系统声称是多云,而本公开解决方案却不只如此。这正是表述“跨云(Trans-Cloud)”更适合用来描述这种方式的原因。
本公开实施例可以实现对云应用各方面的综合描述,从基础设施和网络到软件组件及其关系。对拓扑结构的描述从实施技术中分离出来。所描述的不仅仅是基础设施,而能实现对实施技术的抽象。
尽管附图和上述说明书详细图示和描述了本公开,但本公开仍应视作说明性而不受字面限制,应当理解,仅仅表示和描述了某些实施例,希望保护落入本公开范围内的所有更改和修改。

Claims (20)

1.一种用于处理跨云应用模板的系统,包括耦合到处理器的服务器,配置为执行指令:
接收来自用户的输入,所述输入包括云应用拓扑与编排规范(TOSCA)模板和用于通过图形用户界面(GUI)进行实例化的输入参数;
将所述输入参数应用到所述TOSCA模板;
基于定义的关系,创建所述TOSCA模板的有向无环图;
基于所述无环图中定义的顺序,通过API调用编排引擎来执行实例化后的模型。
2.如权利要求1所述的系统,其中,所述服务器包括云编排器API、TOSCA解释器和编排器引擎。
3.如权利要求1所述的系统,其中,所述TOSCA模板包括区域特性,指定特定网络或服务器将要部署到的云提供商和区域中至少一项。
4.如权利要求1所述的系统,其中,所述TOSCA模板包括服务器计划特性,指定用于所述TOSCA模板中指定节点的计划,所述节点配置为实例化服务器。
5.如权利要求1所述的系统,其中,所述执行实例化后的模型包括:基于所述无环图,部署云基础设施。
6.如权利要求1所述的系统,其中,所述执行实例化后的模型包括:接收一个或多个Cookbook,包括一个或多个配方、属性值、文件分发和/或Chef扩展。
7.如权利要求1所述的系统,其中,所述系统还配置为实现基础设施跨云应用模板部署进程的自动化。
8.如权利要求1所述的系统,其中,创建所述无环图包括:通过TOSCA解释器,基于所述TOSCA模板和输入参数,动态地构建TOSCA节点模板实例的有向无环图。
9.一种计算机实施的方法,包括:
接收来自用户的输入,所述输入包括云应用拓扑与编排规范(TOSCA)模板和用于通过图形用户界面(GUI)进行实例化的输入参数;
将所述输入参数应用到所述TOSCA模板;
基于定义的关系,创建所述TOSCA模板的有向无环图;
基于所述无环图中定义的顺序,通过API调用编排引擎来执行实例化后的模型。
10.如权利要求9所述的方法,其中,所述TOSCA模板包括区域特性,指定特定网络或服务器将要部署到的云提供商和区域中至少一项。
11.如权利要求9所述的方法,其中,所述TOSCA模板包括服务器计划特性,指定用于所述TOSCA模板中指定节点的计划,所述节点配置为实例化服务器。
12.如权利要求9所述的方法,其中,所述执行实例化后的模型包括:基于所述无环图,部署云基础设施。
13.如权利要求9所述的方法,其中,所述执行实例化后的模型包括:接收一个或多个Cookbook,包括一个或多个配方、属性值、文件分发和/或Chef扩展。
14.如权利要求9所述的方法,其中,创建所述无环图包括:通过TOSCA解释器,基于所述TOSCA模板和输入参数,动态地构建TOSCA节点模板实例的有向无环图。
15.一种有形非暂态计算机可读设备,其上存储有指令,所述指令被计算设备执行时使得所述计算设备执行如下操作:
接收来自用户的输入,所述输入包括云应用拓扑与编排规范(TOSCA)模板和用于通过图形用户界面(GUI)进行实例化的输入参数;
将所述输入参数应用到所述TOSCA模板;
基于定义的关系,创建所述TOSCA模板的有向无环图;
基于所述无环图中定义的顺序,通过API调用编排引擎来执行实例化后的模型。
16.如权利要求15所述的有形非暂态计算机可读设备,其中,所述指令配置为利用所述计算设备的TOSCA解释器和编排器引擎来执行。
17.如权利要求15所述的有形非暂态计算机可读设备,其中,所述TOSCA模板包括:区域特性,指定特定网络或服务器将要部署到的云提供商和区域中至少一项;以及服务器计划特性,指定用于所述TOSCA模板中指定节点的计划,所述节点配置为实例化服务器。
18.如权利要求15所述的有形非暂态计算机可读设备,其中,所述执行实例化后的模型包括:基于所述无环图,部署云基础设施。
19.如权利要求15所述的有形非暂态计算机可读设备,其中,所述系统还配置为实现基础设施跨云应用模板部署进程的自动化。
20.如权利要求15所述的方法,其中,创建所述无环图包括:通过TOSCA解释器,基于所述TOSCA模板和输入参数,动态地构建TOSCA节点模板实例的有向无环图。
CN202180063601.5A 2020-09-16 2021-09-16 实现跨云应用模板的系统及方法 Pending CN116391182A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063079413P 2020-09-16 2020-09-16
US63/079,413 2020-09-16
PCT/US2021/050726 WO2022061022A1 (en) 2020-09-16 2021-09-16 Systems and methods for implementing trans-cloud application templates

Publications (1)

Publication Number Publication Date
CN116391182A true CN116391182A (zh) 2023-07-04

Family

ID=80626665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180063601.5A Pending CN116391182A (zh) 2020-09-16 2021-09-16 实现跨云应用模板的系统及方法

Country Status (8)

Country Link
US (1) US20220083392A1 (zh)
EP (1) EP4214613A1 (zh)
JP (1) JP2023541896A (zh)
CN (1) CN116391182A (zh)
AU (1) AU2021343482A1 (zh)
CA (1) CA3191970A1 (zh)
MX (1) MX2023003154A (zh)
WO (1) WO2022061022A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327239B (zh) * 2020-09-27 2024-08-20 伊姆西Ip控股有限责任公司 存储和访问数据的方法、电子设备和计算机程序产品
US20230153166A1 (en) * 2021-11-18 2023-05-18 Aaron Bawcom Systems and methods for pattern-based software applications
US20240323101A1 (en) * 2023-03-21 2024-09-26 Amdocs Development Limited System, method, and computer program for a tosca modeling optimization for 5g network orchestration
CN115996230B (zh) * 2023-03-22 2023-06-16 北京源堡科技有限公司 跨云数据同步方法、装置、计算机设备及可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335851B1 (en) * 2012-03-12 2012-12-18 Ringcentral, Inc. Network resource deployment for cloud-based services
GB2522031A (en) * 2014-01-10 2015-07-15 Ibm Method and system for automatic creation of service templates for deployment of resources in a data processing infrastructure
US9762450B2 (en) * 2014-09-04 2017-09-12 Accenture Global Services Limited System architecture for cloud-platform infrastructure layouts
WO2016053306A1 (en) * 2014-09-30 2016-04-07 Hewlett Packard Enterprise Development Lp Topology based management of second day operations
US9838431B2 (en) * 2014-11-28 2017-12-05 International Business Machines Corporation Context-based cloud security assurance system
US11223536B2 (en) * 2016-04-04 2022-01-11 At&T Intellectual Property I, L.P. Model driven process for automated deployment of domain 2.0 virtualized services and applications on cloud infrastructure
US11604665B2 (en) * 2016-08-28 2023-03-14 Vmware, Inc. Multi-tiered-application distribution to resource-provider hosts by an automated resource-exchange system
US10621236B2 (en) * 2016-09-16 2020-04-14 At&T Intellectual Property I, L.P. Concept based querying of graph databases
US10841171B2 (en) * 2018-06-14 2020-11-17 Infosys Limited Method and system for virtual network service activation

Also Published As

Publication number Publication date
WO2022061022A1 (en) 2022-03-24
WO2022061022A9 (en) 2022-06-23
US20220083392A1 (en) 2022-03-17
EP4214613A1 (en) 2023-07-26
CA3191970A1 (en) 2022-03-24
MX2023003154A (es) 2023-04-20
JP2023541896A (ja) 2023-10-04
AU2021343482A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US10776175B1 (en) Solver for cluster management system
CA2990252C (en) Systems and methods for blueprint-based cloud management
CN116391182A (zh) 实现跨云应用模板的系统及方法
EP3170071B1 (en) Self-extending cloud
US9311161B2 (en) Automatically configured management service payloads for cloud IT services delivery
US9621428B1 (en) Multi-tiered cloud application topology modeling tool
US9274843B2 (en) Multi-redundant switchable process pooling for cloud it services delivery
US9058198B2 (en) System resource sharing in a multi-tenant platform-as-a-service environment in a cloud computing system
US9851933B2 (en) Capability-based abstraction of software-defined infrastructure
US11593143B2 (en) System and method for distributed orchestration management in network function virtualization
EP3149603B1 (en) Customized configuration of cloud-based applications prior to deployment
US11249781B2 (en) Cloud agnostic blueprint
US20190087167A1 (en) Generating service images having scrpits for the deployment of services
US20170168813A1 (en) Resource Provider SDK
US10324701B1 (en) Rapid deployment of computing instances
WO2020156268A1 (en) Method and system for cloud application and service integration using pattern-based discovery
US20220200929A1 (en) Multi-cloud deployment and validation
Caballer et al. TOSCA-based orchestration of complex clusters at the IaaS level
US11900091B2 (en) Extensible upgrade and modification as a service
Gunda et al. Performance evaluation of wireguard in kubernetes cluster
Logan et al. Containers
Roy et al. A system and method for calculating estimated price of any cloud provisioning template
Ifrah et al. Deploy Containerized Applications with Azure Kubernetes Service (AKS)
Das Integrating cloud service deployment automation with software-defined environments

Legal Events

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