This talk will be a straight-dope report of our real-world experiences using Puppet to manage our infrastructure over the last 3 years. We run Puppet in masterless mode to manage the environments that support our payments processing platform . Our domain provides especially stringent requirements when it comes to security and availability, and I'll be speaking about our practices around Puppet that support these requirements. When you're in the trenches, it's not always pretty. I'll spend some time talking about the spectacular ways we've screwed up with Puppet over the past few years. I'll link each of those war stories with lessons we've learned about good Puppet practices. I'll provide a few examples of where we feel like applying these lessons have yielded some cool modules (which will hopefully be open sourced and pushed to the Forge by PuppetConf). There will be no stunning conclusions. As I get up to the more recent lessons we've learned, I'll talk about a few of our unsolved problems, where we run up against the edges of what Puppet itself is meant for as a tool. I'll talk about unanswered questions around where truth should be managed, and outline the ideas we have about where we're headed. In the end, I'll be plugging for the Puppet community as a place for us to collaboratively solve the Hard Problems of managing infrastructure.