Infrastructure as code outfit Pulumi is rebranding its infra product as a cloud engineering platform that lets teams build, deploy, and manage their cloud applications and infrastructure in a language familiar to them (as long as it is Node.js, Python, Go and .NET).
Offering language options is something Pulumi has zeroed in on over the years – largely to stand out against main competitor HashiCorp Terraform. Terraform has seen a lot of interest as one of the first infrastructure as code tools on the market, but needs users to be fluent in either JSON or the company’s HCL language, which is a barrier to entry for some.
In version 3.0, Pulumi pushed the idea of using “your language” forward by introducing multi-language components, which can be authored in any of the supported languages and consumed in another, making it easier to share best practices between different teams in an organisation. To help with the distribution, Pulumi Packages have been crafted and provide a way of packaging and distributing libraries to manage infrastructure resources.
Packages can be created via native providers, which are available for Kubernetes, Azure and Google Cloud and provide native cloud access, multi-language components, custom development, or indeed Terraform CRUD. Pulumi founder Joe Duffy told us: “We’ve always been able to consume Terraform providers, but we’ve hooked it into this system so you get any Terraform provider… plug it in and get it in any language, which is nice because… there’s a lot of [Terraform] providers out there.”
As packages have been introduced with sharing in mind and many Pulumi users will have comparable problems to tackle, DevClass asked if a marketplace or exchange platform for packages might be next on the agend. “I think it’s more about the content, like actually creating the libraries that I think will be exciting” Duffy said. “I don’t envision that we will have a commercial marketplace or something. It’s more just like… a one stop shop for best practices, coupled with the point and click, so if you want a Kubernetes cluster, and you just want to point and click that’s fine.”
In addition to the build side of things, Pulumi also worked on deploy angle, coming up with an assistant for creating app and infrastructure pipelines to add to the test and automation capabilities which have been available for almost a year already. Of course, there’s also source control integration, so nothing will prevent you from going full GitOps.
Another new addition in version 3.0 is the automation API, which can be used to embed Pulumi into applications. “The idea here is what if you could just take that infrastructure as code capability and embed it into your program?” Duffy said, using database company Cockroach Labs as an example which uses exactly this capability. “[They] offer a Database as a Service product. You go to their website, you click to say, give me a new Cockroach database. Behind the scenes, it’s using Pulumi to spin up Kubernetes clusters and deploy stuff into them and then update them and scale them over time.“
Pulumi’s automation API seems to have found fans amongst infrastructure teams during the test phase. Those use it to provide self-service portals to developers, so that they can get well-configured resources such as clusters or the option to quickly and safely deploy something without having to go through a ticketing system. With that need uncovered, Duffy promised customers that “we are absolutely going to build something out of the box there, so that you can have service portals – you don’t have to build this all on your own”.
In terms of managing all of that infrastructure, the policy-as-code component is joined by some advanced RBAC features, such as single sign-on with various providers and integrated permissions for teams. A new dashboard has been added as well, intended to provide an overview of project changes, resource usage, and some bits and pieces to make onboarding easier.
Looking forward, observability is a topic on Duffy’s mind. “The Pulumi SaaS never actually talks to your Cloud account on your behalf, so it can’t do things like automatic drift detection. You can do that with the Pulumi command line, but we’re gonna start moving a lot more of that functionality into the SaaS, so you can connect it to your Cloud account, interactive imports, apply policy to stuff that already exists. There’s a whole host of possibilities that become possible once we do that.”