Puppet at Constant Contact
-
Upload
daveconnors -
Category
Technology
-
view
3.231 -
download
2
description
Transcript of Puppet at Constant Contact
![Page 1: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/1.jpg)
Puppet at Constant Contact
Adoption, the process
![Page 2: Puppet at Constant Contact](https://reader036.fdocuments.us/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.fdocuments.us/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.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/4.jpg)
How to manage all these servers?
![Page 5: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/5.jpg)
Control of Change
![Page 6: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/6.jpg)
Daemon mode, at last
![Page 7: Puppet at Constant Contact](https://reader036.fdocuments.us/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.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/8.jpg)
Time to market better, but…
![Page 9: Puppet at Constant Contact](https://reader036.fdocuments.us/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.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/10.jpg)
Cultural Change, part two
![Page 11: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/11.jpg)
It works, right?
Yes, errr. Well… kinda.
![Page 12: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/12.jpg)
12
![Page 13: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/13.jpg)
![Page 14: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/14.jpg)
The dream of CI
![Page 15: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/15.jpg)
Fix The Flow
![Page 16: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/16.jpg)
I Я COW!
![Page 17: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/17.jpg)
Configuration as code?
![Page 18: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/18.jpg)
Configuration as code!
![Page 19: Puppet at Constant Contact](https://reader036.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/19.jpg)
19
![Page 20: Puppet at Constant Contact](https://reader036.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/23.jpg)
Module development workflow
![Page 24: Puppet at Constant Contact](https://reader036.fdocuments.us/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.fdocuments.us/reader036/viewer/2022062706/55765764d8b42aaa548b4d09/html5/thumbnails/25.jpg)
Thanks!“Dave Connors” <[email protected]>VP, Operations
“Hawk Newton” <[email protected]> Software Architect