1 Introducing Pulumi

 

This chapter covers:

  • Understanding the need for infrastructure as code
  • Understanding how Pulumi resembles and differs from other tools
  • Identifying the parts of Pulumi and how to use them
  • Observing the Pulumi workflow end to end with a simple project
 

Easy things should be easy, and hard things should be possible.

 
  -- Larry Wall, creator of Perl

As a developer, I’ve never quite loved having to deal with infrastructure.

By infrastructure I mean the underlying machinery of computing: physical servers, virtual machines, networks, storage — most of it just ends up getting in my way, and at best is a distraction from what I really care about, which is building and shipping web applications. In an ideal world, I’d just write my code, make my commits, push them to GitHub, and sit back happily with the beverage of my choice as the rest of the process just worked, and the infrastructure magically took care of itself.

The trouble, of course, is that I’m a web developer, and you can’t get very far with a web application without infrastructure. So for the majority of my career, I’ve had to contend with that reality, and it hasn’t always been fun. Sometimes it has. But mostly, not so much.

But after years of frustration and toil, here’s what I’ve learned: With the right set of tools, managing infrastructure can actually be a delightful experience, even for a cranky developer like me. Pulumi, as it turns out, is one of those tools.

1.1  Infrastructure: it’s complicated

1.2  What is infrastructure as code?

1.3  What is Pulumi?

1.3.1  Understanding Pulumi

1.3.2  Using Pulumi

1.3.3  Generating a new project

1.4  Why should I use Pulumi?

1.4.1  It builds on the skills you already have

1.4.2  It meets you where you are

1.4.3  It gives you the whole cloud

1.4.4  It’s built to handle complexity

1.5  Summary