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,...
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
     ...
Enter Puppet...
                  Configuration Is
                  Declarative Code
                  Semantics Matter
  ...
Developer   Sysadmin
Three
   people




Developer   Sysadmin
An Analogy

                         Programming   SysAdmin


 Low-level,                            commands
            ...
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,
  ...
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 shoul...
Idempotence...
Idempotence...
Idempotence...

 Describes the property of operations in mathematics
and computer science which yield the same result afte...
Network Effects
Code




          Puppetmasterd




puppetd                   puppetd
 OS X                      in the
            puppe...
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 resour...
Every Client:
     Retrieve resource catalog from central
     server
     Determine resource order
     Check each resour...
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
  ...
Image from http://flickr.com/photos/pingnews/132543603/
Questions?
andrew@reductivelabs
twitter.com/littleidea
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Systems building Systems: A Puppet Story
Upcoming SlideShare
Loading in...5
×

Systems building Systems: A Puppet Story

4,169

Published on

Published in: Technology
0 Comments
16 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,169
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
221
Comments
0
Likes
16
Embeds 0
No embeds

No notes for slide

Systems building Systems: A Puppet Story

  1. 1. Systems Building Systems A Puppet Story
  2. 2. What is Puppet? Language Parser Client/Server Resource Abstraction A few other things...
  3. 3. Luke Kanies Recovering Sysadmin
  4. 4. One Goal: Revolutionize System Administration
  5. 5. What is a sysadmin?
  6. 6. Not Exactly Modern
  7. 7. Do tools have to suck?
  8. 8. Say What?!??
  9. 9. Everything the Same Everything Distinct
  10. 10. “Best Practices”
  11. 11. Don’t look at me... I wasn’t the last one to touch it...
  12. 12. SSH Cfengine ?
  13. 13. Bad product, hungry Luke
  14. 14. SSH Cfengine ?
  15. 15. SSH Cfengine ?
  16. 16. You can either easily manage complex systems at scale...
  17. 17. You can either easily manage complex systems at scale... Or you can’t...
  18. 18. 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....”
  19. 19. Competitive Advantage
  20. 20. 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
  21. 21. Enter Puppet... Configuration Is Declarative Code Semantics Matter Reproducible Shareable Maintainable Extensible
  22. 22. Developer Sysadmin
  23. 23. Three people Developer Sysadmin
  24. 24. An Analogy Programming SysAdmin Low-level, commands Assembly non-portable and files Abstract, C* Resources portable * For small values of abstract
  25. 25. Portable Resources This:
  26. 26. Portable Resources This: Becomes:
  27. 27. Portable Resources This: Becomes:
  28. 28. Portable Resources This: Becomes:
  29. 29. Portable Resources This: Becomes:
  30. 30. Portable Resources This: Becomes:
  31. 31. Portable 23 package types Users in NetInfo, useradd, pw Support for Debian, Ubuntu, Red Hat, Solaris, OS X, Gentoo, SuSE, FreeBSD, and more
  32. 32. Debian
  33. 33. Debian Red Hat
  34. 34. Debian Red Hat
  35. 35. Package
  36. 36. Configuration should Package get modified after package installation Configuration
  37. 37. Configuration should Package get modified after package installation Service should restart Configuration when configuration changes Service
  38. 38. Idempotence...
  39. 39. Idempotence...
  40. 40. Idempotence... Describes the property of operations in mathematics and computer science which yield the same result after the operation is applied multiple times.
  41. 41. Network Effects
  42. 42. Code Puppetmasterd puppetd puppetd OS X in the puppetd cloud Linux
  43. 43. Every Client:
  44. 44. Every Client: Retrieve resource catalog from central server
  45. 45. Every Client: Retrieve resource catalog from central server Determine resource order
  46. 46. Every Client: Retrieve resource catalog from central server Determine resource order Check each resource in turn, fixing if necessary
  47. 47. 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
  48. 48. Every Resource:
  49. 49. Every Resource: Retrieve current state (e.g., by querying dpkg db or doing a stat)
  50. 50. Every Resource: Retrieve current state (e.g., by querying dpkg db or doing a stat) Compare to desired state
  51. 51. 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)
  52. 52. Image from http://flickr.com/photos/pingnews/132543603/
  53. 53. Questions? andrew@reductivelabs twitter.com/littleidea
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×