Pulumi 3.0

bovermyer | 321 points

Glad to see all the innovation happening in the IaC space.

I like the multi-language premise of Pulumi but I have the feeling that over time one of the languages will gain a significant advantage over the others (better supported, more features, native...) and thus will become the primary language for Pulumi package authors and users (similar to HCL for Terraform and TypeScript for CDK).

Meaning that eventually all the "serious" Pulumi users will end up converging on one single language (similar to this comment of a CDK user migrating from Python to TypeScript). Feedback loops will only help amplify this effect (e.g. more Pulumi users on language A -> more examples online -> more package authors working in this language -> better established best practices -> more submitted issue tickets for language A -> language better supported by Pulumi -> more users...)

Curious about how Pulumi multi-language components [0] work under the hood. Isn't writing a "Pulumi schema" describing resources the same as writing declarative HCL at the end of the day?

[0] https://www.pulumi.com/blog/pulumiup-pulumi-packages-multi-l...

ynouri | 3 years ago

Can someone who has used both Pulumi and AWS CDK describe the differences between the two?

I am using Terraform 100% now, but sometimes wish I had more than the HCL (hashicorp configuration language) syntax available to use in my code.

bloopernova | 3 years ago

Native Provider means it no longer uses Terraform under the hood and it excites me a lot. We were having hard time with some more complex setups and it seems it can be remedy for issues that we faced. Stoked to check it out!

methyl | 3 years ago

The Pulumi Automation API lets you have an API to update infrastructure from your own process instead of via CLI commands that call your executable. I hope this makes it easy to implement multi-tenancy by spinning up separate infrastructure for different customers.

This would make it easier for software for dynamic schema built on top of a relational database. Dynamic schema is one area where most libraries don't help you out much, but it's an increasingly important feature, especially for businesses.

octopoc | 3 years ago

I am having trouble understand what Pulumi does, since I rarely work in web architecture. Could someone explain it?

mssundaram | 3 years ago

A couple of years ago I started down the Pulumi path, but what was unclear at the time is that there are two phases of a pulumi run.

The first is on constructing the DAG of resources, the second is using that DAG to orchestrate the changes from the previous state.

The problem I had is that values that are only available in the second phase (eg a subnet ID) can't be accessed in the first phase directly. The subnet's ID is accessed via "my_subnet.id" but it's actually effectively a future.

You can't write something like "if my_subnet.id == "1234" (this is an arbitrary example), but effectively a reference to a resource's attributes is only available on the "right hand side" of an expression, and pretty much as a simple assignment only.

To use the value of an attribute, you essentially need to access the value in the second phase of the pulumi process, and to do that (at the time) involved essentially pushing through source code to be "eval"ed on the "other side".

I'll be interested to see what's changed :)

rswail | 3 years ago

I'm in love with Pulumi. Simply one of the best tools I have in my stack.

After about a year of use, I simply cannot go back to editing YAML files or clicking things in a web UI. It's ruined me completely.

mbStavola | 3 years ago

I'm sorry, I really liked Pulumi, but it became too complex after a short while.

Since all infra resources are defined as code you end up defining them in a procedural manner (Python), and struggle to arrange/resolve dependencies.

TruthWillHurt | 3 years ago

Dear Pulumi: Do you have an HCL to Pulumi converter thingy? The first big barrier to using Pulumi in my org is that they basically banned anything other than Terraform "because standardization". I would love to get rid of TF, but we need a migration path.

The next big stumbling block is your license...

throwaway823882 | 3 years ago

"Self-hosting is only available with the Pulumi Enterprise Edition. Contact us if you would like to evaluate the Self-Hosted Enterprise Edition." [0]

[0] https://www.pulumi.com/docs/guides/self-hosted/

andrewSC | 3 years ago

I've been using Pulumi for the past few months as a person who's never touched infrastructure-as-code before. I love it. It has its downsides in the documentation. Mostly around limitations in resource name lengths.

Apart from that, it's an amazing tool to work with. The company I'm working at right now uses it extensively. All of our microservices have Pulumi in the CI/CD pipeline. It's an extremely powerful tool and I'd even use it for personal projects over provisioning resources through a vendor like AWS.

Kunigaikstis | 3 years ago

I've been really interested in the code inlining feature[0], even though it's just available for JavaScript/TypeScript.

What's holding me back right now is that supported for Azure Functions is still in its infancy for code inlining. It's a shame, since I'm stuck in Azure for now.

[0] https://www.pulumi.com/docs/intro/concepts/function-serializ...

haolez | 3 years ago

I hope Pulumi eventually develops a "bare-metal" mode. I'm very much in favor of using a real programming language to set up systems[0], but I don't like to use cloud services beyond basic hosting. It would be nicer if Pulumi provided, as a library, code to launch and maintain self-hosted databases, proxies, etc, rather than just providing clients for cloud APIs.

[0] http://catern.com/progsys.html

catern | 3 years ago

Using Pulumi for about 1 year to manage gcp and AWS environments (5+) - each deployment is around 500 resources. At the begining it was buggy but when they started to add typing i see a lot of improvment.

dith3r | 3 years ago

<3 Pulumi. It's really nice defining what you want to exist at a cloud provider or as a k8s service, and it will make sure that it is there and nothing else. All in typescript.

daralthus | 3 years ago

I’m just getting into infrastructure stuff like this, how does Pulumi work with CI/CD? Does it check what infrastructure it needs to create every deploy? What assurances are there that it won’t delete the whole production database every push?

lloydatkinson | 3 years ago
[deleted]
| 3 years ago

Pulumi looks super interesting!

Is there a tutorial out there that demonstrates using _just_ the Pulumi SDK, perhaps in a CI/CD setting, to deploy a simple service to Kubernetes?

Many thanks!

kodeninja | 3 years ago

just because I don't get it from their marketing: their API is a cloud-service wrapping other cloudservices. Or is it a classical library with wrappers?

fock | 3 years ago

Twice I've tried to love Pulumi but wind up going back to Terraform because the Terraform provider docs put clear usage examples front and center

bionhoward | 3 years ago

Imagine, a release announcement containing a sentence that bothers to say what the thing being announced is.

They will surely lose points for reduced brevity.

ncmncm | 3 years ago

Do folks have opinions on how Pulumi compares to Terraform CDK?

I'm the only ops-y person in my group. I've done things so far with Terraform HCL, but a) it's not a great language, and b) I can't really ask other folks to learn it. But they all know Python, so my theory is that if I can wrap our ops stuff up in familiar-looking code, they'll be able to work with it effectively.

Is one of these toolkits better than the other? I'm inclined to go with Terraform CDK just because they company's further along, but I'd love other people's takes.

wpietri | 3 years ago

Last time I checked (admittedly, not so hard) I discovered that Pulumi only works by calling in to the mothership: i.e.: you cannot build an airgapped infrastructure with it.

This was very off-putting for me, and I had to give up on Pulumi. Is something changed on this regard?

muxator | 3 years ago

Any thoughts on Pulumi vs Terraform?

chrischen | 3 years ago

Which is?

Post a description in your title, not just a name. Come on.

PostThisTooFast | 3 years ago

I just don't get why someone would use Pulumi

kjjjjjjjjjjjjjj | 3 years ago