puppet at constant contact

25
Puppet at Constant Contact Adoption, the process

Upload: daveconnors

Post on 09-Jun-2015

3.231 views

Category:

Technology


2 download

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

Puppet at Constant Contact

Adoption, the process

Page 2: Puppet at Constant Contact

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

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

How to manage all these servers?

Page 5: Puppet at Constant Contact

Control of Change

Page 6: Puppet at Constant Contact

Daemon mode, at last

Page 7: Puppet at Constant Contact

Cultural Change, part one

Ok,

let’s start with

Incremental Config

&

Push

Page 8: Puppet at Constant Contact

Time to market better, but…

Page 9: Puppet at Constant Contact

Special thanks to:

Our DevOps, “we can do this with Puppet” guy, Mark Schena

& our puppetmaster, Aleks Margan

Page 10: Puppet at Constant Contact

Cultural Change, part two

Page 11: Puppet at Constant Contact

It works, right?

Yes, errr. Well… kinda.

Page 12: Puppet at Constant Contact

12

Page 13: Puppet at Constant Contact
Page 14: Puppet at Constant Contact

The dream of CI

Page 15: Puppet at Constant Contact

Fix The Flow

Page 16: Puppet at Constant Contact

I Я COW!

Page 17: Puppet at Constant Contact

Configuration as code?

Page 18: Puppet at Constant Contact

Configuration as code!

Page 19: Puppet at Constant Contact

19

Page 20: Puppet at Constant Contact

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

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

Okay, I lied, there’s three types of puppet modules

Page 23: Puppet at Constant Contact

Module development workflow

Page 24: Puppet at Constant Contact

Deployment

complete set of puppet modules

puppetmaster

environmentenvironmentenvironmentenvironment

QA-1 QA-2 PROD

Page 25: Puppet at Constant Contact

Thanks!“Dave Connors” <[email protected]>VP, Operations

“Hawk Newton” <[email protected]> Software Architect