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
![Page 1: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/1.jpg)
Puppet at Constant Contact
Adoption, the process
![Page 2: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/2.jpg)
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
![Page 3: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/3.jpg)
Why Puppet?
• Scaling
• Decentralization• Diverse app servers• Distributed systems• Agile Kanban dev teams• Service architecture
• Social apps need to iterate faster
![Page 4: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/4.jpg)
How to manage all these servers?
![Page 5: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/5.jpg)
Control of Change
![Page 6: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/6.jpg)
Daemon mode, at last
![Page 7: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/7.jpg)
Cultural Change, part one
Ok,
let’s start with
Incremental Config
&
Push
![Page 8: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/8.jpg)
Time to market better, but…
![Page 9: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/9.jpg)
Special thanks to:
Our DevOps, “we can do this with Puppet” guy, Mark Schena
& our puppetmaster, Aleks Margan
![Page 10: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/10.jpg)
Cultural Change, part two
![Page 11: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/11.jpg)
It works, right?
Yes, errr. Well… kinda.
![Page 12: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/12.jpg)
12
![Page 13: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/13.jpg)
![Page 14: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/14.jpg)
The dream of CI
![Page 15: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/15.jpg)
Fix The Flow
![Page 16: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/16.jpg)
I Я COW!
![Page 17: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/17.jpg)
Configuration as code?
![Page 18: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/18.jpg)
Configuration as code!
![Page 19: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/19.jpg)
19
![Page 20: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/20.jpg)
Repository layout
application repository• code• puppet module• integration tests• database schema
Source Control
puppet repository• common puppet modules• system puppet modules
![Page 21: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/21.jpg)
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
![Page 22: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/22.jpg)
Okay, I lied, there’s three types of puppet modules
![Page 23: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/23.jpg)
Module development workflow
![Page 24: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/24.jpg)
Deployment
complete set of puppet modules
puppetmaster
environmentenvironmentenvironmentenvironment
QA-1 QA-2 PROD
![Page 25: Puppet at Constant Contact](https://reader036.vdocument.in/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/25.jpg)
Thanks!“Dave Connors” <[email protected]>VP, Operations
“Hawk Newton” <[email protected]> Software Architect