puppet at constant contact
DESCRIPTION
Talk at PuppetConf 2011 Dave Connors & Hawk Newton Adopting Puppet over the last couple of years and how we're handing over the keys to the Puppet Kingdom to Development. And what we are doing so it works for Development.TRANSCRIPT
Puppet at Constant Contact
Adoption, the process
Constant Contact
Market leader for Small Businesses• Email, Event, Survey & Social Campaigns• ~500k paying customers• Many customers pay as little as $15 a month
Technology• 87 applications, mix of old/new codebase• Two datacenters• ~2 million database transactions per minute
Why Puppet?
• Scaling
• Decentralization• Diverse app servers• Distributed systems• Agile Kanban dev teams• Service architecture
• Social apps need to iterate faster
How to manage all these servers?
Control of Change
Daemon mode, at last
Cultural Change, part one
Ok,
let’s start with
Incremental Config
&
Push
Time to market better, but…
Special thanks to:
Our DevOps, “we can do this with Puppet” guy, Mark Schena
& our puppetmaster, Aleks Margan
Cultural Change, part two
It works, right?
Yes, errr. Well… kinda.
12
The dream of CI
Fix The Flow
I Я COW!
Configuration as code?
Configuration as code!
19
Repository layout
application repository• code• puppet module• integration tests• database schema
Source Control
puppet repository• common puppet modules• system puppet modules
Two types of puppet modules
• Common modules provide non-application-specific classes and resources.
• Application modules leverage common modules to configure an environment for a given application.
+ =
application module common module
running application
Okay, I lied, there’s three types of puppet modules
Module development workflow
Deployment
complete set of puppet modules
puppetmaster
environmentenvironmentenvironmentenvironment
QA-1 QA-2 PROD
Thanks!“Dave Connors” <[email protected]>VP, Operations
“Hawk Newton” <[email protected]> Software Architect