The PivotNine Blog

Jumpstart Your Internal Platform with Pulumi for Platform Teams

timon-studler-BIk2ANMmNz4-unsplash-3x2.jpg

Earlier in October, Pulumi announced Pulumi for Platform Teams, an internal developer “platform in a box” version of Pulumi.

“Over the last two years, but especially over the last year, we’ve seen a lot of organisations building internal platforms using Pulumi,” said Joe Duffy, CEO and co-founder of Pulumi. “We detected a lot of common patterns that everybody was having to recreate, so we built them right into the Pulumi platform so people don’t have to do the undifferentiated heavy lifting.”

Pulumi-joe-duffy.resized.jpg
Pulumi co-founder and CEO Joe Duffy

Pulumi saw a lot of customers building their own version of a developer platform, wiring up Pulumi to tools like Backstage, adding compliance checking with custom-built systems, and so on. Customers don't tend to see what their peers are doing as much as vendors and consultants so, and Pulumi saw an opportunity to take on that burden for customers as part of the value Pulumi offers.

I quite like this approach to providing a developer portal, compared to alternatives I've seen throughout my career. Internal developer portals have a difficult history. As I wrote in the latest edition of The Crux newsletter:

Using pre-configured templates makes a lot of sense for common operational tasks. It's the same idea that underpins automation of all kinds: why manually do the same thing over and over again? Humans aren't very good at boring, repetitive tasks. They make mistakes and are too slow to do it at very large scale. Why feed the machines with the blood and sweat of human beings when you could let people do things that are more fulfilling?

Unfortunately, the push for developer platforms often comes from a compliance perspective. Finance or security decide that developers can no longer be trusted to do the right thing, so their activities are curtailed by rules developers are forced to follow. That's not really the right way to build a platform team.

I like Pulumi's “batteries included, but replaceable” approach. Pulumi for Platform Teams has some opinions about what is likely to work well for most people, based on Pulumi's experience with how customers have used Pulumi. There are defaults that Pulumi believes are sensible, but you don't have to use them if they don't make sense in your environment. Compliance policies are designed to be helpful, like transformations that take non-compliant resources and make them compliant by automatically tagging things that weren't tagged by the developer.

The part I see technical teams missing with these systems is learning what the defaults are trying to teach them. Cloud-style operations is a different way of thinking compared to traditional IT operations based on physical servers and a few dozen virtual machines. Operating a system made up of tens of thousands of constantly changing pieces is qualitatively different.

Too often, teams bring what they already know about operations to a new tool and try to make it work the way they're used to. Just as some programmers can write Java in any language, some IT operators can turn all the cattle into pets.

Not every tool is perfect, and adjustments are often necessary, but learning to work with your tools instead of against them is important, too. That's the real value I see something like Pulumi for Platform Teams providing: a way for teams that want to embrace a cloud operating model to experience what an internal platform could look like. They can learn by doing but without starting from nothing. Instead of being overwhelmed by seemingly infinite choice, and making all the same rookie errors everyone before them made, they can build on what others have figured out works well.

I hope people take the time to explore Pulumi for Platform Teams, taking on new ideas about what's possible in the process. They might end up disagreeing, and changing out some parts for others, customising things to their own preferred way of doing things. That's fine. But those decisions should be made deliberately, not by accident or from ignorance.

Let the tools guide you to learn what new things are possible.

Pulumi is a PivotNine client.