As we announced a few months back, Puppet Labs is one of our sponsors. As part of that arrangement, I got to go behind the scenes and learn a little bit about how things work at Puppet Labs.

Puppet Logo

I got to have a conversation with Stephanie Stouck, a product marketing manager, as well as Eric Sorensen, their technical product manager. Eric’s a long-time sysadmin who migrated from being a customer of Puppet and its competitors into being someone who makes Puppet. Stephanie comes from a background in product marketing, but gets to see how customers are using Puppet.

Before we get into that, though, let’s get the important question out of the way. Puppet Labs is based in Portland. How’s the office coffee? “Delicious!” according to Stephanie. “We have a kind of ridiculous coffee culture,” Eric says. “I feel at least partially responsible.” He should- he’s the star of Puppet’s internal training video on how to care for their espresso machine.

Puppet is one of the big products at the center of the “DevOps” space. DevOps, like “the cloud”, and “agile”, is a term everyone uses, but no one can accurately define. I gave Stephanie and Eric a chance to nail the term down.

“DevOps is as much a cultural shift,” Stephanie explains, “as it is a set of work practices.” It’s not a specific set of tools, techniques, or practices, but more a goal: “DevOps means development and operations teams are aligned around a single business goal- to deliver value to customers.”

Eric expands on that alignment. “It’s sharing technology that’s taken for granted on one side of the dev/ops divide and implementing it in a new way… for example, bringing pervasive version control and CI from the dev world and applying it to infrastructure code; conversely, taking the idea of monitoring every metric and instrumenting the application to expose those metrics from day one.”

This all feels very warm and fuzzy, but let’s get down to brass tacks. I don’t want to end up being the subject of an article on TDWTF. How does Puppet help with that? Eric has a strong opinion:

TESTING! There are a bunch of awesome test features in Puppet that let you do everything from try out your changes on a disposable VM before checking them in, to running on a production server in “dry run” / “no-op” mode so you know before you flip the switch whether things are going to work or not. “Know before you go!”

In fact, Eric points out that they eat their own dogfood. It’s these testing tools that let them get Puppet out the door.

They use Beaker, along with rspec-puppet. “You can say things like, bring up a Centos master, point a Windows agent at it, compile a catalog, and make sure the agent gets a resource that looks a certain way.”

He adds, “If you’re not using configuration management automation, life gets better. If you’re using config management you wrote yourself, or that someone else wrote and then left the company… life really gets better.”

True Confession: I built an automated deployment tool, and then left the company once. This was the sort of company that wanted to automate, but didn’t want to spend money on buying something, nor would they ever contemplate letting dev and ops work closely together. And yes, I did over-engineer it some, and even reinvented full duplex web service calls in the process. I’m not proud. Hopefully my former coworkers will be able to say it gets better, eventually.

Now, Puppet has a huge install base, but I wanted to know: what are some cool things happening with the tool?

“A great example is GitHub,” Stephanie says. “They have grown exponentially over the past 5 years. Puppet has really helped by allowing them to scale.”

“I built out the infrastructure for the iCloud service on Puppet,” Eric adds. “iCloud was a brand-new greenfield service and we were able to start out with the premise that everything everything had to be in Puppet. We got several thousand Linux boxes provisioned and configured, so when we flipped the switch on day one, it was awesome to see the subscribers just start filling up this big empty data center.”

“One of my favorite stories is Ambit Energy,” Stephanie adds. “Ambit couldn’t deploy fast enough to support their rapid growth. It was taking too long to develop and deploy applications with one-off scripts and manual deployment…. With Puppet, deployments are 1,200+ times more frequent. Also, the IT team can manage 500+ servers, up from only 30. That’s with the same size team.”

With all of this snazzy, sunshine-y stuff, I have to dig deeper. Eric and Stephanie have been in and around the industry for a long time. They must have seen or been responsible for some serious WTFs. What’s the worst WTF they’ve ever committed?

Worst WTF was probably back in my ISP days; I was trying to add an IP alias to the main shell server and instead changed its actual IP. I sprinted for the server room faster than I’ve ever run before. – Eric

Do home improvement hacks count? Back in my rental days I came up with a great hack to make my wool rug slip proof. It was genius! Why spend money on a pricey rug pad. Right? Let’s just say I used the wrong adhesive. That rug was going nowhere and probably still has gone nowhere to this day. – Stephanie

What about their worst gig? Stephanie can’t come up with any complaints, but Eric recalls his worst job. “It was a ‘contingency’ job to help out with some helpdesk software that never got installed. I hacked on my window manager’s config for three months solid.”

Pretty much every job would be better without dealing with customers. Without naming names, what’s the worst thing they’ve seen around automation tools? “Usually, the ‘misuse’ I hear about,” Stephanie says, “is not using any automation at all.”

The biggest issue Eric sees is people misunderstanding what the Puppet philosophy is about. “People ask pretty frequently how to be reactive to some state on the node in their manifests. Like, ‘how can I do one thing if a package is installed, and another if it’s not?’ The model is much more, ’you tell the node whether or not the package should be installed.”

And what about inside of Puppet itself? Sure, it’s mostly open source, but it’s a project of real size. There must be some part of the system that they hope nobody looks too closely at.

“puppet help help help help help,” Eric says. I, of course, have to pop into the command line to run that. Running 'puppet help help help help help' outputs an ASCII art image with the caption, 'Relax, today is the first day of the rest of your life', and a brief error about misusing the command.

Aside from potentially fixing that “help” screen, what’s next for Puppet? Stephanie explains. “In October, we announced Puppet Application Orchestration, which is a new way to… orchestrate the deployment and management of business-critical infrastructure and applications. This is going to be generally available later this year, part of Puppet Enterprise 2015.3.” You can find out more by checking out CEO Luke Kanies keynote from PuppetConf 2015.

Finally, I reminded Eric and Stephanie that this is a humor site. They both offered their own short jokes to contribute:

“If at first you don’t succeed, call it version 1.0,” Stephanie contributed.

“They kicked me out of karaoke for trying to sing ”Danger Zone“ five times in a row… They said I’d exceeded the maximum number of Loggins attempts,” Eric added.

With all of that said, you can take a crack at Puppet's free trial. As someone who promotes laziness, if you aren't using some kind of automation, you really should be.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!