• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Systems building Systems: A Puppet Story
 

Systems building Systems: A Puppet Story

on

  • 5,612 views

 

Statistics

Views

Total Views
5,612
Views on SlideShare
5,502
Embed Views
110

Actions

Likes
16
Downloads
218
Comments
0

6 Embeds 110

http://openerpappliance.com 79
http://opensourceconsulting.wordpress.com 17
http://www.linkedin.com 6
http://www.slideshare.net 5
https://www.linkedin.com 2
http://a0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Systems building Systems: A Puppet Story Systems building Systems: A Puppet Story Presentation Transcript

    • Systems Building Systems A Puppet Story
    • What is Puppet? Language Parser Client/Server Resource Abstraction A few other things...
    • Luke Kanies Recovering Sysadmin
    • One Goal: Revolutionize System Administration
    • What is a sysadmin?
    • Not Exactly Modern
    • Do tools have to suck?
    • Say What?!??
    • Everything the Same Everything Distinct
    • “Best Practices”
    • Don’t look at me... I wasn’t the last one to touch it...
    • SSH Cfengine ?
    • Bad product, hungry Luke
    • SSH Cfengine ?
    • SSH Cfengine ?
    • You can either easily manage complex systems at scale...
    • You can either easily manage complex systems at scale... Or you can’t...
    • 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....”
    • Competitive Advantage
    • 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
    • Enter Puppet... Configuration Is Declarative Code Semantics Matter Reproducible Shareable Maintainable Extensible
    • Developer Sysadmin
    • Three people Developer Sysadmin
    • An Analogy Programming SysAdmin Low-level, commands Assembly non-portable and files Abstract, C* Resources portable * For small values of abstract
    • Portable Resources This:
    • Portable Resources This: Becomes:
    • Portable Resources This: Becomes:
    • Portable Resources This: Becomes:
    • Portable Resources This: Becomes:
    • Portable Resources This: Becomes:
    • Portable 23 package types Users in NetInfo, useradd, pw Support for Debian, Ubuntu, Red Hat, Solaris, OS X, Gentoo, SuSE, FreeBSD, and more
    • Debian
    • Debian Red Hat
    • Debian Red Hat
    • Package
    • Configuration should Package get modified after package installation Configuration
    • Configuration should Package get modified after package installation Service should restart Configuration when configuration changes Service
    • Idempotence...
    • Idempotence...
    • Idempotence... Describes the property of operations in mathematics and computer science which yield the same result after the operation is applied multiple times.
    • Network Effects
    • Code Puppetmasterd puppetd puppetd OS X in the puppetd cloud Linux
    • Every Client:
    • Every Client: Retrieve resource catalog from central server
    • Every Client: Retrieve resource catalog from central server Determine resource order
    • Every Client: Retrieve resource catalog from central server Determine resource order Check each resource in turn, fixing if necessary
    • Every Client: Retrieve resource catalog from central server Determine resource order Check each resource in turn, fixing if necessary Rinse and repeat, every 30 minutes
    • Every Resource:
    • Every Resource: Retrieve current state (e.g., by querying dpkg db or doing a stat)
    • Every Resource: Retrieve current state (e.g., by querying dpkg db or doing a stat) Compare to desired state
    • 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)
    • Image from http://flickr.com/photos/pingnews/132543603/
    • Questions? andrew@reductivelabs twitter.com/littleidea