基础设施即程序代码工具Pulumi 3.0强化多语言组件互通性

基础设施即程序代码工具Pulumi 3.0带来非常多的功能更新,包括了正式加入Pulumi自动化API,让开发者可以在应用程序中嵌入Pulumi功能,而且除了AWS,Pulumi也开始原生支持Azure和Google云计算平台,在语言的支持上,Pulumi试图集成多语言组件,让各种语言的组件能够互通。

Pulumi 3.0提供的自动化API,可以让开发者将Pulumi功能,嵌入到自己的应用程序中,因此开发者可以不使用命令行工具或是撰写脚本来操作CI/CD,而是可以在Pulumi基础设施部署引擎上构建软件解决方案,以更丰富的方式控制工作流程。Pulumi自动化API支持多种语言,包括TypeScript/JavaScript、Python、Go以及C#。

最初Pulumi仅支持AWS平台,现在又增加了Azure和Google云计算。官方提到,从Pulumi 2.0以来,他们提供管理云计算基础设施的组件,支持多达50种云计算和SaaS应用程序,但是对于主要的云计算供应商,Pulumi提供的是原生供应程序(Native Provider),让开发者能够使用完整且一致的接口。

Pulumi在去年提供的Azure预览支持,现在已经进入1.0版本,Azure Native供应程序是创建在,由Azure服务团队所开发和维护的Azure Resource Manager REST API规范之上,与过去Azure资源供应程序相比,Azure Native支持超过2倍的资源以及3倍数量的资源属性,而且支持资源API的每个版本,能够最大程度与用户现有的基础设施兼容。

除了AWS和Azure,Pulumi也开始提供Google Cloud Native供应程序预览,能够提供完全覆盖Google云计算平台,与现有的供应程序相比,支持的资源多了70%,并且支持每种资源的每个版本,包括Alpha、Beta和GA。

Pulumi 3.0开始提供组件包和多语言组件,官方解释,开发者可以使用选择的语言编写任何Pulumi组件,并且以Pulumi组件包的形式,提供给其他语言的用户使用,这项新功能可将原本每个语言独立的生态系统,集成成单一Pulumi组件生态系统。

将Pulumi组件构建和打包成为Pulumi组件的其中一个使用案例,便是Pulumi EKS组件,这是由官方发布,能够用来构建和管理EKS集群组件,并作作为NPM组件包提供给Pulumi的Node.js用户。

官方提到,因为该组件消除了跨AWS资源和集群内Kubernetes资源,管理EKS集群所会碰到的复杂性,所以非常受用户欢迎。为此,官方决定将这个组件转成Pulumi组件,并使Python、Go和.NET用户也可以使用,而这些语言的组件,皆来自于单一实例。