Transcript
Page 1: Systems building Systems: A Puppet Story

Systems Building SystemsA Puppet Story

Page 2: Systems building Systems: A Puppet Story
Page 3: Systems building Systems: A Puppet Story

What is Puppet? Language Parser

Client/Server

Resource Abstraction

A few other things...

Page 4: Systems building Systems: A Puppet Story

LukeKaniesRecovering Sysadmin

Page 5: Systems building Systems: A Puppet Story

One Goal:Revolutionize System Administration

Page 6: Systems building Systems: A Puppet Story

What is a sysadmin?

Page 7: Systems building Systems: A Puppet Story

Not Exactly Modern

Page 8: Systems building Systems: A Puppet Story

Do tools have to suck?

Page 9: Systems building Systems: A Puppet Story

Say What?!??

Page 10: Systems building Systems: A Puppet Story

Everything the SameEverything Distinct

Page 11: Systems building Systems: A Puppet Story

“Best Practices”

Page 12: Systems building Systems: A Puppet Story

Don’t look at me... I wasn’t the last one to touch it...

Page 13: Systems building Systems: A Puppet Story

SSH Cfengine ?

Page 14: Systems building Systems: A Puppet Story

Bad product,hungry Luke

Page 15: Systems building Systems: A Puppet Story

SSH Cfengine ?

Page 16: Systems building Systems: A Puppet Story

SSH Cfengine ?

Page 17: Systems building Systems: A Puppet Story

You can either easily manage complex systems at scale...

Page 18: Systems building Systems: A Puppet Story

You can either easily manage complex systems at scale...

Or you can’t...

Page 19: Systems building Systems: A Puppet Story

Who’s using Puppet?

“...at Google we're currently using Puppet

to manage close to 6,000 Macs, and it's likely our deployment

will expand dramatically beyond

that....”

Page 20: Systems building Systems: A Puppet Story

Competitive Advantage

Page 21: Systems building Systems: A Puppet Story

People are finally figuring out puppet and how it gets you

to the pub by 4pm. Note that I've been at this pub since

2pm.-- Jorge Castro

Page 22: Systems building Systems: A Puppet Story

Enter Puppet...

Configuration Is Declarative Code

Semantics Matter

Reproducible

Shareable

Maintainable

Extensible

Page 23: Systems building Systems: A Puppet Story

Developer Sysadmin

Page 24: Systems building Systems: A Puppet Story

Developer Sysadmin

Three people

Page 25: Systems building Systems: A Puppet Story

Programming SysAdmin

Low-level, non-portable Assembly commands

and files

Abstract, portable C* Resources

An Analogy

* For small values of abstract

Page 26: Systems building Systems: A Puppet Story

Portable ResourcesThis:

Page 27: Systems building Systems: A Puppet Story

Portable Resources

Becomes:

This:

Page 28: Systems building Systems: A Puppet Story

Portable Resources

Becomes:

This:

Page 29: Systems building Systems: A Puppet Story

Portable Resources

Becomes:

This:

Page 30: Systems building Systems: A Puppet Story

Portable Resources

Becomes:

This:

Page 31: Systems building Systems: A Puppet Story

Portable Resources

Becomes:

This:

Page 32: Systems building Systems: A Puppet Story

Portable

23 package types

Users in NetInfo, useradd, pw

Support for Debian, Ubuntu, Red Hat, Solaris, OS X, Gentoo, SuSE, FreeBSD, and more

Page 33: Systems building Systems: A Puppet Story

Debian

Page 34: Systems building Systems: A Puppet Story

Debian

Red Hat

Page 35: Systems building Systems: A Puppet Story

Debian

Red Hat

Page 36: Systems building Systems: A Puppet Story
Page 37: Systems building Systems: A Puppet Story
Page 38: Systems building Systems: A Puppet Story

Package

Page 39: Systems building Systems: A Puppet Story

Package

Configuration

Configuration should get modified after

package installation

Page 40: Systems building Systems: A Puppet Story

Package

Service

Service should restart when

configuration changesConfiguration

Configuration should get modified after

package installation

Page 41: Systems building Systems: A Puppet Story
Page 43: Systems building Systems: A Puppet Story

Idempotence...

Page 44: Systems building Systems: A Puppet Story

Idempotence...

Page 45: Systems building Systems: A Puppet Story

Idempotence...

Describes the property of operations in mathematics and computer science which yield the same result after

the operation is applied multiple times.

Page 46: Systems building Systems: A Puppet Story
Page 47: Systems building Systems: A Puppet Story
Page 48: Systems building Systems: A Puppet Story
Page 49: Systems building Systems: A Puppet Story

Network Effects

Page 50: Systems building Systems: A Puppet Story

puppetd in the cloud

Puppetmasterd

puppetdOS X puppetd

Linux

Code

Page 51: Systems building Systems: A Puppet Story

Every Client:

Page 52: Systems building Systems: A Puppet Story

Retrieve resource catalog from central server

Every Client:

Page 53: Systems building Systems: A Puppet Story

Retrieve resource catalog from central server

Determine resource order

Every Client:

Page 54: Systems building Systems: A Puppet Story

Retrieve resource catalog from central server

Determine resource order

Check each resource in turn, fixing if necessary

Every Client:

Page 55: Systems building Systems: A Puppet Story

Retrieve resource catalog from central server

Determine resource order

Check each resource in turn, fixing if necessary

Rinse and repeat, every 30 minutes

Every Client:

Page 56: Systems building Systems: A Puppet Story

Every Resource:

Page 57: Systems building Systems: A Puppet Story

Every Resource:

Retrieve current state (e.g., by querying dpkg db or doing a stat)

Page 58: Systems building Systems: A Puppet Story

Every Resource:

Retrieve current state (e.g., by querying dpkg db or doing a stat)

Compare to desired state

Page 59: Systems building Systems: A Puppet Story

Every Resource:

Retrieve current state (e.g., by querying dpkg db or doing a stat)

Compare to desired state

Fix, if necessary (or just log)

Page 60: Systems building Systems: A Puppet Story
Page 61: Systems building Systems: A Puppet Story
Page 62: Systems building Systems: A Puppet Story
Page 64: Systems building Systems: A Puppet Story

Image from http://flickr.com/photos/pingnews/132543603/

Page 65: Systems building Systems: A Puppet Story
Page 66: Systems building Systems: A Puppet Story

Questions?

andrew@reductivelabs

twitter.com/littleidea


Top Related