基础设施即代码服务制造技术

技术编号:38618505 阅读:11 留言:0更新日期:2023-08-31 18:23
本公开的实施例涉及基础设施即代码服务。本文中所描述的示例涉及由云平台向IaC服务提供简化的接口。根据示例,通过提供基础设施即代码(IaC)服务的应用编程接口(API)来抽象与多个IaC工具相关联的操作细节,通过该IaC服务,多个IaC模板可用于针对云平台内的多个服务部署工作负载。每个IaC模板根据IaC工具来描述工作负载,并且针对该工作负载指定输入参数。经由API接收基于特定IaC模板来创建部署的请求。通过基于为针对特定工作负载指定的输入参数而提供的参数值内部地执行与特定模板相关联的IaC工具,来满足该请求。来满足该请求。来满足该请求。

【技术实现步骤摘要】
基础设施即代码服务

技术介绍

[0001]可以期望公共或私有云服务提供方支持基础设施的基础设施即代码(Infrastructure as Code,IaC)管理。IaC通过代码启用供应过程的自动化,并且以可重复且可扩展的方式促进了云基础设施的管理和配置。通过IaC,可以创建包含基础设施规范的配置文件,使得编辑和分发配置更加容易,并且允许云消费者避免手动或交互式过程,否则可能导致部署中的人为错误或不一致。
[0002]IaC标准已以工具的形式出现,其允许云服务提供方向其客户提供IaC的上述益处。例如,针对特定云服务的复杂复合部署可以被描述为列出要被构建的资源的声明性配置,其依赖于对应的IaC工具引擎以处理依赖解析。
附图说明
[0003]本文中所描述的方面以示例方式而非限制方式在附图中进行说明,其中相同的附图标记表示相似的元件。
[0004]图1示出了根据示例的具有基础设施即代码(IaC)服务的IaC架构的框图。
[0005]图2示出了说明根据示例的由IaC架构执行的处理的流程图。
[0006]图3示出了根据示例的IaC交互的各种模式的框图。
[0007]图4示出了说明根据示例的在私有云平台中实现的IaC服务的框图。
[0008]图5示出了根据示例的计算机系统的框图。
具体实施方式
[0009]本文中所描述的示例涉及通过云平台向IaC服务提供简化的接口。从云服务提供方的角度来看,在支持IaC用例上存在挑战,包括IaC工具的数目和复杂性以及由IaC工具创建的部署状态的管理。现在市场上有相当多的IaC或配置管理工具(例如生产的Terraform、Pulumi公司生产的Pulumi、Red Hat公司生产的Progress Software公司生产的以及Puppet公司生产的)。云提供方可能必须实现插件和/或为这些工具中的每个工具提供编码示例,以预测消费者可能采用的工具。对于由不同工程团队提供的多种服务组成的大型云平台而言,这是特别值得关注的问题,并且可能给这些工程团队带来压力,要求他们获得在显著不同的IaC方法的专业知识。
[0010]IaC工具的复杂性通常足以导致云消费者在培训和采用方面的大量投资。此外,工具的范围和行为也在不断改变。云的消费者将他们自己绑定到单个IaC工具并不罕见,这反过来会限制他们可用的云服务的集合。除了云服务提供方面临的挑战以外,IaC工具的复杂性也会给云消费者带来附加的负担。通常,经由IaC工具创建的部署状态被认为是由用户管理的。例如,Terraform提供了Terraform命令行接口(CLI),通过该Terraform CLI可以将状态保存到Terraform状态文件中以用于对资源的持续管理。
[0011]鉴于前述,本文中所描述的示例旨在提供一种简化的IaC接口,云消费者可以通过
该简化的IaC接口以抽象云平台所采用的特定内部IaC工具的方式利用IaC工具。所提出的方法允许云服务工程师根据所选择的适当IaC工具来编码与他们的相应云平台服务的标准交互库,并且经由IaC服务使得这些模板可用,同时将IaC服务的消费者与IaC工具的细节(包括复杂性,如状态管理)进行隔离。在一个示例中,云服务用户可以通过简单地向IaC服务发出所选择的IaC模板的请求并提供与所选择的IaC模板相关联的输入参数来创建部署。如在下面进一步描述的,在一个示例中,可以通过提供IaC服务的应用编程接口(API)来抽象与云平台所采用的多个IaC工具相关联的操作细节,通过该IaC服务,多个IaC模板可用于针对云平台内的多个服务部署工作负载。每个IaC模板根据IaC工具描述工作负载,并且为该工作负载指定输入参数。经由API接收基于特定IaC模板来创建部署的请求。通过基于为针对特定工作负载指定的输入参数而提供的参数值内部地执行(例如,由与IaC服务相关联的IaC代理)与特定模板相关联的IaC工具,来满足该请求。
[0012]虽然在本文中所描述的各种示例的上下文中,所提出的IaC服务驱动私有云平台(例如,可以从Hewlett Packard Enterprise公司可获得的HPE Greenlake边缘到云平台)内的工作负载,但是应当理解,本文中所描述的方法广泛适用于用例,其中IaC服务用于驱动任何私有云、公共云或混合云内的工作负载。
[0013]在以下描述中,阐述了许多具体细节,以便提供对本文中所公开的主题的透彻理解。然而,对于本领域技术人员而言,将显而易见的是,可以在没有这些具体细节中的一些具体细节的情况下实践本文中所描述的方面的实现。
[0014]术语
[0015]术语“连接”或“耦接”及相关术语用于操作意义,不一定限于直接连接或耦接。因此,例如,两个设备可以直接耦接,或者经由一个或多个中间介质或设备耦接。作为另一示例,设备可以以这样的方式耦接,信息可以在它们之间传递,同时彼此不共享任何物理连接。基于本文中所提供的公开内容,本领域普通技术人员将理解根据前述定义存在连接或耦接的多种方式。
[0016]如果说明书规定组件或特征“可以”、“可能”、“能够”或“可能会”被包括或具有特性,则不要求该特定组件或特征被包括或具有该特性。
[0017]如本文中的描述且贯穿所附的权利要求书中所使用的,“一”、“一个”和“该”的含义包括复数,除非上下文另有明确规定。而且,如本文中的描述中所使用的,“在”的含义包括“在
……
中”和“在
……
上”,除非上下文另有明确规定。
[0018]短语“在示例中”、“根据示例”等通常表示该短语后的特定特性、结构或特性被包括在本专利技术的至少一个示例中,并且可以包括在本专利技术的一个以上的示例中。重要的是,这样的短语不一定指代同一示例。
[0019]短语“基础设施即代码”或缩写“IaC”通常指代使用代码来定义基础设施。虽然IaC传统上涉及使用定制语言或IaC工具的领域特定语言(DSL)(例如,Terraform的声明性配置语言、HashiCorp配置语言(HCL))或JavaScript对象符号(JSON),但是被称为“基础设施即软件”(IaS)的最近趋势允许使用传统编程语言(例如,Python或Golang)来定义基础设施。如本文中所使用的,IaC意在指IaC和/或IaS。
[0020]示例基础设施即代码(IaC)架构
[0021]图1示出了根据示例的基础设施即代码(IaC)架构100的框图。在本示例的上下文
中,IaC架构100包括IaC服务130、IaC数据库140、以及一个或多个IaC代理150a

b。IaC架构100还可以包括版本控制系统120(例如,Git,被设计为处理可以分布在多个储存库(例如,储存库121a

n)上的非常大的项目的开源版本控制系统),或者以其他方式与版本控制系统120耦接。取决于特定的用例,IaC代理150a

b可以部署在公共云(例如,云110)内或数据中心或托管地的内本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种方法,包括:通过提供基础设施即代码IaC服务的应用编程接口API来抽象与多个IaC工具相关联的操作细节,通过所述IaC服务,多个IaC模板可用于针对云平台内的多个服务部署工作负载,其中所述多个IaC模板中的每个IaC模板根据所述多个IaC工具中的IaC工具来描述工作负载,并且针对所述工作负载指定输入参数;经由所述API接收基于所述多个IaC模板中的特定IaC模板来创建部署的请求;以及通过基于为针对特定工作负载指定的输入参数而提供的参数值内部地执行与特定模板相关联的IaC工具,来满足所述请求。2.根据权利要求1所述的方法,还包括:在所述经由所述API接收创建所述部署的所述请求之前:经由所述API接收列出多个模板的列表请求;以及经由所述API接收对所述特定IaC模板的选择。3.根据权利要求1所述的方法,其中所述满足还包括:由所述IaC服务的IaC代理从储存库检索与所述特定模板相关联的模板代码;以及通过由所述IaC代理基于所述模板代码和所述参数值使所述IaC工具在所述云平台的容器内被执行,产生对所述多个服务中的服务的API的一个或多个调用。4.根据权利要求1所述的方法,还包括:内部地保存与所述部署相关联的状态信息。5.根据权利要求1所述的方法,还包括:经由所述API接收创建包括与所述多个模板中的IaC模板相关联的模板代码的所述IaC模板的创建请求;以及响应于所述创建请求,将所述IaC模板插入到储存库中。6.根据权利要求1所述的方法,其中所述多个IaC工具具有不同的供应方。7.根据权利要求1所述的方法,其中所述多个服务包括虚拟机即服务VMaaS、容器即服务CaaS或裸机即服务BMaaS。8.一种系统,包括:处理资源;以及非暂态计算机可读介质,所述非暂态计算机可读介质被耦接到所述处理资源,所述非暂态计算机可读介质其上存储有指令,所述指令在由所述处理资源执行时使所述处理资源:通过提供基础设施即代码IaC服务的应用编程接口API来抽象与多个IaC工具相关联的操作细节,通过所述IaC服务,多个IaC模板可用于针对云平台内的多个服务部署工作负载,其中所述多个IaC模板中的每个IaC模板根据所述多个IaC工具中的IaC工具来描述工作负载,并且针对所述工作负载指定输入参数;经由所述API接收基于所述多个IaC模板中的特定IaC模板来创建部署的请求;以及通过基于为针对特定工作负载指定的输入参数而提供的参数值内部地执行与特定模板相关联的IaC工具,来满足所述请求。9.根据权利要求8所述的系统,其中所述指令还使所述处理资源:经由所述API接收列出多个模板的列表请求;以及经由所述API接收对所述特定IaC模板的选择。
10.根据权利要求8所述的系统,其中满足...

【专利技术属性】
技术研发人员:T
申请(专利权)人:慧与发展有限责任合伙企业
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1