前言
在本周举行的虚拟PulumiUP
会议上,基础设施即代码工具Pulumi
,宣布添加通用翻译功能CrossCode
,以将Terraform
等其他格式转换为任何Pulumi
语言,并且支持Java
和YAML
。
定义
基础设施即代码的想法是定义在代码中部署应用程序所需的资源。优点包括需求的自我记录、配置的版本控制以及随时重复部署的能力,使其更容易替换而不是修复损坏的安装。
公司成立
最著名的基础设施即代码工具是HashiCorp 的 Terraform,其他工具包括Chef
、Ansible
、Puppet
和SaltStack。Pulumi
既是一个开源项目,也是一家西雅图公司,由前微软技术战略和工程总监Joe Duffy
、前微软执行副总裁Eric Rudder
和前微软和AWS
公司的Luke Hoban
于2017
年共同创立。
关键特性及支持
Pulumi
的关键特性是开发人员可以编写代码,以使用任何支持的语言自动配置云基础设施,而不必学习诸如 Terraform
的HCL
(HashiCorp 配置语言)之类的特定领域语言或YAML
之类的单独语言。
Pulumi
本身是用 Go 编写的,支持的语言包括JavaScript
、TypeScript
、Python
、Go
和C#
。并且现在已经扩展到Java
(以及其他JVM
语言,如Kotlin
和Scala
)和YAML
。支持的目标包括AWS
、Azure
、Google Cloud
、VMware vSphere
和Kubernetes
,并且可以使用来自Pulumi
或社区的软件包进行扩展。现在添加了包括Oracle Cloud
、Databricks
和EventStore
等新的包。
CrossCode
该公司将其描述为Pulumi 基础设施即代码通用翻译层的引擎。使用CrossCode
,可以将Terraform
、AWS CloudFormation
和Azure’s Resource Manager
等其他格式转换为Pulumi
语言。
现状
目前,Pulumi
吸引了开发人员的极大兴趣,因为他们可以使用熟悉的语言。另外该项目的GitHub
存储库上有大量活动,包含开发人员都遇到的意外行为问题以及大量的功能请求,也表明该项目使用率很高。但是当出现问题,用户并该故障的排除是针对Pulumi
,而不是他们的应用程序或其基础架构。