Pulumi broadens reach by adding Java, YAML, and CrossCode translator

programming

Infrastructure as code tool Pulumi is being extended with new language support for Java and YAML, as well as a CrossCode translation tool that can convert other formats such as Terraform to any Pulumi language.

The new features were introduced at the virtual PulumiUP conference, which is underway this week.

Using Java code to define and deploy a Kubernetes deployment on AWS (from PulumiUP keynote)

The idea of infrastructure as code is to define the resources needed to deploy an application in code. Advantages include self-documentation of the requirements, version control of the configuration, and the ability to repeat a deployment at any time, making it easier to replace rather than fix a broken installation.

The best-known tool for infrastructure as code is perhaps HashiCorp’s Terraform, with others including Chef, Ansible, Puppet and SaltStack. Pulumi is both an open source project and a Seattle company co-founded in 2017 by Joe Duffy, formerly Microsoft Director of Technical Strategy and Engineering, Eric Rudder former Microsoft Executive VP, and Luke Hoban ex-Microsoft and AWS.

The key feature of Pulumi is that developers can write code to provision cloud infrastructure automatically using any supported language, rather than having to learn a domain-specific language like Terraform’s HCL (HashiCorp Configuration Language) or a separate language like YAML.

Pulumi itself is written in Go, and supported languages include JavaScript, TypeScript, Python, Go and C#. This has now been extended to Java (and other JVM languages such as Kotlin and Scala) and YAML. Supported targets include AWS, Azure, Google Cloud, VMware vSphere, and Kubernetes, and can be extended with packages either from Pulumi or from the community. New packages have now been added, including Oracle Cloud, Databricks and EventStore.

The company has also introduced CrossCode, describing it as “the universal translation layer to Pulumi’s infrastructure as code engine.”

Using CrossCode, other formats such as Terraform, AWS CloudFormation, and Azure’s Resource Manager, can be converted to any Pulumi language.

Pulumi has attracted substantial interest from developers since they can use a familiar language. There is a high level of activity on the project’s GitHub repository, suggesting both strong usage and that developers both run into issues of unexpected behaviour and have plenty of feature requests.

The last thing users want is to find themselves troubleshooting Pulumi rather than their application or its infrastructure.