云计算技术部件的类型到类型分析转让专利

申请号 : CN201580065950.5

文献号 : CN107003906B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : P·F·辛普里斯M·G·德卢卡J·Q·W·坎特韦尔S·D·彼得森M·J·韦尔斯

申请人 : 埃森哲环球服务有限公司

摘要 :

云计算已经成为广泛的计算服务的非常受欢迎的实现选项。然而,向云中供应服务是一个非常困难的技术挑战。这部分是由于新的云服务提供者的定期出现、以及由服务提供者提供的不同计算平台、服务、资产、支持的技术部件和其他特征的日常更改和重新配置。分析架构确定如何将特定技术部件映射到任何特定服务提供者的执行环境中。

权利要求 :

1.一种用于类型到类型分析的系统,包括:

类型定义电路,被配置为:

向第一服务提供者能够在由所述第一服务提供者提供的第一虚拟化托管区域中实例化并且运行的第一部件类型分配第一类型说明符;

向第二服务提供者能够在由所述第二服务提供者提供的第二虚拟化托管区域中实例化并且运行的第二部件类型分配第二类型说明符;属性链接电路,被配置为:将第一技术属性集合链接到所述第一部件类型;以及将第二技术属性集合链接到所述第二部件类型;属性转译电路,被配置为:在用于所述第一部件类型的所述第一技术属性集合与用于所述第二部件类型的所述第二技术属性集合之间建立转译对应关系;以及类型映射电路,被配置为:

根据所述转译对应关系将所述第一部件类型转译成所述第二部件类型,以在所述第二服务提供者提供的所述第二虚拟化托管区域中实例化和运行所述第二部件类型,而不是实例化和运行所述第一部件类型。

2.根据权利要求1所述的系统,其中:

所述第一技术属性集合包括用于转译的所述第一部件类型的输入技术属性(322);以及所述属性转译电路包括向第一转译标识符(708)分配所述输入技术属性(322)的输入表(702)。

3.根据权利要求2所述的系统,其中:

所述属性转译电路还包括被配置为规定是否存在用于所述输入技术属性(322)的转译脚本(716)的转译表(704);

所述转译表(704)包括用于标识所述转译脚本(716)的脚本路径字段;以及所述输入表(702)规定用于所述转译脚本(716)的脚本变量字段。

4.根据权利要求3所述的系统,其中:

当所述脚本路径字段不是空时,所述脚本变量字段包括脚本变量名(712)。

5.根据权利要求4所述的系统,其中

所述类型映射电路被配置为:

获取所述输入技术属性(322)的值;以及

通过所述脚本变量名(712)向所述转译脚本(716)提供所述值。

6.根据权利要求1到5中的任一项所述的系统,还包括:布局电路,被配置为在处理管线阶段(1220,1232)的执行之后,从资源请求者获取与所述第二虚拟化托管区域相对应的虚拟化托管决定,所述处理管线阶段(1220,1232)被配置为确定可行布局选项(1208)以供所述资源请求者选择。

7.根据权利要求6所述的系统,其中:

所述处理管线阶段包括多个顺序处理管线阶段,每个顺序处理管线阶段被配置为从初始候选布局选项集合(1204)中排除布局选项以到达所述可行布局选项(1208)。

8.根据权利要求2到5中的任一项所述的系统,其中:所述第二技术属性集合包括所述第二部件类型的输出技术属性(720);以及所述属性转译电路还包括被配置为将所述第一转译标识符(708)链接到所述第二部件类型的输出表(706)。

9.根据权利要求1到5中的任一项所述的系统,其中所述类型映射电路被配置为通过以下方式来转译:将所述第一技术属性集合中的所述第一部件类型的多个输入技术属性(322)映射到所述第二技术属性集合中的所述第二部件类型的较少的输出技术属性(720);或者将所述第一技术属性集合中的所述第一部件类型的输入技术属性(322)映射到所述第二技术属性集合中的所述第二部件类型的多个输出技术属性(720)。

10.根据权利要求1到5中的任一项所述的系统,其中所述类型映射电路还被配置为在将所述第一部件类型转译成所述第二部件类型之前:确定所述第一部件类型的第一资产、以及用于所述第一资产的资产值;

确定用于所述第一资产的资产替换;以及

使用所述资产替换来置换所述资产值。

11.根据权利要求10所述的系统,其中:

所述第一资产包括磁盘映像并且所述资产值包括磁盘映像标识符,或者所述第一资产包括网络并且所述资产值包括网络标识符。

12.一种用于类型到类型分析的方法,包括:在混合云架构系统中:

通过类型定义电路:

向第一服务提供者能够在由所述第一服务提供者提供的第一虚拟化托管区域中实例化并且运行的第一部件类型分配第一类型说明符;

向第二服务提供者能够在由所述第二服务提供者提供的第二虚拟化托管区域中实例化并且运行的第二部件类型分配第二类型说明符;通过属性链接电路:将第一技术属性集合链接到所述第一部件类型;以及将第二技术属性的第二集合链接到所述第二部件类型;通过属性转译电路:在用于所述第一部件类型的所述第一技术属性集合与用于所述第二部件类型的所述第二技术属性集合之间建立转译对应关系;以及通过类型映射电路:

根据所述转译对应关系将所述第一部件类型转译成所述第二部件类型,以在所述第二服务提供者提供的所述第二虚拟化托管区域中实例化和运行所述第二部件类型,而不是实例化和运行所述第一部件类型。

13.根据权利要求12所述的方法,其中:

所述第一技术属性集合包括用于转译的所述第一部件类型的输入技术属性(322);并且还包括:向第一转译标识符(708)分配所述输入技术属性(322)。

14.根据权利要求13所述的方法,还包括:在处理管线阶段(1220,1232)的执行之后,从资源请求者获取与所述第二虚拟化托管区域相对应的虚拟化托管决定,所述处理管线阶段(1220,1232)被配置为确定可行布局选项(1208)以供所述资源请求者选择,其中所述处理管线阶段(1220,1232)包括多个顺序处理管线阶段,每个顺序处理管线阶段被配置为从初始候选布局选项集合(1204)中排除布局选项以到达所述可行布局选项(1208)。

15.根据权利要求13或14所述的方法,还包括:规定是否存在用于所述输入技术属性(322)的转译脚本(716);以及规定用于所述转译脚本(716)的脚本变量字段。

16.根据权利要求15所述的方法,还包括:提供用于标识所述转译脚本(716)的脚本路径字段;以及当所述脚本路径字段标识所述转译脚本(716)时,在所述脚本变量字段中设置脚本变量名(712)。

17.根据权利要求16所述的方法,还包括:获取所述输入技术属性(322)的值;以及

通过所述脚本变量名(712)向所述转译脚本(716)提供所述值。

18.根据权利要求13到14中的任一项所述的方法,其中:所述第二技术属性集合包括所述第二部件类型的输出技术属性(720);并且还包括:将所述第一转译标识符(708)链接到所述第二部件类型。

说明书 :

云计算技术部件的类型到类型分析

[0001] 优先权声明
[0002] 本申请要求2004年12月5日提交的名称为“Hybrid Cloud Management”的美国临时申请序列号62/088,474的优先权,其通过引用完全并入本文。本申请还要求以下各项的优先权:2015年8月21日提交的名称为“Network Component Placement Architecture”的美国非临时申请序列号14/832,458;2015年8月21日提交的名称为“Technical Component Provisioning Using Metadata Structural Hierarchy”的美国非临时申请序列号14/832,516;2015年8月21日提交的名称为“Type-to-Type Analysis for Cloud Computing Technical Components”的美国非临时申请序列号14/832,548;2015年8月21日提交的名称为“Dynamic Network Component Placement”的美国非临时申请序列号14/832,598;2015年8月21日提交的名称为“Multi-Cloud Provisioning Architecture with Template Aggergation”的美国非临时申请序列号14/832,652;以及2015年8月21日提交的名称为“Cloud Computing Placement and Provisioning Architecture”的美国非临时申请序列号14/832,679;所有这些都通过引用整体并入。

技术领域

[0003] 本申请涉及分析、控制和向虚拟资源的复杂全球网络架构中供应技术部件。

背景技术

[0004] 处理能力、存储器容量、网络连接性和带宽、可用磁盘空间、以及可用于处理系统的其他资源在过去的二十年中呈指数级增长。计算资源已经发展到单个物理服务器可以托管虚拟机和虚拟化功能的很多实例的程度。这些进展导致了将很多类型的实体的广泛的功能广泛地供应到可以定位在几乎任何地方的集中式处理资源的特定口袋中,也就是重新定位到处理在很多不同地理位置的很多不同客户端的由很多不同的服务提供者托管的处理资源云中。云系统控制、部署和供应的改进将推动功能到云中的进一步发展和实现。

附图说明

[0005] 图1示出了全局网络架构的示例。
[0006] 图2示出了混合云架构的示例实现。
[0007] 图3示出了类型定义表的示例。
[0008] 图4示出了用于建立类型定义表的逻辑。
[0009] 图5示出了用于等效映射的数据库表。
[0010] 图6示出了用于等效映射的逻辑。
[0011] 图7示出了用于类型到类型转译的数据库表。
[0012] 图8示出了用于类型到类型转译的逻辑。
[0013] 图9示出了混合云架构内的元数据架构。
[0014] 图10示出了用于元数据收集、创建和推导的逻辑。
[0015] 图11示出了混合云架构内的元数据架构的另一视图。
[0016] 图12示出了布局管线电路。
[0017] 图13至图19示出了用于从候选布局选项中确定可行的布局选项的逻辑。
[0018] 图20示出了布局管线电路的另一示例。
[0019] 图21示出了布局管线电路的另一示例。
[0020] 图22示出了顺序工作的两个布局管线。
[0021] 图23示出了支持动态重新布局的混合云架构的示例。
[0022] 图24示出了动态重新布局的示例。
[0023] 图25示出了用于动态重新布局的逻辑流程。
[0024] 图26示出了离线动态重新布局的示例。
[0025] 图27示出了云计算布局和供应架构。
[0026] 图28和图29示出了用于云计算布局和供应架构的逻辑流程。
[0027] 图30示出了云计算布局和供应架构的示例执行。
[0028] 图31示出了示例基线技术服务模板和具体化的技术服务模板。
[0029] 图32提供了为特定服务提供者定义类型、网络和资产的服务提供者元数据的图示。
[0030] 图33示出了示例区域累积。
[0031] 图34示出了示例网络累积。
[0032] 图35示出了网络等效的示例。
[0033] 图36示出了示例资产累积。
[0034] 图37示出了资产等效的示例。
[0035] 图38示出了基线技术服务模板中的VM资源定义。
[0036] 图39示出了多级类型到类型转译架构。
[0037] 图40示出了用于多级类型到类型转译的逻辑流程。
[0038] 图41示出了具有模板聚合的云资源供应架构。
[0039] 图42示出了用于具有模板聚合的云资源供应架构的逻辑流程。
[0040] 图43示出了用于具有模板聚合的云资源供应架构的附加逻辑流程。
[0041] 图44示出了用于具有模板聚合的云资源供应架构的附加逻辑流程。
[0042] 图45示出了具有模板聚合的云资源供应架构的另一示例。

具体实施方式

[0043] 图1和图2提供了下面详细描述的用于复杂云架构控制和供应的技术解决方案的讨论的示例上下文。图1和图2中的示例示出了很多可能的不同实现上下文之一。在这方面,技术解决方案的应用不限于图1和图2所示的架构和系统,但是适用于很多其他云计算实现、架构和连接。
[0044] 图1示出了全局网络架构100。遍布全局网络架构100的是云计算服务提供者,例如,服务提供者102、103、104、106和108。服务提供者可以位于任何地理区域,例如,美国(US)东部、US西部或中欧。可以根据关于位置做出的任何期望的区别来定义表征服务提供者的地理区域。服务提供者可以在多个地理位置提供云计算基础设施。
[0045] 服务提供者可以经由通常公开可获得的平台来提供计算资源。服务提供者可以附加地或备选地提供“内部部署”的计算资源,其通常涉及与公共云资源相比具有增加的隐私和安全性的位置。例如,内部部署的位置可以在由已经将计算功能移动到基于云的实现的实体所拥有的安全设施内。服务提供者的示例包括亚马逊、谷歌、微软和埃森哲,他们为内部部署的用户提供例如亚马逊网络服务(AWS)、谷歌计算引擎(GCE)、微软Azure(Azure)和Windows Azure Pack(WAP))云实现,仅作为几个示例。
[0046] 遍及全局网络架构100的是提供服务提供者内部以及服务提供者和其他实体之间的连接的网络,例如网络110。网络110可以包括通过任何预定的和可能动态的网际协议(IP)地址范围定义的专用和公共网络。混合云架构(HCA)112在多个云服务之间进行复杂的云架构供应和执行决策,同时考虑到全局网络架构100、各种服务提供者的位置和功能、以及其他因素。供应和执行决策将在下面详细讨论,并且作为示例包括确定要实例化的资源,确定实例化资源的位置选项(例如,在哪个服务提供者区域),以及确定用于资源的可能的替换实现选项。下面更详细地描述HCA 112的具体方面。
[0047] 作为概述,HCA 112可以包括被配置为收集、存储和分析云服务元数据的元数据电路114。HCA 112实现等效性和被配置为确定资源内的资产和网络之间的等效性以及在不同的服务提供者之间映射云资源类型的类型到类型(TTT)电路116。资源是被管理的对象,类型是被管理的对象的原型。“区域”可以是指特定地理区域中具有托管能力的单位,其中可以部署类型。
[0048] HCA 112还包括被配置为确定在全局网络架构100中可以在哪里、如何以及通过哪个服务提供者来实例化由具体资源请求者150所请求的功能的布局电路118。换言之,HCA 112确定所请求的资源的布局选项。动态布局电路120便于查看和更新布局电路决策。HCA 
112还可以实现端到端供应架构122,端到端供应架构122被配置为除了其他特征之外,一旦选择了布局选项,则接受对于云服务的资源请求者请求,确定布局选项,以及执行供应动作。供应动作在下面更详细地描述,并且可以包括例如确定要部署哪些资源以及向资源提供者提供实例化资源的指令。
[0049] HCA 112采取的动作受很多技术因素的影响,包括从各种来源收集的元数据,包括描述服务提供者提供的产品和能力的服务提供者元数据152、以及描述由资源请求者150对HCA 112所做的云功能请求156的请求者元数据154,这些技术因素还包括由资源请求者150做出的功能请求的服务要求(例如,PCI数据一致性)。
[0050] 在作为架构的角色中,HCA 112分析云服务请求,并且做出关于所请求服务的实现和供应的决策。这一技术角色是复杂的,部分原因在于每个服务提供者提供的不同的云计算服务。也就是说,每个服务提供者具有广泛变化的技术特征集合。
[0051] 例如,图1示出了运行很多不同虚拟机(VM)的服务提供者108的特定数据中心124,每个虚拟机运行很多不同的虚拟功能(VF)。数据中心124可以包括网络设备的高密度阵列,包括路由器和交换机126以及主机服务器128。主机服务器128支持服务提供者108从数据中心124提供的特定的一组计算功能。作为很多示例中的仅一个,服务提供者108通过数据中心124及其其他基础设施可以支持很多不同类型的虚拟机(不同的处理器数目、RAM的数量和磁盘的大小)、图形处理器、加密硬件、或其他属性;多种不同类型的网络前端(例如,网站的不同类型和功能);几种不同类型的数据库解决方案(例如,SQL数据库平台);安全数据存储解决方案,例如支付卡行业(PCI)数据(或任何其他安全数据标准)兼容存储装置;几种不同类型的应用服务器;和很多不同类型的数据层。此外,服务提供者108和数据中心124可以具有用于HCA进行分析的另外的特性,包括数据中心124是内部部署还是公共位置;哪些网络可以提供与数据中心124的连接;服务提供者108支持哪些资产;以及其他特性。
[0052] 图2示出了被配置为在多个云服务之间执行复杂云架构供应和执行决策的HCA 112的示例实现。HCA 112包括通信接口202、系统电路204、输入/输出接口206、以及HCA 112在其上生成用户界面209的显示器208。
[0053] 用户界面209和输入/输出接口206可以包括图形用户界面(GUI)、触敏显示器、语音或面部识别输入、按钮、开关、扬声器和其他用户界面元件。输入/输出接口206的附加示例包括麦克风、视频和静止映像相机、耳机和麦克风输入/输出插孔、通用串行总线(USB)连接器、存储卡插槽和其他类型的输入。输入/输出接口206还可以包括磁或光介质接口(例如,CDROM或DVD驱动器)、串行和并行总线接口、以及键盘和鼠标接口。
[0054] 通信接口202可以包括无线传输器和接收器(“收发器”)210和由收发器210的发射/接收电路使用的任何天线212。收发器210和天线212可以支持WiFi网络通信,例如,在任何版本的IEEE 802.11下,例如802.11n或802.11ac。通信接口202还可以包括有线收发器214。收发器214可以为诸如任何类型的以太网、电缆数据服务接口规范(DOCSIS)、数字用户线路(DSL)、同步光网络(SONET)或其他协议等各种通信协议中的任一种提供物理层接口。
[0055] 系统电路204可以包括硬件、软件、固件或其他逻辑的任何组合。系统电路204可以例如利用一个或多个片上系统(SoC)、专用集成电路(ASIC)、微处理器、分立模拟和数字电路、以及其它电路来实现。系统电路204是HCA 112中任何所需功能的实现的一部分。作为仅一个示例,系统电路204可以包括一个或多个指令处理器216和存储器218。存储器218存储例如控制指令220和操作系统222。处理器216执行控制指令220和操作系统222以执行HCA 112的任何期望功能。控制参数224提供并且规定控制指令220的配置和操作选项、操作系统
222、以及HCA 112的其他功能。
[0056] HCA 112还包括存储设备(例如,硬盘驱动器(HDD)和固态磁盘驱动器(SDD))。例如,存储设备可以定义和存储控制指令220例如通过数据库控制系统访问以执行在控制指令220中实现的功能的数据库。在图2所示的示例中,数据库包括元数据数据库226、等效数据库228、和TTT数据库230。数据库226、228和230中的每个定义存储控制指令220读取、写入、删除和修改以执行下述处理的记录的表。
[0057] 在这方面,系统电路204例如通过控制指令220可以包括被配置为收集、存储和分析云服务元数据的元数据处理232;被配置为确定资产和网络之间的等效性的TTT处理234,包括被配置为在不同服务提供者之间映射云资源类型的TTT处理;被配置为确定特定资源请求者所请求的功能在全局网络架构100中可以被实例化的位置的布局引擎236;以及被配置为检查和更新由布局引擎236先前做出的决定的动态布局指令238。
[0058] 等效性和类型到类型(TTT)
[0059] 下面的讨论使用已经提交了对于要在云中托管的一组服务的请求的资源请求者的示例。一组服务可以由标识所请求的服务的服务模板以及描述所请求的服务的元数据来定义。在本示例中,一组服务用于新的SharePoint站点,服务模板将其定义为包括三个VM上的三个Web前端、两个VM上的两个应用服务器、和两个附加VM上的两个SQL数据库服务器的数据层。请求者元数据154指示应用将与PCI数据一起工作,这需要数据层的增强的安全性和内部部署供应,而不是到公共云中的供应。此外,示例假定服务模板将公共云蓝色VM(来自假定的蓝色服务提供者)标识为每个VM的基线模板类型。
[0060] 图3示出了类型定义表300的示例,图4示出了用于建立类型定义表300的相应逻辑流程400。类型定义表300可以手动填充,例如,使用如何将一个资源的参数映射到另一资源的参数的专家确定、以及由给定提供者提供的哪些资源被认为等同于由不同提供者提供的资源的确定。在其他实现中,自动化分析过程可以向表300添加记录,例如响应于确定由不同服务提供者提供的两个资源何时等效以及参数如何在资源之间映射的真实世界测试或预定义规则。相同类型的自动化测试/规则和专家手动过程也可以将记录添加到图5所示的等效映射表和图7所示的转译表,其将在下面讨论。
[0061] TTT处理234定义类型表302(402)并且填充类型表302。类型表302包括例如类型名称字段304(404)和类型标识符字段306(406)。在本示例中,类型表302定义来自四个不同服务提供者的四个VM类型:蓝色、绿色、黑色和红色。已经为每个VM类型分配了类型标识符(408),例如蓝色VM是类型2,红色VM是类型5。类型表302可以定义和标识任何数目的不同类型的VM。另外,类型表302可以定义和标识要在云中供应的计算服务的任何数目和类型的其他技术部件。例如,类型表可以定义和分配类型到网站、存储帐户、网络、负载平衡硬件、数据库、监控系统、或在不同服务提供者系统中服务相同功能的任何其他类型的技术部件。
[0062] 图3还示出了TTT处理234定义(420)并且填充的类型属性表320。类型属性表320包括例如属性字段322(422)和类型标识符字段324(424),用于建立表征任何给定服务提供者的任何给定类型的各种属性。也就是说,类型属性表320将类型链接到属性(426)。在本示例中,类型属性表320将红色VM(类型5)链接到属性:VM名称、处理器、RAM、盘大小和OS盘。类型属性表320将蓝色VM(类型2)链接到属性:标识符、大小和OS盘。
[0063] 类型属性表320还可以包括属性类型字段326。属性类型字段326可以包括提供该属性类型的附加信息的每个属性的标识符(428)。例如,OS盘的属性类型设置为2,在本例中表示OS盘是“资产”,并且可以如下所述进行等效映射。类似地,网络名称的属性类型设置为1,表示网络名称是“网络”,并且也可以进行等效映射。其他属性类型可以设置为空(NULL),以指示在TTT转译之前不对它们应用特殊处理(例如,等效映射)。
[0064] 在一个实现中,TTT处理234用资产等效映射后跟TTT转译来实现。关于资产等效映射,例如,TTT处理234可以确定第一部件类型的资产(例如OS盘)、以及资产值,例如,资产的“Disk A-27.vhd”。然后,TTT处理234可以确定用于在第二服务提供者中提供资产的资产替换,例如资产的GUID3。TTT处理234然后用例如定义要在Java脚本对象表示(JSON)文件中供应的服务的数据集中的资产替换来置换资产值。在这方面,等效映射被配置为确定哪些服务提供者向例如在技术服务模板中规定的基线资产提供等效资产,并且可以向HCA 112中的其他处理电路(诸如布局引擎236)提供服务提供者的标识符。一旦等效映射被执行,则TTT处理234执行TTT转译。
[0065] 图5示出了等效映射500的数据库表,其中图6提供相应的逻辑流程。继续上述关于SharePoint站点的示例,TTT处理234读取元数据以确定将数据层布局在PCI兼容的云服务中。下面详细描述元数据架构,包括元数据的来源及其存储方式。因此,TTT处理234(开始于模板蓝色VM和OS盘(例如,用于数据层的SQL服务器))搜索用于安全环境的等效OS盘。
[0066] 对于诸如磁盘映像等一组服务以及网络的资源请求者请求中包括的任何资产可以执行等效映射。等效映射可以是针对特定资产预定义的单个资产到单个资产转译阶段。
[0067] 图5示出了用于在资产的等效映射中使用的资产等效表502(602)和资产表504(604)。资产等效表502存储资产的唯一标识符,并且将资产分组在一起作为功能等同。资产表504存储资产等效性标识符506和资产名称508。资产表504中的资产等效性标识符506的值是资产等效表502中的值的外键。因此,当具体资产共享相同的资产等效性标识符506时,这些特定资产由表502和表504定义为等效资产。资产名称508可以提供可以用于资产替换的资产值。对于OS盘资产,资产名称508可以提供位置,例如文件路径或全局唯一标识符(GUID),在该位置能够找到磁盘映像。
[0068] 等效映射过程获取为模板VM中的OS盘资产规定的资产名称,例如“Disk  A-27.vhd”(606)。等效映射使用资产名称对资产表504执行查找(608),并且使用匹配的资产等效性标识符506从资产表获取记录(610)。在这种情况下,结果是“abc.ami”和GUID3。等效映射例如通过搜索区域表来确定每个结果的区域(612),并且例如基于元数据来确定哪些区域与资源的供应兼容(614)。本示例中的结果是GUID3,其对应于红色VM内部部署区域中的磁盘映像(616)。换言之,等效映射过程已经确定资产名称“Disk A-27.vhd”的资产替换GUID3。将GUID3确定为资产替换后,等效映射使用GUID3置换“Disk A-27.vhd”(618)。
[0069] 对于网络,等效映射采用网络名称的值,例如蓝色VM模板的“网络1”(620)。等效映射执行网络表520中的网络名称值的查找以找到父网络(622),例如父网络A。网络表520将网络1、2和3定义为父网A网络表520的累积成员(624)。由于它们的等效性,成员被添加,因此等效映射可以从网络2(绿色区域)或网络3(红色区域)中选择作为网络1的替换。在本示例中,等效映射选择网络3属于与PCI数据兼容的区域(626),并且通过用网络3置换网络1来进行资产替换,例如在服务请求的JSON描述中(628)。
[0070] 每个网络可能具有例如不同的IP地址范围,但是为了确定等效的目的,网络1、2和3中的任何一个彼此相同,因为它们都属于网络A。在该情况下,网络A是架构可以用于将定制元数据附接到作为网络A的孩子并且在网络A下由于其包含而被定义为等效的实际虚拟网络的架构中的抽象。累积网络也可以彼此嵌套在一起。特定网络内的一组网络内的每个网络可以被认为是等效的。网络等效性可以确定将网络置于与在技术资源模板中规定的不同的区域的网络选项。换言之,网络等效性定义了来自多个提供者的多个网络之间的等效性。等效性分析自动进行等效决定,而不是用问题轰炸用户。当多个网络选项可用时,等效处理可以基于例如被定义并链接到网络或资产的优先顺序来进行选择。
[0071] 在资产、网络和其他特殊类型被映射之后,TTT处理234继续进行TTT转译(630)。一方面,TTT处理234将基线技术部件类型转译为替换技术部件类型,例如当基线技术部件类型可以由定义执行等同功能的不同类型的不同服务提供者来实现时。在这方面,TTT处理234被配置为确定哪些服务提供者向基线类型提供等效类型,如上面关于图1-6所述,并且可以向HCA 112中的其他处理电路(例如布局引擎236)提供服务提供者的标识符。
[0072] 图7示出了TTT转译700的数据库表,其中图8提供相应的逻辑流程。在一个实现中,TTT转译参考输入表702、转译表704和输出表706。输入表包括转译标识符708、输入属性标识符710和输入参数名称712。输入属性标识符710对应于在类型属性表320中标识的属性,转译标识符708提供要遵循的转译路径,如下面将要解释的。输入参数名称712规定要执行以支持TTT转译的脚本(如果有的话)的输入参数。
[0073] 转译表704包括要与转译标识符708匹配的转译标识符714、和路径字段716。路径字段716规定要执行(如果有的话)以便于TTT转译的脚本,以从在输入表702中标识的输入参数获取输入。在给定文件系统中,路径字段716可以通过提供到脚本的路径和脚本的名称来规定脚本。这些脚本可以用各种各样的脚本语言(包括PowerShell、Ruby或Python)来实现,例如由确定如何在特定资源类型之间来回映射参数的资源转译专家。输出表706包括转译标识符718和输出标识符720。输出标识符720规定输入属性所映射的输出属性。转译表704通过转译标识符714链接输入表702和输出表706。
[0074] 图7中给出的特定示例特定于蓝色VM(类型2)与红色VM(类型5)之间的转译的若干示例。类似的表可以被准备用于在类型表302中定义的任何其他类型之间转译属性。此外,用于类型到类型转译和等效性确定的任何表可以是资源请求者特定的。换言之,任何特定的资源请求者可以控制或规定HCA 112如何转译该特定资源请求者的类型、以及哪些资产被认为对于该特定资源请求者是等效的。因此,TTT电路116在其分析中可以响应于请求托管服务的特定实体来访问和从等效数据库228和TTT数据库230中的表中检索数据。
[0075] 在一些实现中,TTT电路116通过参考类型来执行到最终类型的转译。两步转译避免了转译表的指数增长以及相关联的复杂性和内存要求,这些要求将被定义用于从“n”个类型到任何“n-1”个其他类型的直接转译的所有可能的组合。图39和40提供了两步转译的附加细节。
[0076] 图39示出了多级类型到类型转译架构3900。然而,首先,图39示出了一种可能的基线方法3902。图39将基线方法3902与在转译架构3900中优选由TTT电路116执行的两步转译模型3918进行比较。在本示例中,存在从不同服务提供者定义并且具有不同特性的五种不同VM类型:红色VM 3906、蓝色VM 3908、绿色VM 3910、白色VM 3912和黑色VM 3914。根据它们如何设置它们的硬件特征集的参数,VM类型有所不同。在某些情况下,例如对于白色VM 3912,类型包括处理器数目和RAM数量的特定参数。在其他示例中,例如对于黑色VM 3914,特征集用文本串表示,例如“高性能”。基线方法定义了等效数据库228和TTT数据库230中的一组转译和等效表,用于从五种类型中的任何一种直接转换成五种类型中的任何其他类型。也就是说,五个VM中的每个具有四组转译表3916,导致对潜在的准备时间、资源消耗和用于转译的基础设施的重大投资。
[0077] 图39还示出了多级架构3900如何定义两步转译参考模型3918,并且图40示出了用于多级类型到类型转译的相应的逻辑流程4000。标识参考模型3918中包括的类型(4002)。参考模型3918规定特定类型作为参考类型(4004)。在图39所示的示例中,选择绿色VM 3910作为参考类型3920。参考类型3920可以是任何选择的类型。在一些实现中,参考类型3920被选择为技术服务模板908中最常表示的类型。
[0078] HCA 112将每种类型的转译和等效表设置为参考类型3920(4006)。类似地,HCA 112从参考类型3920到彼此类型设置转译和等效表(4008)。如两步转译参考模型3918所示,从红色VM类型到黑色VM类型的转译通过参考类型3920。转译是从源类型红色VM 3906到参考类型3920(绿色VM 3910),然后从参考类型3920到目标类型黑色VM 3914。
[0079] TTT电路116确定要转译的源类型(4010)和要转译到的目的地类型(4012)。如果它们相同,则不需要转译(4014)。否则,当源类型是参考类型3920时,则TTT电路116执行从参考类型到目的地类型的单步转译(4016)。当目的地类型是参考类型时,TTT电路116还执行从源类型到参考类型的单步转译(4018)。当参考类型既不是源类型也不是目的地类型时,TTT电路116执行两步转译:首先从源类型到参考类型(4020),然后从参考类型到目的地类型(4022)。
[0080] 也就是说,两步转译模型3918建立一种机制,通过该机制,TTT电路116最多执行两个转译以从例如在基线技术服务模板中规定的源类型移动到将要部署在所选择的位置的目的地类型。两步转译参考模型3918实现了用于类型之间的转译的潜在准备时间、资源消耗和基础设施的显著减少。参考模型3918避免了转译表中的指数增长以及相关联的复杂性和内存要求,这些要求将被定义用于从“n”类型到任何“n-1”个其他类型的直接转译的所有可能组合。
[0081] 下面是参考图7和图8关于从类型5转换到类型2的若干示例。TTT转译在类型属性表320中寻找针对正被分析的类型要转译的下一属性。本示例中的下一属性是VM名称属性,属性标识符为1(802)。TTT转译使用属性标识符1在输入表702中搜索作为输入属性ID(804),并且从而定位由转译标识符1标识的转译(806)。在这种情况下,转译是转译标识符1的单个实例。
[0082] 接下来,TTT转译使用转译标识符1在转译表704中搜索以确定是否执行脚本(808)。在这种情况下,路径字段716为空,表示没有脚本要运行。TTT转译还使用转译标识符1在输出表706中搜索以找到相应的输出标识符(810)。在这种情况下,输出标识符为6,对应于类型属性表320中指出的标识符字段。由于没有脚本要执行,所以TTT转译将值形式输入属性1VM名称直接复制到输出属性6标识符。也就是说,在类型2VM中,标识符字段存储类型
5VM在其VM名称字段中存储的值。
[0083] 类似地,在从类型2转换为类型5时,输入属性将在某一点处为标识符属性6。输入表702标识该输入属性的转译标识符3。转译标识符3没有在转译表704中标识的脚本,并且具有如在输出表706中标识的输出属性1VM名称。相应地,当从类型5转换为类型2时,TTT转译将标识符属性的值直接复制到VM名称属性中。
[0084] 对于每个属性重复该过程(814)。在每个属性被转译之后,TTT转译已经产生可以提供给后续处理的已转译对象,例如,供应引擎(816)。
[0085] 以另一示例为例,下一属性是处理器属性标识符2。TTT转译在输入表702中寻找匹配的转译标识符2的两个实例。转译标识符2的两个实例引用处理器属性ID 2以及RAM属性ID 3。此外,转译表704指示对于转译标识符2运行“脚本(script)1”,并且输出表指示将输出布局到输出标识符7、用于类型2VM的大小(Size)属性中。相应地,TTT转译从模板中提取处理器和RAM属性值,并且将处理器和RAM属性值作为参数提供给脚本(818),确定目的地属性(820),并且执行将脚本输出写入目的地属性的脚本(822)。在本示例中,脚本从输入属性接受处理器和RAM值,并且输出与处理器和RAM值相对应的Size属性的值。例如,如果处理器是值4并且RAM是“8GB”,则脚本可以确定Size是“标准A1”并且输出例如{“Size”:“标准(Standard)A1”}作为JSON转译以获得类型5的处理器数目和RAM数量的类型2等效VM属性。脚本可以实现输入变量到输出变量的任何这样的预定义的映射。
[0086] 类似地,在从类型2转换为类型5时,输入属性将在某一点处为属性7Size。输入表702为Size属性规定了转译标识符4,并且脚本使用称为大小输入(SizeInput)的输入参数来运行转译。转译表704指示要运行的脚本的名称是“脚本2”,并且TTT转译执行SizeInput被设置为Size属性值的脚本,例如“标准A1”。脚本实现Size属性到在输出表706中标识的输出参数2(处理器)和3(RAM)的预定映射。在这种情况下,脚本将“标准A1”转译为用于处理器属性的值“4”以及用于RAM属性的值“8GB”。也就是说,TTT转译将单个属性{“Size”:
“Standard A1”}转换为两个属性:{“处理器”:4}和{“RAM”:“8GB”}。
[0087] 换言之,TTT电路116包括类型定义电路,类型定义电路被配置为向从第一服务提供者可获得的第一部件类型(例如,蓝色VM)分配(例如,经由类型表302)第一类型说明符(例如,类型5),并且向从第二服务提供者可获得的第二部件类型(例如,红色VM)分配第二类型说明符(例如,类型2)。
[0088] TTT电路116还包括属性链接电路,属性链接电路被配置为将第技术属性集合(例如,处理器和RAM)链接(例如,经由类型属性表320)到第一部件类型并且将第二技术属性的第二集合(例如Size)链接到第二部件类型。属性转译电路在用于第一部件类型的第一技术属性集合和用于第二部件类型的第二技术属性集合之间建立转译对应关系(例如,经由输入表702、转译表704和输出表706)。
[0089] 类型映射电路被配置为通过确定第一部件类型的第一资产(例如OS盘)和第一资产的资产值(例如,“Disk A-27.vhd”)来进行等效替换。映射电路还确定用于第一资产的资产替换(例如,GUID3),用于将第一资产提供给第二服务提供者。映射电路还用资产替换来置换资产值。在等效替换之后,类型映射电路根据转译对应关系将第一部件类型转译成第二部件类型。结果,类型映射电路准备用于在第二服务提供者处提供第一部件类型作为第二部件类型的技术描述(例如,JSON文档)。
[0090] TTT电路116的执行可以遵循例如确定可以在哪些区域实例化实现功能请求的云资源的布局引擎。当资源请求者150对区域做出决定时,TTT电路116然后可以转译用于云资源的资源模板描述,以与托管该区域中的服务的服务提供者兼容。如果云资源将被部署到已经在资源模板中规定的区域和服务提供者,则不需要执行任何转译。
[0091] 返回到SharePoint示例,服务模板定义了在三个蓝色VM上的三个Web前端、在两个蓝色VM上的两个应用服务器、以及在两个附加蓝色虚拟机上的两个SQL数据库服务器的数据层。请求者元数据154指示应用将与PCI数据一起工作,这需要数据层的增强的安全性和内部部署供应,而不是到公共云中的供应。因此,TTT转译将数据层从蓝色VM转换为红色VM,其通过元数据被称为与PCI符合。
[0092] 在部署时,服务模板将规定蓝色VM中的三个Web前端、蓝色VM中的两个应用服务器,其全部连接到同一个网络Network 1。但是,数据层的两个VM在红色中,在网络3下具有不同的服务提供者。但是网络1、网络2和网络3在同一个父网络A下定义,表明所有三个网络可以相互通信,从而允许完整的VM集合根据需要互操作。
[0093] 元数据
[0094] HCA 112实现有助于解决寻找用于实现技术服务请求的可行布局选项的技术挑战的元数据架构。元数据架构将各种类型的元数据链接到技术部件(例如,类型和资产)、到技术服务模板、以及到容器层级。HCA 112将特定的元数据子集注入布局分析管线中,布局分析管线确定构成服务请求的技术部件可以布局在广泛且复杂的服务提供者空间中的位置。
[0095] 图9示出了元数据架构900,其包括混合云架构112内的元数据电路114的示例实现。在该实现中,元数据数据库226存储请求者元数据902,其表征资源请求者服务请求,如果有的话,请求的服务需要什么数据安全特征;服务提供者元数据904,其表征关于技术部件类型、资产、区域特性和其他服务提供者方面的服务提供者能力;以及用于容器元数据906的元数据,其表征部分、技术部件类型910(例如,VM、网站和DB)、资产912(例如,OS盘)网络、以及定义资源请求者可以订购的可用服务集的基线实现的技术服务模板908的其他特征。技术服务模板908也可以被称为目录项目。模板数据库909可以存储技术服务模板908。
在这方面,模板数据库909可以提供技术服务模板908的预定义库,每个技术服务模板提供实现技术服务请求(例如,SharePoint站点)的一个或多个资源的初始或基线规范(例如,VM、DB和网络,包括资源的参数(例如,VM的大小)和布局选项(例如,要作为默认布局在蓝色提供者欧盟北部地区)。HCA 112可以在其他实现中使用附加的、不同的或更少类型的元数据。
[0096] 图10示出了用于元数据收集、创建和推导的相应逻辑流程1000。通信接口202例如从服务提供者或另一元数据源接收表征由服务提供者控制的虚拟化托管区域的服务提供者元数据904(1002)。仅作为几个示例,服务提供者元数据904可以描述由服务提供者区域中的服务提供者支持的技术部件类型,由服务提供者支持的资产;从服务提供者可获得的数据安全类型;哪些资源请求者具有对服务提供者的订阅;订阅适用于哪些服务提供者区域、网络或其他特征,以及服务提供者区域是公共的还是私有的(例如,优选区域)。
[0097] 通信接口202还例如从资源请求者150接收请求者元数据902(1004)。请求者元数据902可以由提交资源请求的资源请求者150处的特定雇员提供,可以由资源请求者处理系统自动提供(例如,通过为资源请求者通常请求的特定资源提供预先建立的元数据),或以其他方式。请求者元数据902表征由资源请求者150对于虚拟化托管做出的技术服务请求,例如对于新的玩具开发环境的请求。作为几个示例,请求者元数据902可以指示资源请求者服务请求的哪些方面(如果有的话)具有特定数据安全性要求,例如对PCI符合性的要求;预计在开发环境中有多少用户使用服务器、程序和数据库;用户所在的地方以及他们预期访问服务的位置(例如,这可能会推动布局决策,以便在靠近雇员的区域查找技术部件类型,或者作为另一示例,确保处理欧盟(EU)公民数据的技术部件被布局在EU范围内并且符合所有EU数据处理要求);开发环境的关键性水平;适用的服务水平目标(SLO)和服务水平协议(SLA);以及技术服务请求的其他资源请求者特定的方面。请求者元数据902还可以表征资源请求者本身,作为一个示例,包括服务提供者的标识符、服务提供者区域、和资源请求者150具有活动订阅的服务提供者网络。鉴于潜在的巨大数量的可能的布局选项,元数据架构
900结合以上和以下所述的处理显著提高了标识布局选项的效率。
[0098] 为了获取请求者元数据902,HCA 112可以向资源请求者150呈现一系列元数据问题,以供资源请求者150回答,例如通过在GUI 209中生成并且在资源请求者150处本地示出的元数据完成模板916。元数据架构900可以以很多不同方式在元数据数据库226中存储企业元数据902。作为一个示例,企业元数据902可以采用标签和值对的形式,例如{“用户数”,“500”}或{“数据类型”,“PCI”},以XML、JSON或另一格式,或者作为存储在数据库中的数据记录,其中列被预定义以保存每个元数据问题的元数据答案。也就是说,技术服务模板908可以广泛地应用于广泛的实现,其中响应于特定请求者元数据902进行定制。在这方面,HCA 112可以包括映射规则914。映射规则914从例如请求者元数据获取导出的元数据(1006)。映射规则914还可以规定将导出的元数据存储到由资源请求者150做出的服务请求的技术服务模板的特定参数字段中。作为一个示例,映射规则可以将资源请求者元数据答案“300个预期用户转换为VM大小的导出的技术元数据“标准A0”或“4处理器,8GB RAM”,并且将导出的元数据保存到布局电路118将针对特定技术服务请求处理的技术服务模板中。其可变参数字段完成的技术服务模板可以被称为“具体化的”模板(1008)。
[0099] 映射规则914例关键性如从资源请求者元数据902生成附加技术元数据。附加技术元数据成为具体化的技术服务模板的一部分,供HCA 112中的其他进程考虑,包括布局引擎236。例如,映射规则可以规定企业元数据902{“用户数目(Number of Users)”}>200映射到附加技术元数据,诸如“{Size,A1}”或{“处理器”:4}以及{“RAM:8GB”}。该规则避免向资源请求者询问他们不太可能理解或具有答案的高度技术性的问题——即如何为给定的服务提供者规定特定大小的VM。规则将关于用户数目的更可理解的答案转译为服务提供者理解的VM的技术大小规范。这样,布局引擎236具有关于哪个进行布局决定的附加信息,同时将特定请求者元数据902与可以插入模板中的附加技术元数据分开地保持。
[0100] 元数据数据库226还可以定义容器元数据906(1010)。图11示出了混合云架构112中的元数据架构1100的另一视图、以及容器元数据906的附加细节。容器元数据906定义资源请求者的视图以及适用于资源请求者及其活动的结构类型。也就是说,容器元数据906是特定资源请求者的操作结构到元数据层级的预定义的真实世界映射。以下给出了使用特定服务和环境(例如,测试和开发环境)的玩具公司的示例。然而,容器元数据906当然可以改变以与给定资源请求者的任何特定的内部结构相一致,例如通过添加或移除该资源请求者专门使用的新环境。因此,容器元数据906的实现可以在资源请求者之间变化很大。容器元数据906用于在供应之前定义资源与这些资源的容器或所有者之间的关系的技术目的。因此,元数据架构有助于元数据驱动的策略布局,其解决了以自动化方式为复杂技术服务请求寻找布局选项的困难的技术挑战,并且不会使资源请求者经历重复尝试且错误的方法来调整服务请求以找到成功的布局。
[0101] 图11示出了玩具公司容器层级1102的示例。容器层级1102定义了多级技术容器结构(1010)。该结构包括可选地从先前的容器级别继承属性的容器级别。每个容器级别可以用特定的容器元数据填充(1012),例如作为具有资源请求者的内部结构的知识的个人执行的预执行步骤;作为使用分配给多级技术容器结构并且例如当为资源请求者设计和实现多级技术容器结构时建立的预定义元数据值的自动化步骤;或者作为自动和手动元数据输入的组合。下面提供了多级技术容器结构的示例。
[0102] 容器层级1102包括资源请求者级别1104。在资源请求者级别1104,容器元数据可以一般地或整体地描述资源请求者的各方面。例如,容器元数据可以描述资源请求者的类型、其产品、位置、雇员人数、雇员位置和其他资源请求者特性。
[0103] 在图11的示例中,容器层级1102包括作为下一容器级别的服务级别1106。服务水平1106可以表示资源请求者内的特定功能或过程,例如新的玩具设计、研发、玩具营销、玩具库存和货运物流。在其他实现中,容器层级1102可以取而代之将资源请求者单元或划分级别定义为下一容器级别。在服务级别1106,仅作为几个示例,附接的容器元数据可以包括服务的关键性水平(例如,映射规则914或布局引擎236可以从其导出或暗示SLA和SLO并且影响布局决定);支付服务费用中心;管理员ID;服务说明;成本审批人员;自动批准的美元门槛,无需联系成本审批人员;可用的服务预算;雇佣限制;以及更具体的SLO和SLA(例如,累积到SLO中以及来自上述层级的SLO)。
[0104] 容器层级1102还包括环境级别1108。环境级别1108可以定义有助于提供在服务级别1106为玩具公司定义的服务的特定操作类型。作为示例,操作类型可以包括生产环境、测试环境和开发环境。附接在环境级别1108的容器元数据可以包括例如环境的描述或标识(映射规则914或布局引擎236可以从其导出或暗示影响布局决定的附加元数据,例如生产环境的数据安全限制);确定监管问题和数据安全要求(例如,遵守PCI、PII或ITAR);环境所有者;收费代码、预算分配或其他财务特性;以及更具体的SLO和SLA(例如,生产环境的更具体的可用性或可靠性级别)。
[0105] 拓扑级别1110可以包括标识资源级别1112处的相关资源组的拓扑元数据。例如,可以将资源拓扑组定义为包括对应于由特定服务提供者实现的资源集合的成员。也就是说,拓扑级别1110可以建立对于服务提供者具有预定义意义的资源集合。作为一个示例,拓扑元数据可以将Sharepoint站点定义为若干VM、DB和连接网络的集合。
[0106] 资源级别1112表示实现拓扑和环境的特定技术部件。例如,资源级别1112可以包括规定技术部件类型的属性的容器元数据,例如VM属性,例如用于大小、处理器、RAM或其他硬件部件的属性、数据库属性、或Web前端属性;网络属性;资产属性,例如网站和磁盘映像的名称或其他标识符。
[0107] 容器层级的任何元数据部件和技术服务模板的任何字段可以是预定义和固定的,或者可以是可变参数字段。HCA 112例如经由映射规则914可以从请求者元数据902、现有容器元数据906或服务提供者元数据904的任何部分导出技术部件值,并且将技术部件值存储在任何参数字段中,无论是在技术服务模板908中还是在容器层级中。因此,当资源请求者150请求技术服务的实现时,HCA 112可以检索针对该特定技术服务预定义的基线技术服务模板,根据元数据填充特定于资源请求者150的参数字段,并且将特定模板(和元数据)传递到布局引擎236以确定布局选项。也就是说,虽然预定义的技术服务模板可用,并且为一个或多个资源规定一个可能的基线实现,但该基线模板服务模板根据特定资源请求者和元数据更改为特定模板。例如,基线技术服务模板可以包括用户数目或大小的空的参数字段。
HCA 112通过将例如提供者元数据904的实例匹配到基线模板中以获得也称为具体化的技术服务模板的特定模板来创建特定模板。
[0108] 作为具体示例,用于玩具公司的开发环境的技术服务模板可以将web服务器、应用服务器和数据库定义为构成开发环境的技术部件类型。技术服务模板还可以规定资产。资产的示例包括将内容部署到Web服务器上和SQL数据库中的部署分组、以及由提供Web服务器、应用服务器和数据库功能的映像的映像名称规定的OS盘映像。
[0109] 换言之,在一些实现中,技术服务模板908是分层文件,例如JSON文件。文件规定和标识每个资源、资源之间的关系、以及资源的技术元数据。技术服务模板908可以包括参数化值。请求者元数据902和服务提供者元数据904提供用于导出附加元数据的元数据源。导出的元数据可以存储在用于参数化值的字段中。
[0110] 此外,HCA 112可以从资源之间的关系来导出各实现方面。例如,技术服务模板可以指示网站使用数据库,并且这两者都是应用的一部分。作为响应,HCA 112可以自动导出数据库和网站的监视关系和监视实现。也就是说,给出例如可能的操作和故障相互关系,已知这些关系使得HCA 112能够确定例如哪些资源要一起监视。作为一个示例,技术服务模板可以规定web服务器依赖于特定数据库和特定网络。数据库到Web服务器和网络到Web服务器的定义的关系使得HCA 112能够将Web服务器的故障排除分析优先于数据库和网络资源。
[0111] 也就是说,使用在供应之前获得的元数据,HCA 112在具体化的技术服务模板上发起布局引擎236(例如,被实现为布局分析管线)的执行。服务提供者元数据、容器元数据和请求者元数据是到布局引擎236的输入并且在所有管线阶段可用,以确定用于实现技术服务请求的可行的布局选项(1014)。一个技术优点在于,布局引擎236具有可用于在非常复杂的服务提供者领域中决定布局选项并且可用于自动确定在基线技术服务模板中没有在字面上规定的布局选项的技术数据。布局管线电路可以实现一系列管线阶段。每个管线阶段是本地化的处理单元,其接收数据输入并且基于被分配给该特定管线阶段并且在该特定管线阶段中实现的特定处理任务集来产生数据输出。
[0112] 布局引擎和重新布局
[0113] 图12示出了布局电路118的布局引擎1200的示例实现。图13-19示出了用于布局引擎1200的相应的逻辑流程。布局引擎1200将技术服务模板1202作为输入,技术服务模板1202通常关于特定资源请求者150以及元数据数据库226中的全部或部分元数据被完全具体化。布局引擎1200开始于在技术服务模板1202中定义的每个资源的一组候选布局选项
1204,并且确定每个资源的可行的布局选项1206。在一个实现中,布局引擎1200从候选布局选项1204中逐级排除没有通过在任何特定阶段中定义的过滤器的布局选项。
[0114] 布局引擎1200还执行过滤以施加导致可行布局选项1208的有序集合的顺序(例如,通过成本、使用流行度、可靠性或其他度量)。布局引擎1200生成GUI 1210,其中资源请求者150呈现在显示器1212上。GUI 1210呈现可行布局选项的有序集合用于由资源请求者150选择。布局选项的选择可以驱动TTT处理以将基线技术服务模板转换为用于资源请求者
150以及资源请求者150请求的技术服务的特定服务模板。
[0115] 布局引擎1200对在技术服务模板1202中定义的每个资源1214执行布局分析。布局引擎1200的一个方面是硬技术决策处理阶段,其做出关于特定服务提供者区域是否是可行的布局选项的特定确定。在这方面,HCA 112可以定义包括HCA 112认为等效的两个或更多个区域(例如,关于地理位置或连接速度和可靠性)的累积区域(下面在图32-37中描述一些示例)。也就是说,区域可以是区域集合的成员,并且集合中的每个区域可以被认为是等效的,使得如果一个区域是可行的布局选项,则集合中的其他区域也是可行的布局选项。
[0116] 布局引擎1200的另一方面是元数据处理阶段。元数据处理阶段可以做出资源请求者特定的布局确定。这些确定可以发起请求者元数据902。例如,可以从考虑中排除不能满足由资源请求者150规定的数据安全性要求的区域。也就是说,元数据处理阶段可以包括对资源请求者策略编码的资源请求者特定的规则集,例如影响布局决定的数据治理策略和雇员位置策略。
[0117] 在图11所示的示例中,布局引擎1200的处理方面由布局管线电路1216实现。布局电路118包括多个顺序管线处理阶段。可以存在附加的、不同的或更少的管线处理阶段,并且管线处理阶段可以以与图12所示的不同的顺序来排列,并且具有图13-19所示的不同的逻辑流程。
[0118] 布局管线电路1216包括被配置为确定资源请求者150对于哪些服务提供者区域和网络具有活动订阅的订阅阶段1220。订阅阶段1220接收初始候选布局选项集合1204,例如HCA 112已知的服务提供者区域集合(1302),并且接收要在技术服务模板1202中分析的下一资源(1304)。订阅阶段1220还接收表征资源请求者当前对于哪些区域具有活动订阅的元数据(1306)。作为示例,这可以包括请求者元数据902和服务提供者元数据904。订阅阶段1220鉴于订阅信息来确定哪些候选布局选项实际上可用于资源请求者(1308),并且从进一步的考虑中排除未被订阅的那些区域(1310)。可能发生排除,因为例如资源请求者150根本不订阅服务提供者,因为资源请求者150不订阅当前提供的任何服务提供者网络,或者用于其他订阅原因。订阅阶段1220将更新后的布局选项集合传送到下一处理管线阶段——类型阶段1222(1312)。
[0119] 换言之,与资源请求者150相关联的是订阅或帐户,例如对于诸如Amazon或Microsoft等云服务提供者。如果资源请求者150没有例如Amazon Web服务的订阅,则资源请求者150不能在那里提供服务。订阅阶段1220相应地从考虑中排除所有Amazon地区。订阅分析也适用于私有云。在私有云情景中,订阅信息可以是用于连接到私有云系统管理器的证书(作为一个示例)。如果可用元数据中的证书没有就位,则订阅阶段1220可以认为私有云区域不可用。
[0120] 布局管线电路1216还包括从前一管线阶段接收当前候选布局选项集合的类型阶段1222(1402)。类型阶段1222确定技术服务模板1202中考虑的资源的基线技术部件类型(1404)。例如,类型阶段1222可以在技术服务模板1202内标识定义虚拟机资源类型的参数字段,例如用于类型、名称、位置、诸如大小等属性、OS简档、存储简档和网络简档的参数字段。
[0121] 类型阶段1222还接收服务提供者元数据904(1406)。给定基线技术部件类型和服务提供者元数据904,类型阶段1222确定哪些服务提供者区域支持基线技术部件类型(1408)。还可以鉴于除了服务提供者元数据904之外的元数据来做出该确定,诸如可以规定可接受类型的特定限制或特性的请求者元数据902和容器元数据906。
[0122] 另外,类型阶段1222被配置为发起TTT电路116的处理(1410)。TTT电路116分析基线技术部件类型,例如,如上文关于图2-8所述。TTT电路116确定是否存在与基线技术部件类型等效的类型,并且如果是,则确定在哪些区域中。因此,类型阶段1222可以响应于TTT处理来接收支持基线技术部件类型的等效物的附加服务提供者区域(1412)。类型阶段1222将这些服务提供者区域保留在候选布局选项集合中(1414)(即,这些区域没有被排除在考虑之外),并且将更新后的布局选项集合传送到下一处理管线阶段(1416)。
[0123] 换言之,对于每个区域,在类型(例如,VM、网站或SQL数据库)和该类型的区域之间存在例如在数据库表中定义的关系。并非每个类型在每个区域中都可用。针对布局管线电路1216试图布局的当前资源,类型阶段1222查看实现该资源的规定类型与在订阅过滤器之后剩余的区域之间的关系。类型阶段1222确定服务提供者在该区域中是否具有规定的类型。类型过滤器保留支持规定类型的订阅区域。此外,TTT处理还运行以检查技术服务模板1202中的规定类型是否在别处可用,以及它是否作为等效类型在其他区域中可用。
[0124] 在图12的示例中,布局管线电路1216在类型阶段1222之后包括资产阶段1224。资产阶段1224从先前管线阶段接收当前候选布局选项集合(1502)。资产阶段1224确定用于在技术服务模板1202中考虑的资源的基线技术资产(1504)。例如,类型阶段1222可以在技术服务模板1202内标识定义OS盘或其他资产的参数字段。
[0125] 资产阶段1224还接收服务提供者元数据904(1506)。给定所标识的基线技术资产和服务提供者元数据904,资产阶段1224确定哪些服务提供者区域支持基线技术资产(1508)。可以鉴于除了服务提供者元数据904(例如请求者元数据902和容器元数据906)之外的其它元数据来做出该确定。任何元数据可以规定可接受资产的特定限制或特性。
[0126] 另外,资产阶段1224被配置为发起TTT电路116的处理(1510)。特别地,由TTT电路116执行的等效性分析分析基线技术资产,例如,如上文关于图2-6所述。等效性分析确定是否存在与基线技术资产等效的资产,并且如果是,则在哪些区域中。因此,资产阶段1224可以响应于等效性分析来接收支持基线技术资产的等效物的附加服务提供者区域(1512)。资产阶段1224将这些服务提供者区域保留在候选布局选项集合中(1514)(而不是排除它们),并且将更新后的布局选项集合传送到下一处理管线阶段(1516)。
[0127] 换言之,资产与区域和订阅相关联。资产在技术服务模板1202中被引用以支持特定资源,例如磁盘映像资产。资产阶段1224分析资产,以确保该资产与所考虑区域之间存在关系。资产阶段1224排除了与资产没有关系的区域。如果技术服务模板中的资产(或类型或网络)是蓝色提供者资产,但是资源请求者没有蓝色订阅,则除非资产阶段1224在例如红色提供者资产中找到等效物,否则资产无法布局,并且没有布局选项。
[0128] 例如,在容器元数据906中反映的资产元数据可以包括优先级信息。也就是说,如果特定资产(例如,Windows(TM)服务器磁盘映像)的较新版本或更新后的版本可用,则其可以使用(或被认为是等效的),即使该模板专门调用旧版本。
[0129] 布局管线电路1216还可以在其搜索可行布局选项时考虑网络。因此,布局管线电路1216在资产阶段1224之后包括网络阶段1226。网络阶段1226从先前管线阶段接收当前候选布局选项集合(1602)。网络阶段1226确定技术服务模板1202中的基线网络(1604)。例如,网络阶段1226可以在技术服务模板1202内标识具体地定义网络的参数字段。
[0130] 网络阶段1226可以接收服务提供者元数据904(1606)。给定所标识的基线网络和服务提供者元数据904,网络阶段1226确定哪些服务提供者区域支持基线网络(1608)。还可以鉴于除了服务提供者元数据904之外的元数据(例如可以规定可接受网络的特定限制或特性的请求者元数据902和容器元数据906)来做出该确定。
[0131] 此外,网络阶段1226可以发起TTT电路116的处理(1610)。特别地,由TTT电路116执行的等效性分析分析基线网络,例如,如上文关于图2-6所描述的。等效性分析确定是否存在与基线网络等效的网络,并且如果是,则确定在哪些区域中。等效性分析向网络阶段1226提供附加区域(1612)。网络阶段1226将这些服务提供者区域保留在候选布局选项集合中(1614),并且将更新后的布局选项集合传送到下一处理管线阶段(1616)。
[0132] 即使某些区域是用于布局资源的其他可行选项,但是这些区域可能不具有接受该布局的能力。因此,在一些实现中,布局管线电路1216可以包括容量阶段1228以在搜索可行布局选项时考虑容量。
[0133] 像现有管线阶段一样,容量阶段1228从先前管线阶段接收当前候选布局选项集合(1702)。容量阶段1228确定所考虑的资源的实现要求(1704)。例如,容量阶段1228可以在技术服务模板1202内标识各种参考字段,这些参数字段标识处理器数目、RAM量、VM大小、磁盘空间量、VM数目、DB数目、应用服务器数目、网络带宽量、图形处理单元数目(GPU)、加密模块数目、网络端口或接口数目、以及资源实现的其他任何部件的数目或量。
[0134] 容量阶段1228接收例如服务提供者元数据904(1706)。给定所标识的实现要求和服务提供者元数据904,网络阶段1226确定哪些服务提供者区域具有足以满足实现要求的需求的容量(1708)。在这方面,容量阶段1228可以请求或接收更新后的服务提供者元数据904以获得当前容量的更新后的快照。容量阶段1228从进一步考虑中排除不具有实现资源的能力的区域(1710),并且将更新后的布局选项集合传送到下一处理管线阶段(1712)。
[0135] 在图12的示例中,下一管线阶段是元数据阶段1230。元数据阶段1230从先前管线阶段接收当前候选布局选项集合(1802)。元数据阶段1230被配置为根据从资源请求者150获得的特定输入来确定哪些服务提供者区域有资格提供所考虑的资源的实现。因此,元数据阶段1230排除了响应于不合格的服务提供者区域的布局选项。
[0136] 在这方面,元数据阶段1230可以接收例如规定资源请求者的特定需求的请求者元数据902(1804)、规定服务提供者的能力的服务提供者元数据904(1806)、以及规定技术服务模板的属性的容器元数据906(1808)。元数据阶段1230实现一组元数据评估规则,包括可以是资源请求者特定的评估规则(1810)。也就是说,每个资源请求者150可以具有具体化的元数据阶段1230,其处理特定于该资源请求者(例如,在请求者元数据902中所表示的)的问题和关注以及跨多个资源请求者可以可应用的问题和关注。
[0137] 元数据阶段1230执行元数据评估规则以确定给定服务提供者区域是否通过元数据评估规则(1812)。下面提供了一些示例。如果否,则元数据阶段1230从进一步考虑中排除区域(1814)。在其分析之后,元数据阶段1230将更新后的布局选项集合传送到下一处理管线阶段(1816)。
[0138] 元数据阶段1230经由评估规则来分析对布局的资源请求者约束。例如,资源请求者150可以规定某些数据受数据安全规则的限制,例如,用于PII、PCI或ITAR数据。如果是,则元数据阶段1230可以例如从考虑中排除那些不能提供必要的数据安全级别的区域、以及不在允许的地理空间(例如,在美国或欧盟)中的区域。还要注意,具体化的技术服务模板中的一些参数源自请求者元数据902。因此,元数据阶段1230还可以分析具体化的技术服务模板中的参数,并且响应地做出关于布局的进一步决定。例如,关于所需地理布局位置的信息可以是在具体化的模板中的导出元数据,并且从最初作为请求者元数据902提供的数据来获得。
[0139] 图12还示出了过滤和呈现管线阶段1232。过滤和呈现管线阶段1232从先前管线阶段接收当前候选布局选项集合(1902)。在此最后阶段(对于本示例实现),当前候选布局选项集合已经减少到可行的布局选项。
[0140] 过滤和呈现管线阶段1232被配置为确定应用的顺序(1904)并且向可行的布局选项施加该顺序(1906)。过滤和呈现管线阶段1232还可以生成构成有序布局选项的GUI(1908),并且通过通信接口202将GUI传输到资源请求者150(1910)。
[0141] 注意,顺序可以广泛地变化。在一些实现中,顺序由诸如请求者元数据902等其他元数据确定。例如,请求者元数据902可以规定按字母顺序的优选顺序、按成本的顺序、按优选服务提供者的顺序、按位置的顺序、按经验或订阅长度的顺序、或者用于排列可行的布局选项的任何其他机制。附加地或备选地,过滤和呈现管线阶段1232可以基于服务提供者元数据904来施加顺序,包括按感知的可靠性的顺序、为选择特定服务提供者而做出的先前布局决定的百分比、服务提供者评论或排名、或者其他标准。顺序可以通过“明星”评级、数字评级或其他一些排名标记来可视化。
[0142] 资源请求者150为每个资源选择布局选项。可以手动地,通过GUI,或者自动地,例如根据资源请求者150的预定义的一组有序布局偏好,来提供选择。布局选项返回到HCA 112。作为响应,HCA 112可以执行TTT处理以将技术服务模板实际转换成适合于服务提供者为所选择的布局选项执行以实例化由资源请求者150请求的服务的形式。注意,这可以包括将基线技术服务模板分成多个技术服务模板,HCA 112将每个技术服务模板发送给托管所选择的区域的相应服务提供者。也就是说,HCA 112可以确定哪些服务提供者托管在基线技术服务模板中标识的特定资源。当涉及不同的服务提供者时,HCA 112可以将基线技术服务模板分成用于每个服务提供者的单独的技术服务模板。HCA 112在各技术服务模板中从基线技术服务模板布局每个特定服务提供者将实例化的这些资源的资源定义。
[0143] 布局管线电路1216是用于做出布局决定的灵活的、可修改的可定制的机制。图20示出了布局引擎2000的另一示例。在本示例中,布局引擎2000包括紧在过滤和呈现管线阶段1232之前添加的成本阶段2002。成本阶段2002可以确定将资源布局在任何给定布局位置的期望支出。该分析可以基于由服务提供者提供并且在服务提供者元数据904(例如针对每个资源、类型、资产、网络或其他技术部件)中表示的图来完成。
[0144] 图21示出了管线布局电路2100的另一示例。在本示例中,布局引擎2000包括作为第一阶段添加的模板修改阶段2102。模板修改阶段2102可以根据预定义的转换规则响应于元数据数据库226中的任何元数据来插入、删除或更改具体化的技术服务模板的部分。例如,转换规则可以规定,如果容器元数据906规定了“生产”环境,则将灾难恢复部分添加到具体化的技术服务模板。灾难恢复部分可以定义例如一组资源以为在生产环境的具体化的技术服务模板中的其他地方定义的数据库提供自动备份。
[0145] 图22示出了管线布局电路2200的另一实现。在本示例中,第二管线2202跟随第一管线1216。第二管线实现模板修改阶段2102,修改在过滤和呈现管线阶段1232之后进行。修改可以通过以特定顺序(例如循环或填充以完成顺序)规定资源到特定服务提供者的实现来实现资源分配模式。在任何数目的附加管线中可能存在任何数目和类型的附加管线阶段,这些管线阶段相互依次跟随。在任何布置管线中,各个管线阶段可以根据由HCA 112进行的配置改变而被打开或关闭并绕过。
[0146] 返回玩具公司的示例,用于玩具公司的开发环境的技术服务模板可以定义用于web服务器的三个VM、用于应用服务器的两个VM、和用于数据库的两个VM,作为构成开发环境的技术部件类型。技术服务模板还可以规定资产。资产的示例包括将内容部署到Web服务器和SQL数据库上的部署分组、以及用于提供Web服务器、应用服务器和数据库功能的映像的由映像名称规定的OS盘映像。
[0147] 作为元数据如何影响布局的另一示例,假定元数据数据库226建立SharePoint应用服务器将是存储器密集型的,并且需要更多的RAM而不是磁盘空间或处理器速度。布局电路118可以例如在类型阶段1222中实现存储器密集型服务器优选地映射到绿色VM的元数据策略,因为绿色服务提供者在为存储器规定实例类型时允许更多的灵活性。布局电路118可以将两个应用服务器远离蓝色VM映射到绿色VM,只要TTT电路116建立了从蓝色到绿色的类型映射。作为由TTT数据库定义的这种映射的结果,SharePoint供应可能会导致用于Web前端的三个蓝色VM、用于应用服务器的两个绿色VM和用于数据层的两个红色VM。
[0148] 重新布局
[0149] 上述HCA 112支持布局选项的动态重新确定和发起在技术服务模板908中规定的资源的重新布局。作为一个示例,HCA 112可以从资源请求者150接收特定的重新布局请求,并且作为回应,重新评估各个资源或资源集合的可行布局选项,例如在技术服务模板中定义的。为了这样做,HCA 112可以重新执行布局管线电路,以确定是否存在为任何资源规定新的可能的布局位置的任何更新后的布局选项。结合重新评估,HCA 112可以在重新执行布局管线电路之前获取更新后的容器元数据906、请求者元数据902、服务提供者元数据904或任何其它输入数据。
[0150] 图23示出了支持动态重新布局的HCA 2300的示例。在HCA 2300中,系统电路204被扩展为包括用于动态地重新确定布局选项并且发起资源的重新布局的重新评估电路2303。例如,处理器216可以执行用于动态重新确定和重新布局的下面更详细描述的动态布局指令238。
[0151] HCA 2300还包括扩展元数据2304。特别地,扩展元数据2304包括重新布局元数据2306。重新布局元数据2306可以规定重新评估定时2308、重新评估触发条件2310、维护或更新窗口2312、或其他重新布局变量。这些变量可以由负责设置任何给定资源请求的重新评估属性的个人来设置,或者例如,预定义的一组基线重新评估属性可以被插入作为重新布局元数据2306。HCA 2300可以将重新布局元数据2306附接到技术服务模板、资源、资产、类型、服务请求、资源请求者、服务提供者或以其他粒度。
[0152] 换言之,重新布局元数据2306可以作为整体附接到技术服务模板908,或者附接到技术服务模板908内的各个部件。也就是说,HCA 2300可以在重新布局元数据2306和技术服务模板之间、在重新布局元数据2306和技术服务模板中的各个资源之间、或以另一粒度级别来定义链接。链接可以是例如将全部或部分重新布局元数据2306绑定到另一对象(例如技术服务模板)的数据库记录。作为示例,重新布局元数据2306可以链接到在技术服务模板908中定义的资源、资产、类型或其他各个部件。重新布局元数据2306还可以扩展或链接到HCA 2300中的任何其他元数据,诸如请求者元数据902、容器元数据906和服务提供者元数据904。
[0153] 图24示出了动态重新布局2400的示例,并且图25示出了相应的逻辑流程2500。在本示例中,重新评估电路2302确定附接到VM资源VMa 2404的重新评估定时2402(2502),并且确定附接到VMa 2404的重新评估触发器2406(2504)。重新评估电路2302可以通过读取链接到VM资源的重新布局元数据2306来确定这些参数。重新评估定时2402规定何时执行重新评估。作为仅几个示例,重新评估时间2402可以规定规则间隔,例如每夜或每周;具体日期,例如6月25日;具体时间,例如每晚11点;或者其他时间或日期说明符或时间和日期的组合。重新评估触发器规定将导致重新评估而不管重新评估定时的特定条件。作为一个示例,重新评估触发器可以是元数据更新,例如服务提供者元数据904的服务提供者更新。重新评估触发器的另一示例是从资源请求者150接收的重新评估请求。另一示例是对用于为资源请求者150定义或提供资源的技术服务模板做出的更新。
[0154] 重新评估电路2302确定响应于重新评估定时和重新评估触发而发起重新评估的时间(2506)。也就是说,当重新评估定时满足或重新评估触发器触发时,重新评估电路2302优选地使用当前更新后的元数据和技术服务模板来发起资源的重新评估(2508)。图24示出了重新评估的三个示例实例:定时实例2408、触发器实例2410和定时实例2412。
[0155] 发起重新评估可以包括向布局电路118提供技术服务模板908、元数据数据库226中的当前元数据、以及资源(VMa 2404)的标识(2510)。重新评估电路2302作为响应接收更新后的布局选项集合(2512),例如图24的示例中的更新后的布局选项2414、2416和2418。重新评估电路2302还确定更新后的集合是否包括资源的任何新的布局位置,例如VMa 2404的新的布局选项2420(2514)。
[0156] 如果新位置可用于布局资源(2516),则重新评估电路2302可以确定是否实际发起重新布局(2518),并且如果多个新位置是可能的,则选择新位置。例如,重新评估电路2302可以向资源请求者150发送重新布局授权请求,并且接收接受响应或拒绝响应。作为另一示例,重新评估电路2302可以通过评估预定义的重新布局规则来自动确定是否重新布局资源。重新布局规则的示例包括:始终执行重新布局;如果资源属于特定资源请求者,则执行重新布局;如果新位置与优选服务提供者相关联,则执行重新布局;如果新位置是优选位置,则执行重新布局;如果在新位置托管资源的预期成本节省超过成本门限,则执行重新布局。作为示例,假定实现数据服务器的VMa最初被布局在美国西部的蓝色服务提供者区域中。在初始布局之后,红色服务提供者实现了连接到高速网络的更高速度的VM资源。重新布局过程可能会将VMa从蓝色服务提供者区域移动到红色服务提供者区域,以利用更快的VM和网络连接。
[0157] 重新布局可以以不同的方式实现。例如,当决定重新布局资源时,重新评估电路2302可以在所选择的新位置处首先发起重新布局资源的实例化和供应(2520)。重新评估电路2302读取重新评估元数据以确定资源请求者的维护窗口(2522)。图24示出了定义维护窗口2424的示例维护窗口元数据2422。维护窗口针对特定资源请求者定义何时可能在其资源上发生服务。当窗口打开时,重新评估电路2302开始切换到新资源(2524),并且关闭现有资源。切换可以包括暂停现有资源,并且将资源的当前状态复制到新实例化的重新布局。图24示出了到新资源VMb 2428的切换2426。例如,在现有机器状态在新资源处被复制之后,切换可以通过发起路由表的更新以指向新的资源来实现。
[0158] 换言之,重新评估电路2302确定并且对附接到资源的维护窗口采取动作。当资源请求者将接受某些量的中断或停机以例如移动资源时,HCA 112中的每个资源可以附接有定义维护窗口的重新布局元数据(例如,通过数据库表链接)。重新评估电路2302等待窗口打开以切换从而避免重大中断。维护窗口可以是从资源请求者150收集的请求者元数据902的一部分。可以在任何基础上执行重新评估,包括在重新布局元数据2306中定义的定时和触发。作为一个示例,重新评估电路2302可以每周评估每个工作负载中的每个资源,并且向每个资源请求者返回建议。
[0159] 如果移动资源被授权,则执行重新布局,实际切换发生在例如迁移窗口中。也就是说,重新评估电路2302可以预先通过在新的区域提供新的资源来预先设置开关,因为在一些情况下需要大量的时间来设置重新布局资源。一旦新资源被供应,到新资源的实际切换可能会等待直到迁移窗口打开。或者,重新评估电路2302可以在维护窗口期间通过关闭资源、复制到新位置并且重新发起资源来执行离线迁移。
[0160] 图26示出了离线动态重新布局2600的示例,以继续图24所示的示例。在图26中,更新后的布置决定2602、2604和2606由重新评估布局选项产生。更新后的布局决定2602包括新的布局位置2608。当维护窗口2610打开时,重新评估电路2302发起资源(在本示例中为VMa 2404)的关闭2612。重新评估电路2302然后将资源复制2614到新的布局位置2608。复制的资源重启2616,并且重新评估电路2302例如通过更新路由表来发起切换2618。重新布局不需要在维护窗口2610内完成。
[0161] HCA 2300包括布局管线电路,布局管线电路包括被配置为确定规定的服务请求的技术部件(例如,如VM等类型、或者如OS盘等资产)的初始布局选项的多个处理级。HCA 2300存储(例如,作为重新布局元数据2306)链接到技术部件的定时元数据。定时元数据定义用于重新评估技术部件的布局的动态重新评估定时说明符。重新评估电路2302响应于动态重新评估定时说明符,以对技术部件重新执行布局管线电路并且确定更新后的布局选项,包括用于技术部件的新的布局位置。
[0162] 注意,规定的服务请求被链接到特定的资源请求者。用于特定资源请求者的布局执行元数据定义用于对规定的服务请求进行调整的更新时间窗口(例如,维护窗口)。响应于确定更新后的布局选项,重新评估电路2302发起新的布局位置处的技术部件的重新布局部件的实例化。此外,重新评估电路在更新时间窗口内发起到重新布局部件的切换。
[0163] 下面是可能导致新的布局位置变得可用的改变的几个示例。布局管线电路1216包括预订阶段1220,预订阶段1220可以确定资源请求者对于哪些服务提供者区域具有活动订阅的变化,并且从而确定新的布局位置。布局管线电路1216还包括类型阶段1222和资产阶段1224,其被配置为确定对哪些服务提供者区域支持技术部件的改变,并且从而确定新的布局位置。类似地,容量阶段1228可以确定哪些服务提供者区域具有提供技术部件的能力的变化,并且从而确定新的布局位置。此外,元数据阶段1230可以确定哪些服务提供者区域有资格提供技术部件的变化并且从而确定新的布局位置。
[0164] HCA 2300接收用于实现资源请求者的服务请求的技术服务模板。HCA 2300标识技术服务模板内的资源(例如,VM),并且为资源执行包括被配置为确定资源的初始布局选项的多个处理级的布局管线电路。HCA 2300还执行重新评估电路2302,重新评估电路2302被配置为确定何时重新执行资源的布局管线电路,并且确定更新后的布局选项,包括用于资源的新的布局位置。
[0165] 链接到资源的定时元数据提供用于重新评估资源的布局的定时说明符。HCA 2300还获取链接到资源请求者的布局执行元数据。布局执行元数据定义用于实现新的布局位置的更新时间窗口。因此,HCA 2300可以响应于确定更新后的布局选项来开始为新的布局位置处的资源的供应重新布局并且在更新时间窗口内发起到重新布局的切换。
[0166] 布局和供应架构
[0167] 图27示出了云计算布局和供应架构2700。处于说明目的,云计算布局和供应架构2700的该特定示例被分组成布局电路2750和供应电路2752。其它实现方式可以广泛地变化。图28和图29分别示出了相应的逻辑流程2800和2900。HCA 112生成GUI 2702,例如在资源请求者150处本地渲染。在本示例中,GUI 2702显示在为资源请求者150维护的服务目录
2704中反映的可用于资源请求者150的服务(2802)。资源请求者150发布对于虚拟化托管的技术服务请求(TSR)2706,例如对于玩具公司开发环境。HCA 112接收技术服务请求(TSR)(2804)2706并且发起端对端布局和供应分析和动作(2806),其示例在图27中示出。
[0168] 例如,HCA 112可以为开发环境和请求者元数据902、容器元数据906和服务提供者元数据904检索基线技术服务模板(2808)。HCA 112将这些输入提供给布局电路118(2810),布局电路118确定基线技术服务模板中的每个资源的布局选项2708(2812)。如果没有特定资源的布局选项,则可能无法供应开发环境。然而,如果每个资源具有布局选项,则HCA 112可以请求资源请求者150做出布局决定2710(2814)。
[0169] TTT电路116转换基线技术服务模板以满足由其中资源将被布局的区域预期的技术部件规范细节(2816)。如上所述,TTT电路116可以执行等效性分析以寻找等效资产,并且还可以执行类型转译以标识和规定等效类型(例如,VM)。当服务请求向多个不同的区域或服务提供者供应资源时,TTT电路116还可以将基线技术服务模板拆分成多个单独的模板2712,每个模板2712为特定的服务提供者或区域规定资源(2818)。
[0170] 第一调度器2714接收模板(2820),并且响应于例如服务提供者或区域来决定哪个供应系统应该接收模板(2822)。也就是说,HCA 112可以将模板切换到外部服务提供者系统(2824),例如Microsoft(TM)Azure(TM)栈。图27示出了接收特定模板的外部服务提供者2716。响应于接收到特定模板,外部服务提供者2716执行导致在黑色区域2718中的模板中规定的资源的实例化的供应动作。
[0171] HCA 112可以通过将模板传递到作业准备电路2720(其可以被称为作业管理器或粉碎机)来处理模板(图29,2902)。HCA 112执行作业准备电路2720以准备新的作业和实现作业的任务用于在模板中供应资源(2904)。作业准备电路2720将新的供应作业和任务存储在待决作业数据库2722中(2906)。这些代表用待决任务实现的待决供应作业。在这方面,作业准备电路2720读取模板中的依赖性,并且以相反的顺序规定任务以满足依赖性。例如,当模板规定开发环境依赖于web层和数据层用于操作时,作业准备电路2720可以创建开发环境作业,包括首先供应web层的任务,然后是供应数据层的任务,然后是实例化开发环境本身的任务。
[0172] 轮询电路2724按照预定的时间表针对待决任务查询作业准备电路2720(2908)。轮询电路2724可以继续查询新的供应作业,只要轮询电路2724保持运行。当找到新的供应作业时,轮询电路2724按照规定由作业准备电路2720实现的顺序来获取潜在的待决任务(2910)。
[0173] 轮询电路将待决任务传递到调度器电路2726(2912)。调度器电路2726决定待决任务要发送到哪个工作流程(2914),并且发送待决任务用于执行(2916)。工作流程例如由运行手册在供应工作流电路2728中定义。运行手册可以被实现为由系统执行以完成任务的预定义的一组过程和操作。供应工作流电路2728可以执行服务管理自动化(SMA)或用于执行任何待决任务的其他工具,例如通过调用用于该任务的所选择的运行手册(2918)。响应于在运行手册的指导下执行的供应动作,供应工作流电路2728与服务提供者通信。结果,模板中规定的资源以及构成所请求的开发环境的资源在诸如红色区域2730、绿色区域2732和蓝色区域2734等任何数目的服务提供者区域中被供应。
[0174] 图30示出了云计算布局和供应架构3000的另一示例,包括布局电路3002和供应电路3004。在本示例中,资源请求者150请求了开发环境。基线模板3006定义开发环境包括与四个VM相对应的资源,大小为1的两个VM用于数据层,大小为2的一个VM用于应用层,大小为3的一个VM用于网络前端。
[0175] 请求者元数据3008规定适用于数据层的PCI数据安全性。服务提供者元数据3010规定:红色区域支持PCI数据以及大小为1和2的VM;绿色区域不支持PCI数据,并且支持大小为1和2的VM;蓝色区域不支持PCI数据,并且支持大小为2和3的VM。
[0176] 响应于基线模板3006、服务提供者元数据3010和请求者元数据3008,布局电路118确定基线模板3006中的每个资源的布局选项。在这种情况下,布局电路118确定数据层的两个VM必须在红色区域中供应,因为只有红色区域支持构成数据层的大小为1的VM的PCI数据。布局电路118还确定用于应用层的大小为2的VM可以被布局在红色、绿色或蓝色区域中的任何一个中。在这个示例中,资源请求者选择绿色区域。最后,布局电路确定仅蓝色区域可以托管网络前端的大小为3的VM。
[0177] 换言之,布局电路3002已经找到了一种在具有多个不同提供者和区域的大搜索空间内定位开发环境所需的资源集合的方式。供应电路3004然后可以将用于数据层的大小为1的VM的实例化协调到红色区域2730中,将用于应用层的大小为2的VM协调到绿色区域2732中,以及将用于网络前端的大小为3的VM协调到蓝色区域2734中。为此,布局电路3002可以将基线模板分成多个(例如3个)具体化的技术服务模板,每个区域一个。布局电路3002将每个具体化的技术服务模板传递到作业准备电路2720用于处理。
[0178] 以上示例解决了VM和数据安全性要求。然而,如上所述,除了不同类型的资产之外,布局电路3002还可以解决其他技术部件类型,诸如磁盘映像。
[0179] 换言之,HCA 112包括被配置为从资源请求者接收用于供应的计算环境(例如,开发环境)的选择的通信接口。HCA 112还包括与通信接口通信的布局电路,其确定用于实现部分计算环境的资源类型(例如,绿色VM)的布局选项(例如,红色区域、蓝色区域或绿色区域)。布局电路118还从资源请求者150获取从布局选项中选择的所选择的布局。HCA 112中的TTT电路116确定与所选择的布局相对应的服务提供者区域,并且将资源类型转译为目的地类型(例如,蓝色VM)以在服务提供者区域中进行供应。供应电路2752发起服务提供者区域内的目的地类型的供应。供应电路2752可以在实现方面变化很大,例如包括作业准备电路2720、轮询电路2724、调度器电路2726和供应工作流电路2728。供应电路2752的其他实现可以包括附加调度器2714,或者具有附加的或不同的电路。
[0180] 如上所述,为了确定布局选项,布局电路118可以接收用于计算环境的技术服务模板,其中技术服务模板规定资源类型。布局电路118还可以接收表征资源请求者的结构组织的容器元数据、规定计算环境的资源请求者的实现选项的请求者元数据、以及规定从不同服务提供者可获得的可用技术部件的服务提供者元数据。
[0181] 作业准备电路2720准备新的作业和实现新作业的任务以供应目的地类型。作业准备电路2720将新作业和任务存储在待决作业数据库中作为具有待决任务的待决作业。轮询电路2724被配置为针对具有待决任务的待决作业来查询作业准备电路2720。如上所述,调度器电路2726获取待决任务并且将待决任务提供给供应工作流电路2728。供应工作流电路2728通过将待决任务发送到负责在服务提供者区域中实例化资源的服务提供者系统来发起在服务提供者区域内供应目的地类型。
[0182] 图31示出了基线技术服务模板3102和具体化的技术服务模板3104的示例3100。基线技术服务模板3102标识资源类型、适用于资源类型的参数、资源类型的布局规范、以及可选地描述和表征服务提供者支持的资源或资源集合的其他参数。在本示例中,基线服务模板3102定义两个资源:VM资源3106和网站资源3108。注意,基线技术服务模板3102规定VM资源3106位于美国西部地区(用于资源的布局规范),并且具有大小参数3110和实例参数3112(描述VM资源的参数)。网站资源3108经由区域参数3114对其位置进行参数化。简要地转向前,图38示出了在基线技术服务模板中定义VM资源的编码3800的很多示例中的一个。
[0183] 返回图31,具体化的技术服务模板3104规定基线技术服务模板3102中的参数的值。在本示例中,VM资源的大小为“A4”,其向服务提供者暗示特定的技术特征,例如处理器和RAM的数目,而实例数目已经被设置为“2”。在具体化的技术服务模板3104中,网站资源3108的区域参数已经被设置为“美国西部”。
[0184] 图32提供了限定蓝色服务提供者3202的类型、网络和资产的服务提供者元数据3200的图示。在本示例中,服务提供者元数据3200描述了美国西部地区3204。服务提供者元数据3200建立美国西部地区3204支持:VM资源3206和存储资源3208;公司网络3210和开放网络3212;以及各种资产,包括2012服务器磁盘映像3214和2014服务器磁盘映像3216。
[0185] 图33示出了区域累积3300的示例。在本示例中,顶层西部地区3302限定两个子区域累积,主区域累积3304和次区域累积3306。主区域累积3304包括红色提供者“美国西部”区域3308和蓝色提供者“西北太平洋(Pacific NW)”区域3310。次区域累积3306包括红色提供者“西北”地区3312和绿色提供者“加州”地区3314。关于布局电路118和TTT电路116,在公共累积下的区域(例如,西北地区3312和加州地区3314)被视为等效区域,并且布局电路118和TTT电路116可以在查找可行的布局位置方面彼此替换。
[0186] 图34示出了示例网络累积3400。在本示例中,网络累积3400已经在顶层网络“公司网络(Corpnet)”3402下定义了三个网络。上面关于网络管线阶段1226讨论的网络等效处理可以凭借其在Corpnet网络3402下的成员资格来认为红色美国西部网络3404、蓝色加州网络3406或蓝色西雅图网络3408中的任一个等效。因此,即使具体指定的网络(例如红色美国西部网络3404)不可用,则布局选项包括任何其他网络可用的区域,即蓝色加州网络3406或蓝色西雅图网络3408。
[0187] 图35还示出了网络等效性3500。在示例3502中,基线服务模板3504将“Vnet x”规定为网络。TTT电路116解析网络累积3400,以发现蓝色加州网络3406或蓝色西雅图网络3408中的任一个等效并且可以被替换,因为它们被包含在具有“Vnet x”3404的Corpnet 
3402抽象下。在示例3506中,基线服务模板3508将“vlan 432”规定为网络。类似地,TTT电路
116解析网络累积3400,以发现红色美国西部网络3404和蓝色加州网络3406都等效并且可以被替换。
[0188] 图36示出了示例资产累积3600。在本示例中,资产累积3600已经将服务器2012操作系统3602的磁盘映像定义为顶层资产。资产累积3600包括四个替选磁盘映像:红色区域,/path/s2012R2.vhd 3604;红色区域,/path/s2012R3.vhd 3606;蓝色区域/path/server2012.ami 3608;和绿色区域,/path/svv2012R2.vhd 3610。上面讨论的资产等效处理考虑了通过(例如,等效于)映像3604-3610所满足的服务器2012R2基本OS映像3602的指定。
[0189] 图37还示出资产等效性3700。在示例3702中,基线服务模板3704将服务器2012R2基本OS映像3602规定为基线磁盘映像。TTT电路116解析资产累积3600以发现任何替选磁盘映像:红色区域,/path/s2012R2.vhd 3604;红色区域,/path/s2012R3.vhd 3606;蓝色区域/path/server2012.ami 3608;和绿色区域/path/srv2012R2.vhd 3610等效,并且可以替换。在示例3706中,基线服务模板3708规定磁盘映像红色区域,/path/s2012R2.vhd 3604。类似地,TTT电路116解析资产累积3600以找到红色区域,/path/s2012R3.vhd 3606;蓝色区域,/path/server2012.ami 3608;以及绿色区域,/path/srv2012R2.vhd 3610等效,并且可以替换。
[0190] 具有模板聚合的供应架构
[0191] 图41示出了具有模板聚合的云资源供应架构4100(架构4100)。为了说明的目的,将架构4100的该特定示例分成布局电路4102和供应电路4104中。其他实现可以广泛地变化。图42、43和44示出了架构4100可以实现的相应的逻辑流程4200、4300和4400。
[0192] 布局电路4102可以如上文关于图27、28、29和30所述地操作。例如,HCA 112接收技术服务请求(TSR)2706(4202),并且针对技术资源请求2706发起相应的基线技术服务模板4106中的资源的布局分析和供应(4204)。如上所述,布局分析可以包括确定在模板中规定的资源的布局选项,以从资源请求者150获取服务提供者区域的布局决定,以及执行TTT电路116以将基线资源转换成所选择的服务提供者区域预期的形式(4206)。
[0193] 在本示例中,TSR 2706用于开发环境,并且为了下面的讨论的目的,相应的基线模板4106规定机器学习(ML)服务的实例、以及四个VM:两个VM的大小为1并且两个VM的大小为2。还假定(无论是通过资源请求者150选择的布局选项,还是由于其他约束),两个大小为1的VM将被布局在红色服务提供者区域2730(公共区域)中,两个大小为2的VM将被布局在黑色服务提供者区域4108(内部部署区域)中,并且ML实例将被布局在蓝色服务提供者区域
2734(公共区域)中。
[0194] 架构4100中的供应电路4104包括模板调度器电路4108、作业准备电路4110和资源相关电路4112。作业准备电路4110与诸如模板数据库4114等模板源通信。模板符合预定义的格式,例如Azure资源管理(ARM)模板的格式,并且规定实例化TSR 2706所需的一组资源。
[0195] 资源相关电路4112有助于向公共云和本地云供应资源。为此,供应电路4104包括公共云队列4116、内部部署(专用)云队列4118和返回队列4120。另外,供应电路4104包括与供应脚本源(例如公共云脚本数据库4124)通信的公共云供应工作流引擎4122。
[0196] 如下面将更详细地解释的,资源相关电路4112可以向诸如TTT电路116等资源信息源发出资源查询4126。作为示例,资源查询可以通过请求接口来进行,例如相关API 4128,或者可以做为数据库管理系统查询来进行。请求接口将资源特性4128返回给资源相关电路4112。资源特性4128的示例包括:资源将被布局在其中的服务提供者区域,资源是否可以与其他资源聚合在一起以用于供应,资源是否为模板可部署,以及规定处理资源供应的脚本的脚本定位符(例如统一资源指示符(URI))。给定以特定服务提供者区域定义的格式规定资源的资源模板,模板可部署性特性可以规定服务提供者区域是否具有本地部署资源的能力。并非所有资源都是由服务提供者区域可部署的模板;在本示例中,ML实例不是可部署模板。非模板可部署资源可以通过调用由服务提供者区域公开的特定预定义的API函数来实例化,以使服务提供者区域采取实例化资源所需的特定部署动作。
[0197] 图41还示出了内部部署服务提供者4130。内部部署服务提供者4130本地处理资源在私人内部部署环境中的供应。为了支持本地供应,内部部署服务提供者4130包括供应工作流引擎4132。供应工作流引擎4132与诸如内部部署脚本数据库4134等供应脚本源通信。可以存在任何数目的内部部署服务提供者4130,并且每个可以与特定于该内部部署服务提供者的专用云队列通信。也就是说,私有云队列4118可以为内部部署服务提供者定义租户特定的队列。
[0198] 作业准备电路4110与模板调度器电路4108通信,并且从模板调度器电路4108接收用于系统部署(例如,对于TSR 2706)的供应请求消息(4208)。供应请求消息可以是或可以包括模板标识符URI。作业准备电路4110获取模板标识符(4210),并且检索由模板标识符规定的用于实现系统部署的供应模板(4212)。在这方面,例如,URI可以指向模板数据库4114中的特定供应模板。
[0199] 为了继续开发环境的部署示例,图42示出了供应模板4214规定包含在开发环境中的一组资源。也就是说,供应模板4214包括枚举开发环境中的每个资源的资源规定部分4216。在这种情况下,资源规定部分4216规定大小为1的两个VM、大小为2的两个VM和ML的实例的特性。供应模板4214可以包括任何数目和类型的资源。
[0200] 作业准备电路4110将供应模板4214中的资源分解成用于相应的分解资源的单独的资源供应任务4218、4202、4222、4224和4226(4220)。也就是说,作业准备电路4110为供应模板4214中的每个资源准备单独的供应任务。作业准备电路4110可以向每个单独的供应任务4218至4226分配相关标识符。相关标识符可以将单独的供应4218-4226任务标识为属于TSR 2706请求的系统实例化。
[0201] 资源相关电路4112与作业准备电路4110通信,并且确定用于实例化所请求的系统的每个分解资源。在一个实现中,资源相关电路4112接收并分析单独的供应任务,或以其他方式获取系统部署中涉及的每个资源的标识(图43,4302)。在开发环境示例中,分解资源为:1)大小为1的VM,2)大小为1的VM,3)大小为2的VM,4)大小为2的VM,和5)ML。
[0202] 资源相关电路4112查询相关数据请求接口(例如,相关API 4128)以确定每个资源的特性(4304)。资源特性提供信息,资源相关电路4112从该信息确定是否聚合资源。作为示例,特性可以包括用于资源部署的资源提供者区域、以及分解资源是否可以与其他资源聚合用于部署。作为另一示例,特性可以包括用于资源部署的资源提供者区域、以及分解资源是否为模板可部署。特征还可以包括用于每个分解资源的供应脚本标识符,用于执行资源的供应步骤。
[0203] 如下面进一步描述的,资源相关电路4112可以将供应脚本标识符传送到公共云队列4116以供公共云供应工作流引擎4122处理,或者传送到私有云队列4118以供内部部署供应工作流引擎4132处理。供应脚本标识符可以是或可以规定与供应工作流电路通信的脚本库中的供应脚本的资源定位符(例如,URI)。
[0204] 对于开发环境示例,相关API 4128向资源相关电路4112返回的资源特性4306是:
[0205] 1)大小为1的VM:红色区域,聚合=真;
[0206] 2)大小为1的VM:红色区域,聚合=真;
[0207] 3)大小为2的VM:黑色区域,聚合=真;
[0208] 4)大小为2的VM:黑色区域,聚合=真;以及
[0209] 5)ML:蓝色区域,聚合=假。
[0210] 资源相关电路4112确定分解资源中的相关资源(4308)。资源相关电路4112可以应用任何预定义的相关性测试来进行该确定。例如,相关性测试可以是,当它们将被布局在公共资源提供者区域中时,并且当每个分解资源是在共同资源提供者区域中的可部署模板时,分解资源是相关资源。作为另一示例,相关性测试可以是,当它们将被布局在公共资源提供者区域中时,并且当资源特性直接规定资源可以聚合在一起时,分解资源是相关资源。
[0211] 对于开发环境示例,大小为1的两个VM相关。另外,大小为2的两个VM相关。ML实例与任何其他资源不相关,因为它已经被TTT电路116标记为不能聚合的资源,例如因为该资源不是模板可部署的。也就是说,资源相关电路4112还确定分解资源中的不相关资源(4310)。
[0212] 资源相关电路4112将相关资源集合集合到公共资源供应模板块中(4314)。对于开发环境示例,大小为1的两个VM被聚合到模板块4316中,并且大小为2的两个VM被聚合到模板块4318中。ML实例保持分开。模板块4312和4314可以是单个文件、数据结构或者包括聚合到模板块中的每个资源的资源特性和供应数据的其他复合数据实体。
[0213] 资源相关电路4112将公共资源供应模板块提交给任务是促进相关资源的供应的供应工作流电路(4320)。对于开发环境示例,资源相关电路4112将大小为1的VM模板块4316提交给公共云队列4116,因为这些VM将被布局在作为公共云区域的红色服务提供者区域中。对于没有模板块的不相关资源,资源相关电路4112可以向供应工作流电路提交单独的供应消息。对于开发环境示例,资源相关电路4112向ML实例的公共云队列4116提交供应消息,用于布局在蓝色公共云服务提供者区域中。
[0214] 由于模板块4318为黑色内部部署服务提供者区域规定资源,所以资源相关电路4112将模板块4318提交给私有云队列4118。相关资源的模板块的提交和不相关资源的供应消息的提交二者可以包括供应脚本标识符。供应脚本标识符可以是例如定位要运行以引起资源或资源模板块的部署动作的特定供应脚本的脚本数据库4124或者脚本数据库4134中的URI。
[0215] 公共云供应工作流引擎4122和内部部署供应工作流引擎4132便于资源部署。作为一个示例,公用云供应工作流引擎4122可以通过附接的时间表被实现为Azure web作业中的C#.net部件。内部部署供应工作流引擎4132可以被实现为在Windows(TM)服务器下运行的Windows(TM)服务,以便也按照时间表操作。
[0216] 公共云供应工作流引擎4122根据附接的时间表检查公共云队列4116(图44、4402),并且检索规定要执行的新任务的消息(4404)。类似地,内部部署供应工作流引擎
4132连接到其租户特定的内部部署云队列4118以检查和检索规定新任务的消息(4402,
4404)。在这方面,内部部署供应工作流引擎4132配置有访问证书(例如,登录ID以及密码和加密密钥)以访问其租户特定的队列。
[0217] 如上所述,任务可以涉及在模板块内部署多个资源或部署单个资源。规定任务的每个消息可以包括用于特定供应工作流引擎将执行以供应资源的脚本的脚本标识符。图44示出了附接到模板块4316的示例脚本标识符4406、附接到供应消息4312的脚本标识符4408、以及附接到模板块4318的脚本标识符4410。供应工作流引擎4122和4132获取供应脚本(例如,从脚本数据库4124和4134)并且执行脚本(4412)。
[0218] 在上面讨论的示例实现中,用于创建模板块的一个条件是,模板块中的各个资源是由主服务提供者区域可供应的模板。因此,通过到资源提供者区域的本地实例化在模板块中规定的相关资源的供应请求或指令,用于模板块的供应脚本可以是将模板块转发到资源提供者区域的直通执行指令4414。然而,用于不相关资源的供应脚本可以调用服务提供者接口(例如,蓝色接口API 4416)以调用服务提供者可用的特定功能来实例化资源。
[0219] 内部部署供应工作流引擎4132和公共供应工作流引擎4122在返回队列4120中保存规定资源供应动作的完成、故障、错误状况或任何其他结果信息的供应结果消息4420(4418)。返回队列4120使结果消息可用于通过供应链来跟踪返回资源相关电路4112、作业准备电路4110和调度器电路4108的资源供应请求的状态。在这方面,结果消息可以包括标识结果消息适用于哪些资源的标识符的相关性标识符。
[0220] 换言之:具有模板聚合的云资源供应架构包括被配置为准备供应请求消息的模板分配器电路。供应请求消息包括规定第一资源和第二资源的实现的供应模板的模板标识符。模板调度器电路将供应请求消息提交给作业准备电路以发起第一资源和第二资源的供应。
[0221] 与模板调度器电路通信的作业准备电路从模板调度器电路接收供应请求消息,并且从供应请求消息中获取模板标识符。作业准备电路还检索由模板标识符规定的供应模板,其中供应模板为第一资源和第二资源规定实现。作业准备电路通过为第一资源和第二资源准备单独的资源供应任务来分解第一资源与第二资源。
[0222] 与作业准备电路通信的资源相关电路在第一资源上查询资源服务(例如,相关API 4128),并且获取第一服务提供者区域标识符和第一聚合指示符。资源相关电路还在第二资源上查询资源服务,并且获取第二服务提供者区域标识符和第二聚合指示符。资源相关电路确定第一服务提供者区域标识符和第二服务提供者区域标识符都标识公共服务提供者区域,确定第一聚合指示符为真,确定第二聚合指示符为真,然后将第一资源和第二资源聚合成公共资源供应模板块。资源相关电路还将公共资源供应模板块提交给任务是促进相关资源的供应的工作流供应电路。
[0223] 云资源供应架构还包括用于内部部署云区域的租户特定的队列。租户特定的队列被配置为通过特定于给定的内部部署云区域的访问证书来安全地由内部部署云区域访问。云资源供应架构还包括用于公共云区域的公共云队列。公共云区域被配置为允许由向多个不同的公共云服务提供者传送供应指令的供应工作流电路来访问。
[0224] 资源相关电路还被配置为当公共服务提供者区域是公共云区域时,将公共资源供应模板块路由到公共云队列以供公共云供应工作流电路检索。资源相关电路还被配置为当公共服务提供者区域是内部部署云区域时,将共同资源供应模板块路由到租户特定的队列以供内部部署云区域检索。
[0225] 换言之,调度器电路4108调用作业准备电路4110以发起资源集合的部署。调度器电路4108可以例如调用由作业准备电路4110定义的方法,并且将URI传递到包含部署指令的模板。
[0226] 作业准备电路4110使用URI例如从模板数据库4114检索模板。作业准备电路4110将模板分为(将它们分解成)一系列任务。例如,每个资源可以具有其自己的任务用于单独执行,例如通过为资源类型编写的自动化脚本或运行手册。
[0227] 资源相关电路4112基于预定义的相关准则来重新聚合资源。多个资源可以组合成相关资源的模板块。资源相关电路4112还基于与每个资源相关联的区域资源特性来决定资源将被布局在公共云区域还是内部部署区域中。如上所述,存在用于内部部署区域的租户特定的私有云队列和用于公共区域的公共云队列。也就是说,资源相关电路4112将各个资源重新聚合成更大的模板(模板块),其作为排队的项目被传递到云队列中。供应工作流引擎读取队列上的消息,并且确定它们规定了供应操作。供应工作流引擎检索该操作的脚本,并且脚本的输入数据包括该模板。
[0228] 脚本(例如,PowerShell脚本)执行部署。对于使用模板块的公共云部署,一个优点是,公共云供应工作流电路4122不需要调用本地API来部署资源。相反,工作流电路4122将模板块传递到服务提供者,并且请求服务提供者使用其本地模板能力来引起资源在模板块中的实例化。这避免了其中对于每种类型的资源有很多不同的脚本要编写和维护的实现,并且还可以避免在资源可以组合成模板块时执行多个脚本。相反,工作流电路4122将模板块传递到本地提供者部署过程。
[0229] 在一个实现中,资源相关电路4122从TTT电路116获取资源特性。也就是说,TTT电路116可以被扩展以存储和定义(例如,在类型数据库230中)类型是否可以被聚合、以及用于执行部署包括资源类型的模板块的脚本。如果资源不能被聚合,则资源相关电路4122保持资源分开,并且将不相关资源的单独部署消息发送到云队列。将给定类型的聚合标志设置为真的一个测试是,给定其模板,服务提供者可以本地部署资源。
[0230] 云资源供应架构可以与具有给定格式的模板一起在内部工作。例如,架构可以在内部使用Azure资源管理器(ARM)模板来规定单独部署或模板块中部署的资源。供应工作流引擎4122和4132可以部署到由很多不同的服务提供者托管的区域。在一些实现中,供应工作流引擎4122和4132可以包括模板转译电路,例如图45所示的模板转换电路4502。
[0231] 在格式不兼容时部署资源的情况下,模板转换电路4502将内部模板格式(例如,ARM模板)转译为服务提供者使用的格式。例如,模板转换电路4502可以将ARM模板转换为云格式模板(CFT)或任何其他模板格式。TTT电路116可以例如通过将服务提供者之间的诸如Azure VM等资源类型(例如,诸如Azure VM)转换成例如Amazon Web服务VM来提供转译。
[0232] 在返回方向上,供应工作流电路通过资源相关电路4112来检索被保存在云队列4116和4118上的供应消息。供应消息规定供应工作流电路应该运行什么脚本以及数据有效载荷是什么。供应工作流电路检索脚本,将数据有效内容传递给脚本,并且运行该脚本。供应工作流电路不需要知道数据有效载荷是模板块还是单个资源的说明符。
[0233] 另一方面,资源相关电路4122知道它是否已经构建了模板块,并且创建供应消息以给出供应工作流引擎执行资源类型的特定脚本的指令。如上所述,作为仅一个示例,TTT电路116可以被扩展为包括资源特性集合:1)资源类型是否可以被聚合;2)如果可以被聚合,则使用用于为给定服务提供者区域部署模板块的脚本的URI;和3)如果资源类型无法聚合,则将资源类型部署为不相关资源的脚本。
[0234] 对于模板可部署资源,脚本可以简单地将模板块传递给服务提供者,并且指示服务提供者在模板块中实例化资源。在这方面,模板块可以规定单个资源或多个资源,每个资源是由给定服务提供者区域可部署的模板。资源相关电路4112可以通过将资源的模板传递给服务提供者,并且请求服务提供者对模板执行其本地实例化服务,来为甚至单个资源规定本地服务提供者部署。对于非模板启用的资源,供应脚本可以规定对服务提供者的本地API的调用序列来供应资源。
[0235] 注意,甚至内部部署区域可以基于模板块来部署资源。例如,用于软件定义的基础设施的内部部署版本的Azure Stack(TM)可以提供模板部署功能。可以实现其他模板解释器以提供内部部署模板部署功能。
[0236] 供应工作流电路4122和4132向返回队列4120传递返回消息。资源相关电路4112监视返回队列4120以确定规定的供应动作已经完成或失败。返回消息可以包括相关标识符。资源相关电路4112将返回消息从返回队列4120拉出,并且将它们发送到作业准备电路
4110,以通知作业准备电路4110与相关标识符相关联的部署完成或失败。也就是说,作业准备电路4110跟踪每个资源何时部署、以及特定部署中的所有资源何时完成。调度器电路
4108轮询作业准备电路4110以确定整个部署何时完成或已经失败,并且将该状态信息提供回架构的其余部分。
[0237] 以下描述提供云架构控制、布局和供应系统(“系统”)的多个示例实现。
[0238] 在一些实施例中,一种系统可以包括被配置为从资源请求者接收技术服务请求的通信接口和与通信接口通信的布局管线电路。管线电路包括被配置为从候选布局选项中确定技术服务的可行布局选项并且通过通信接口将可行布局选项呈现给资源请求者的多个顺序管线处理阶段。
[0239] 布局管线电路可以包括被配置为确定资源请求者对于哪些服务提供者区域具有活动订阅并且响应于服务提供者区域来确定可行布局选项的订阅阶段。
[0240] 布置管线电路可以被配置为接收规定用于实现技术服务的基线技术部件类型的技术服务模板。布置管线电路可以包括被配置为确定哪些服务提供者区域支持基线技术部件类型并且响应于服务提供者区域来确定可行布局选项的类型阶段。类型阶段可以被配置为通过基线技术部件类型上的类型到类型分析电路来发起处理,响应于处理来确定支持基线技术部件类型的等效物的附加服务提供者区域,并且进一步响应于附加服务提供者区域来确定可行布局选项。
[0241] 布置管线电路可以被配置为接收规定用于实现技术服务的基线技术资产的技术服务模板。布置管线电路可以包括被配置为确定哪些服务提供者区域支持基线技术资产并且响应于服务提供者区域来确定可行布局选项的资产阶段。资产阶段可以被配置为通过基线技术资产上的类型到类型分析电路来发起处理,响应于处理来接收支持基线技术资产的等效物的附加服务提供者区域,并且进一步响应于附加服务提供者区域来确定可行布局选项。
[0242] 布置管线电路可以被配置为接收规定用于连接到技术服务的基线网络的技术服务模板。布置管线电路可以包括被配置为确定哪些服务提供者区域连接到基线网络并且响应于服务提供者区域来确定可行布局选项的网络阶段。网络阶段可以被配置为通过基线网络上的类型到类型分析电路来发起处理,响应于处理来接收支持基线网络的等效物的附加服务提供者区域,并且进一步响应于附加服务提供者区域来确定可行布局选项。
[0243] 布置管线电路可以被配置为接收规定技术服务的实现的技术服务模板。布局管线电路可以包括被配置为确定哪些服务提供者区域当前具有接受技术服务的实现的供应的能力并且响应于服务提供者区域来确定可行布局选项的容量阶段。
[0244] 布置管线电路可以被配置为接收规定技术服务的实现的技术服务模板。布局管线电路可以包括被配置为确定哪些服务提供者区域有资格供应技术服务的实现并且响应于服务提供者区域来确定可行布局选项的元数据阶段。元数据阶段可以被配置为接收规定资源请求者的特定需求的资源请求者元数据,接收规定服务提供者的能力的服务提供者元数据,并且确定哪些服务提供者区域有资格响应于资源请求者元数据和服务提供者元数据。
[0245] 布局管线电路可以包括被配置为对可行布局选项施加顺序并且根据顺序通过通信接口将可行布局选项呈现给资源请求者的过滤和呈现阶段。
[0246] 在另一实施例中,一种系统可以包括被配置为从资源请求者和元数据架构接收技术服务请求的通信接口。元数据架构可以包括用于定义资源请求者的模型的容器层级的容器元数据、定义技术服务请求的特定实现数据的资源请求者元数据、以及定义用于托管技术服务请求的候选服务提供者区域的能力的服务提供者元数据。该系统还可以包括模板电路,模板电路被配置为确定用于实现技术服务请求的基线技术服务模板,从基线技术服务模板生成具体化的技术服务模板,并且将具体化的技术服务模板提供给包括多个顺序管线处理阶段的布局管线电路。布置管线电路可以被配置为接收基线技术服务模板,接收容器元数据,接收服务提供者元数据,接收资源请求者元数据,响应于基线技术服务模板、容器元数据、服务提供者元数据和资源请求者元数据从候选布局选项中确定用于技术服务的可行布局选项,并且通过通信接口将可行布局选项传递给资源请求者。
[0247] 该系统还可以包括被配置为从资源请求者元数据获取导出的元数据并且提供导出的元数据用于生成具体化的技术服务模板的映射规则。映射规则可以包括用户数到虚拟机配置的映射。映射规则可以包括将数据安全性要求映射到支持数据安全性要求的资产。
[0248] 具体化的技术服务模板可以规定用于实现实施技术服务请求的基线技术部件。布局管线电路可以包括分析阶段,分析阶段被配置为通过基线技术部件上的类型到类型分析电路来发起处理,响应于处理来接收支持基线技术部件的等效物的服务提供者区域,并且响应于服务提供者区域来确定可行布局选项。
[0249] 在另一实施例中,一种方法包括通过通信接口从资源请求者接收技术服务请求,并且从元数据电路容器获取定义资源请求者的模型的容器层级的元数据、定义用于技术服务请求的特定的实现数据的资源请求者元数据、和定义用于托管技术服务请求的候选服务提供者区域的能力的服务提供者元数据。该方法还可以包括确定用于实现技术服务请求的基线技术服务模板,从基线技术服务模板生成具体化的技术服务模板,将具体化的技术服务模板提供给包括多个顺序管线处理阶段的布局管线电路,并且通过布局管线电路,接收基线技术服务模板,接收容器元数据,接收服务提供者元数据,接收资源请求者元数据,响应于基线技术服务模板、容器元数据、服务提供者元数据和资源请求者元数据从候选布局选项中确定技术服务的可行布局选项,以及通过通信接口将可行布局选项传送到资源请求者。
[0250] 该方法还可以包括执行映射规则以从资源请求者元数据获取导出的元数据,并且使用导出的元数据生成具体化的技术服务模板。
[0251] 该方法还可以包括在具体化的技术服务模板内标识用于实现技术服务请求的基线技术部件,通过基线技术部件上的类型到类型分析电路发起处理,响应于处理来接收支持基线技术部件的等同物的服务提供者区域,以及响应于服务提供者区域来确定可行布局选项。接收服务提供者区域可以包括支持等效技术部件类型、等效技术部件资产或两者的服务提供者区域用于实现技术服务请求。
[0252] 在另一实施例中,一种系统可以包括被配置为从服务提供者接收表征由服务提供者控制的虚拟化托管区域的服务提供者元数据并且从资源请求者接收表征对于虚拟化托管的技术服务请求的资源请求者元数据的通信接口。该系统还可以包括存储器系统以及对应于技术服务请求的技术服务模板,存储器系统被配置为存储包括多级技术容器结构的容器层级(包括第一容器级别和继承第一容器级别的属性的第二容器级别)以及表征第一容器级别和第二容器级别的容器元数据。该系统还可以包括与通信接口和存储器系统通信的布局决定电路,布局决定电路被配置成接收服务提供者元数据,接收资源请求者元数据,接收容器元数据,接收技术服务模板,并且发起以服务提供者元数据、容器元数据和资源请求者元数据作为输入在技术服务模板上执行布局分析管线,以确定用于实现技术服务请求的可行布局选项。
[0253] 技术服务请求可以包括用于实现技术服务请求的技术部件类型。布局分析管线可以包括被配置为鉴于服务提供者元数据来确定虚拟化托管区域是否支持技术部件类型的技术部件类型阶段。技术部件类型阶段可以被配置为请求关于技术部件类型的类型分析,以确定与技术部件类型的等效类型是否从不同的服务提供者可获得。技术服务请求可以包括用于实现技术部件类型的技术部件资产。布局分析管线可以包括被配置为鉴于服务提供者元数据来确定虚拟化托管区域是否支持技术部件资产的资产分析阶段。资产分析阶段可以被配置为请求关于技术部件资产的等效性分析,以确定与技术部件资产的等效资产是否从不同的服务提供者可获得。技术服务请求可以包括用于向技术部件类型提供通信服务的通信网络的通信网络标识符。布局分析管线可以包括被配置为鉴于服务提供者元数据来确定虚拟化托管区域是否支持通信网络的网络分析阶段。网络分析阶段可以被配置为请求关于网络标识符的网络分析,以确定与通信网络的等效网络是否可用。
[0254] 布局分析管线可以包括被配置为对资源请求者元数据执行资源请求者布局规则以排除候选布局选项的资源请求者元数据分析阶段。资源请求者布局规则可以包括被配置为排除不满足在资源请求者元数据中定义的数据安全性要求的那些候选布局选项的数据安全布局规则。资源请求者布局规则可以包括被配置为排除不提供适合技术服务请求的执行环境的那些候选布局选项的环境规则。环境规则可以被配置为区分生产环境和测试环境。环境规则可以被配置为区分生产环境和开发环境。
[0255] 在另一实施例中,一种方法可以包括接收表征服务提供者的虚拟化托管区域的服务提供者元数据,代表资源请求者接收表征对于虚拟化托管的技术服务请求的资源请求者元数据,从资源请求者接收技术服务请求,响应于接收到技术服务请求,检索定义技术服务请求的基线实现的技术服务模板,以及将技术服务模板、服务提供者元数据和资源请求者元数据作为输入提供给被配置为从候选布局选项中确定用于实现技术服务请求的可行布局选项的布局分析管线。
[0256] 该方法还可以包括在存储器系统中存储包括多级技术容器结构的容器层级(包括第一容器级别和继承第一容器级别的属性的第二容器级别)以及表征第一容器级和第二容器级,并且将容器元数据作为另外的输入提供给布局分析管线。第一容器级别或第二容器级别可以包括资源请求者服务级别。第一容器级别或第二容器级别可以包括资源请求者环境级别。
[0257] 资源请求者元数据可以包括数据安全性要求。技术服务请求可以包括用于实现技术服务请求的技术部件类型。服务提供者元数据可以包括被配置为指示虚拟化托管区域是否支持技术部件类型的技术部件说明符。
[0258] 在另一实施例中,一种系统可以包括被配置为从服务提供者接收表征由服务提供者控制的虚拟化托管区域的服务提供者元数据并且从资源请求者接收表征对于虚拟化托管的技术服务请求的资源请求者元数据的通信接口。该系统还可以包括被配置为存储包括代表资源请求者本身的资源请求者容器和在资源请求者容器下的服务容器的容器层级的存储器系统。存储器系统还可以被配置为存储在服务容器下的环境容器、表征服务容器的服务容器元数据、表征环境容器的环境容器元数据、以及规定用于实现技术服务请求的技术部件和用于技术部件的技术部件参数字段的技术服务模板。该系统还可以包括与通信接口和存储器系统通信的处理电路,处理电路被配置为从资源请求者元数据的至少一部分导出技术部件值,将技术部件值存储在技术服务模板中的至少一个技术部件参数字段中,接收服务提供者元数据,并且将服务提供者元数据、服务容器元数据、环境容器元数据和资源请求者元数据作为输入提供给被配置为确定用于实现技术服务请求的可行布局选项的布局分析管线。
[0259] 资源请求者元数据可以规定数据安全性要求。服务提供者元数据可以规定由服务提供者提供的技术部件类型和资产。服务容器元数据可以规定服务关键性。环境容器元数据可以区分生产环境、测试环境和开发环境。
[0260] 在另一实施例中,一种系统包括布局管线电路和重新评估电路,布局管线电路包括多个处理阶段,其被配置为确定规定的服务请求的技术部件的初始布局选项、链接到技术部件的定时元数据,定时元数据定义用于重新评估技术部件的布局的动态重新评估定时说明符,以及重新评估电路响应于动态重新评估定时指示符来对技术部件重新执行布局管线电路,并且确定更新后的布局选项,包括技术部件的新的布局位置。
[0261] 规定的服务请求可以链接到特定的资源请求者。该系统还可以包括用于特定资源请求者的布局执行元数据,布局执行元数据定义用于对规定的服务请求进行调整的更新时间窗口。重新评估电路还可以可操作以响应于确定更新后的布局选项来发起在新的布局位置处实例化技术部件的重新布局部件。重新评估电路还可以可操作以在更新时间窗口内发起到重新布局部件的切换。
[0262] 布局管线电路可以包括被配置为确定资源请求者对哪些服务提供者区域具有活动订阅的变化并且响应于该变化来确定新的布局位置的订阅阶段。
[0263] 布局管线电路可以包括被配置为确定哪些服务提供者区域支持技术部件的变化并且响应于该变化来确定新的布局位置的类型阶段。技术部件可以包括在技术服务模板中规定的用于实现规定的服务请求的技术部件类型。技术部件可以包括在技术服务模板中规定的用于实现规定的服务请求的技术资产。技术资产可以包括网络。
[0264] 布局管线电路可以包括被配置为确定哪些服务提供者区域具有提供技术部件的能力的变化并且响应于该变化来确定新的布局位置的容量阶段。
[0265] 布局管线电路可以包括被配置为确定哪些服务提供者区域有资格提供技术部件的变化并且响应于该变化来确定新的布局位置的元数据阶段。
[0266] 在另一实施例中,一种方法包括在混合云架构中,接收用于实现对资源请求者的服务请求的技术服务模板,标识技术服务模板内的资源,对于资源执行包括被配置为确定资源的初始布局选项的多个处理阶段的布局管线电路,以及执行重新评估电路,重新评估电路被配置为确定何时对资源重新执行布局管线电路并且确定更新后的布局选项,包括用于资源的新的布局位置。
[0267] 该方法还可以包括从混合云架构中获取链接到资源的定时元数据,定时元数据定义用于重新评估资源的布局的定时指示符。该方法还可以包括从混合云架构中获取链接到资源请求者的布局执行元数据,布局执行元数据定义用于实现新的布局位置的更新时间窗口。该方法还可以包括响应于确定更新后的布局选项,开始在新的布局位置处为资源供应重新布局。该方法还可以包括在更新时间窗口内发起到重新布局的切换。
[0268] 在另一实施例中,一种系统包括被配置为从资源请求者接收技术服务请求的通信接口、包括用于定义资源请求者的模型的容器层级的容器元数据的元数据架构、定义技术服务请求的特定实现数据的资源请求者元数据、以及定义用于托管技术服务请求的候选服务提供者区域的能力的服务提供者元数据。该系统还可以包括布局管线电路,布局管线电路被配置为确定用于实现技术服务请求的计算资源,接收容器元数据、服务提供者元数据和资源请求者元数据,以及执行顺序管线阶段以响应于容器元数据、服务提供者元数据和资源请求者元数据来在候选布局选项中确定用于计算资源的可行布局选项。该系统还可以包括重新评估电路,重新评估电路被配置为对计算资源选择性地重新执行布局管线电路并且确定更新后的布局选项,包括用于计算资源的新的布局位置。
[0269] 重新评估电路还可以被配置为将新的布局位置传送到资源请求者,并且从资源请求者请求重新布局确认。重新评估电路还可以被配置为在从资源请求者接收到重新布局确认之后,在新的布局位置调度计算资源的替代品的实例化。重新评估电路还可以被配置为延迟到替代品的切换,直到更新时间窗口打开用于资源请求者。
[0270] 在另一实施例中,一种系统包括模板调度器电路、与模板调度器电路通信的作业准备电路,作业准备电路被配置为从模板调度器电路接收用于系统部署的供应请求消息,从供应请求消息中获取模板标识符,获取由模板标识符规定的用于实现系统部署的供应模板,以及将供应模板中的资源分解成用于相应的分解资源的单独的资源供应任务。该系统还可以包括与作业准备电路通信的资源相关电路,资源相关电路被配置为在分解资源中确定相关资源,将相关资源聚合成公共资源供应模板块,并且向处理相关资源的供应的供应工作流电路提交公共资源供应模板块。
[0271] 资源相关电路还可以被配置为在分解资源中确定不相关资源,并且对于每个不相关资源,向供应工作流电路提交单独的供应消息。资源相关电路可以被配置为当分解资源具有公共的资源提供者区域说明符时,确定分解资源是相关资源。
[0272] 资源相关电路可以被配置为当分解资源将被布局在公共资源提供者区域中时,以及当每个分解资源是在共同资源提供者区域中可部署的模板时,确定分解资源是相关资源。该系统还可以包括到资源信息电路的相关应用编程接口(API),相关API定义相关数据请求接口。资源相关电路可以被配置为查询相关数据请求接口以确定分解资源是否将被布局在公共资源提供者区域中以及分解资源是否为在共同资源提供者区域中可部署的模板。资源相关电路还可以被配置为向相关数据请求接口查询供应脚本标识符,并且使用公共资源供应模板块将供应脚本标识符传送到供应工作流电路。供应脚本标识符可以包括与供应工作流电路通信的脚本库中的供应脚本的资源定位符。供应脚本可以包括传递执行指令,传递执行指令被配置为将公共资源供应模板块传递到公共资源提供者区域,并且将配置指令传送到公共资源提供者区域,以便本地实例化在公共资源供应模板块中规定的相关资源。
[0273] 该系统还可以包括被配置为从供应工作流电路接收供应结果消息的返回队列。资源相关电路可以被配置为接收供应结果消息并且将供应结果消息提供给作业准备电路。
[0274] 在另一实施例中,一种系统包括模板分配器电路,模板分配器电路被配置为准备包括规定第一资源和第二资源的实现的供应模板的模板标识符的供应请求消息,并且提交供应请求消息以发起第一资源和第二资源的供应。该系统还可以包括与模板调度器电路通信的作业准备电路,作业准备电路被配置为从模板调度器电路接收供应请求消息,从供应请求消息获取模板标识符,检索由模板标识符规定的供应模板,供应模板规定第一资源和第二资源的实现,以及通过为第一资源和第二资源准备单独的资源供应任务来从第二资源分解第一资源。该系统还可以包括与作业准备电路通信的资源相关电路,资源相关电路被配置为在第一资源上查询资源服务并且获取第一服务提供者区域标识符和第一聚合指示符,在第二资源上查询资源服务并且获取第二服务提供者区域标识符和第二聚合指示符,确定第一服务提供者区域标识符和第二服务提供者区域标识符都标识公共服务提供者区域,确定第一聚合指示符为真,确定第二聚合指示符为真,将第一资源和第二资源聚合到公共资源供应模板块中,并且将公共资源供应模板块提交给任务是促进相关资源的供应的供应工作流电路。
[0275] 该系统还可以包括用于内部部署云区域的租户特定的队列以及用于公共云区域的公共云队列,租户特定的队列被配置用于由内部部署云区域通过特定于内部部署云区域的访问证书来安全访问,公共云队列被配置为允许由将供应指令传达给多个不同的公共云服务提供者的公共云供应工作流电路来访问。资源相关电路还可以被配置为:当公共服务提供者区域是公共云区域时,将公用资源供应模板块路由到公共云队列以供公共云供应工作流电路检索,而当公共服务提供者区域是内部部署云区域时,将公共资源供应模板块路由到租户特定的队列以供内部部署云供应工作流电路检索。
[0276] 在另一实施例中,一种方法包括在多云供应机器中通过作业准备电路:从模板调度器电路接收用于系统部署的供应请求消息,从供应请求消息获取模板标识符,获取由模板标识符规定的用于实现系统部署的供应模板,以及将供应模板中的资源分解为用于相应的分解资源的单独的资源供应任务。该方法还可以包括在多云供应机器中通过资源相关电路:在分解资源中确定相关资源,将相关资源聚合成公共资源供应模板块,以及将公共资源供应模板块提交给供应工作流电路用于执行相关资源的供应。
[0277] 该方法还可以包括通过资源相关电路:在分解资源中确定不相关资源,并且为每个不相关资源向供应工作流电路提交单独的供应消息。该方法还可以包括通过资源相关电路:当分解资源在共同资源提供者区域中实现时,确定分解资源是相关资源。
[0278] 该方法还可以包括通过资源相关电路:确定要布局在公共资源提供者区域中并且是在共同资源提供者区域中可部署的模板的那些分解资源作为相关资源。该方法还可以包括通过资源相关电路:查询相关数据请求接口以确定分解资源是否将被布局在公共资源提供者区域中以及分解资源是否是在共同资源提供者区域中可部署的模板。该方法还可以包括通过资源相关电路:向相关数据请求接口查询供应脚本标识符,并且通过公共资源供应模板块将供应脚本标识符传送到供应工作流电路。该方法还可以包括接收资源定位符作为供应脚本标识符,资源定位符指向与供应工作流电路通信的脚本库中的供应脚本。该方法还可以包括执行供应脚本以将公共资源供应模板块传递到公共资源提供者区域,并且将供应指令传送到公共资源提供者区域以请求公共资源提供者区域本地实例化在公共资源供应模板块中规定的相关资源。
[0279] 该方法还可以包括在返回队列中从供应工作流电路接收供应结果消息,并且将供应结果消息传递到作业准备电路。
[0280] 在另一实施例中,一种系统包括被配置为从资源请求者接收用于供应的计算环境的选择的通信接口和与通信接口通信的布局电路,布局电路被配置为确定用于实现计算环境的资源类型的布局选项并且通过通信接口从资源请求者获取从布局选项中选择的布局。该系统还可以包括被配置为确定与所选择的布局相对应的服务提供者区域并且将资源类型转译为用于在服务提供者区域中供应的目的地类型的类型转译电路。该系统还可以包括被配置为在服务提供者区域内发起目的地类型的供应的供应工作流电路。
[0281] 布局电路可以被配置为接收用于计算环境的技术服务模板,技术服务模板规定资源类型。布局电路还可以被配置为接收表征资源请求者的结构组织的容器元数据、规定用于计算环境的资源请求者的实现选项的请求者元数据、以及规定从不同的服务提供者可获得的可用技术部件的服务提供者元数据,用于确定布局选项。
[0282] 该系统还可以包括被配置为准备新作业和实现新作业的任务用于供应目的地类型的作业准备电路。作业准备电路还可以被配置为将待决作业数据库中的新作业和任务存储为具有待决任务的待决作业。该系统还可以包括被配置为向作业准备电路查询具有待决任务的待决作业的轮询电路。该系统还可以包括被配置为获取待决任务并且将待决任务提供给供应电路的调度器电路。供应工作流电路可以被配置为通过将待决任务发送给负责在服务提供者区域中实例化资源的服务提供者系统来在服务提供者区域内发起目的地类型的供应。
[0283] 资源类型可以包括虚拟机。资源类型可以包括数据库。资源类型可以包括网站。
[0284] 在另一实施例中,一种方法包括从资源请求者接收用于供应的计算服务的选择,确定规定支持计算服务的技术部件的基线实现的技术服务模板,确定用于技术部件的布局选项,从资源请求者从布局选项中获取与基线实现不同的所选择的布局,确定与所选择的布局相对应的服务提供者区域,将技术部件转译成目的地部件以在服务提供者区域中供应,以及在服务提供者区域内发起目的地部件的供应。
[0285] 该方法还可以包括从预定义的技术服务模板的集合中检索技术服务模板。该方法还可以包括响应于表征资源请求者的结构组织的容器元数据、规定计算服务的资源请求者的实现选项的请求者元数据、以及规定从不同服务提供者可获得的可用技术部件的服务提供者元数据来确定布局选项。
[0286] 该方法还可以包括准备由实现用于供应目的地部件的新作业的任务组成的新作业,并且将新作业和任务存储在待决作业数据库中。该方法还可以包括轮询待决作业数据库以查找由待决任务定义的待决作业。该方法还可以包括调度待决任务用于供应。发起供应可以包括请求负责在服务提供者区域中实例化资源的服务提供者系统执行待决任务。
[0287] 在另一实施例中,一种系统包括通信接口,通信接口被配置为从资源请求者接收用于供应的计算服务的选择、包括规定计算服务的技术部件的基线实现的技术服务模板的技术服务模板数据库、以及与通信接口通信的布局电路,布局电路被配置为执行布局管线阶段的序列以确定技术部件的布局选项,通过通信接口将布局选项传送到资源请求者,并且通过通信接口从资源请求者获取通过通信接口从布局选项中选择的布局。该系统还可以包括类型转译电路,类型转译电路被配置为确定与所选择的布局相对应的服务提供者区域并且将技术部件转译为由服务提供者区域支持并且用于在服务提供者区域中供应的目的地部件。该系统还可以包括被配置为查询用于目的地部件的供应作业的轮询电路和被配置为将供应作业转发到供应工作流电路的调度器电路。
[0288] 该系统还可以包括作业准备电路,作业准备电路被配置为准备新的作业和实现新的作业的任务用于供应目的地部件,并且将新的作业和任务存储在待决作业数据库中作为具有待决任务的待决作业。供应工作流电路可以被配置为将任务传输到服务提供者系统以在服务提供者区域内实现目的地部件。
[0289] 上述方法、设备、处理、电路和逻辑可以以很多不同的方式并且以硬件和软件的很多不同组合来实现。例如,所有或部分实现可以是包括指令处理器的电路,指令处理器诸如中央处理单元(CPU)、微控制器、或微处理器;或者作为专用集成电路(ASIC)、可编程逻辑器件(PLD)、或现场可编程门阵列(FPGA);或作为包括离散逻辑或其它电路部件的电路,包括模拟电路部件、数字电路部件或两者;或者其任何组合。作为示例,电路可以包括分立的互连硬件部件,或者可以在单个集成电路管芯上组合,分布在多个集成电路管芯之间,或者在公共封装件中的多个集成电路管芯的多芯片模块(MCM)中实现。
[0290] 因此,电路可以存储或访问指令用于执行,或者可以单独在硬件中实现其功能。指令可以存储在除瞬态信号之外的有形存储介质中,诸如闪速存储器、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)等;或者磁盘或光盘,例如光盘只读存储器(CDROM)、硬盘驱动器(HDD)或者其他磁盘或光盘;或者在另一机器可读介质之中或之上。诸如计算机程序产品等产品可以包括存储介质和存储在介质中的指令,并且指令当由设备中的电路执行时可以引起设备实现以上描述或在图中所示的任何处理。
[0291] 实现可以是分布式的。例如,电路可以包括多个不同的系统部件,例如多个处理器和存储器,并且可以跨越多个分布式处理系统。参数、数据库和其他数据结构可以单独地存储和管理,可以并入到单个存储器或数据库中,可以以很多不同的方式在逻辑上和物理上组织,并且可以以很多不同的方式来实现。
[0292] 示例实现包括链表、程序变量、散列表、数组、记录(例如数据库记录)、对象和隐式存储机制。指令可以形成单个程序的部分(例如,子程序或其他代码段),可以形成多个单独的程序,可以分布在多个存储器和处理器之间,并且可以以很多不同的方式来实现。示例实现包括独立程序,并且作为库的一部分,例如动态链接库(DLL)等共享库。例如,当由电路执行时,库可以包含共享数据、以及包括执行以上描述或图中所示的任何处理的指令的一个或多个共享程序。
[0293] 已经具体描述了各种实现。然而,很多其他实现也是可能的。