Hacker News new | ask | show | jobs
by lycidas 2259 days ago
I've been looking at this for awhile and it's super cool! As a person who's used Terraform extensively and has ran into a lot of issues with it's declarative, non-scriptability (at least before 0.12), pulumi seems great. And it's also great its able to wrap any Terraform-compatible provider out of the box.

One question I have for anyone who's used it or the team if they're here is how they convinced their company to use it? Last time I checked pulumi was a small company with only 20M in funding versus hashicorp which was more established. What happens if the pulumi team runs out of money and we've moved all our infra onto pulumi?

5 comments

Pulumi is great, but I gave up on persuading a company with a lot of existing terraform to move to yet another tool, and created a (pretty basic) DSL/library for writing terraform in python/c#, which can output to terraform. I could probably get permission to open source it if people are interested. *

As far as I can tell, you get more or less the same benefits as you would if you use pulumi (in the same ballpark).

* There are one or two tools for python/ruby that do this already, but having it in something with stronger typing has advantatages

I have found that the best way to use terraform is to let it be declarative and generate what you need as json (from some api or tooling).

Much less issues this way, and the json is actually what will happen with resources at a given provider. Once you start to use imperative stuff you lose a bit of predictability - your entire configuration is no longer declared, it just kinda looks that way.

Hashicorp is a bit more than just Terraform. 20m sounds plentiful for what pulumi does
As with any new technology, I'd start using it in new non-critical projects as risk is low and it makes it easy to convince the stakeholders.

To clarify, Pulumi can coexist with Terraform and other tools in the same stack, see https://www.pulumi.com/docs/guides/adopting/#coexistence

Terraform should be thought of as an intermediate representation / compilation target, right? Let Terraform take care of actually interacting with the providers, and decouple that concern from how you decide what the infrastructure should be.