Puppet and our Model-
    driven future

                   Luke Kanies
             luke@reductivelabs.com
             F...
A bit about Puppet
You pull the strings,
Puppet does the work
0
SSH
“...at Google we're
currently using Puppet to
  manage close to 6,000
 Macs, and it's likely our
 deployment will expand
 ...
Written in Ruby
Why does Puppet
     exist?
Embarrassment
Fear
Somebody has to do something, and it's
just incredibly pathetic that it has to be us.
                -- Jerry Garcia
Why didn’t someone
  else make it?
Sysadmins do too
                   much
Image from http://flickr.com/photos/shirleytwofeathers/2068713495/
Speciation




Image from http://flickr.com/photos/kenskritters/2128853769/
Sysadmins know too
       much
An Analogy
                         Programming   SysAdmin


 Low-level,                            commands
             ...
Virtualization and
    the cloud
Hardware          Provisioning   Deployment




 Old Days




Cloud Days



             0H         100H         200H     ...
Dell

             Hardware          Provisioning        Deployment




 Old Days




Cloud Days



             0H       ...
Dell

             Hardware          Provisioning        Deployment




 Old Days




Cloud Days



             0H       ...
“We’re here for your
    sysadmins”
Would your boss pick:
Would your boss pick:

• The current service quality at a lower
  price?
Would your boss pick:

• The current service quality at a lower
  price?
• A higher service quality at the current
  price?
Let’s talk about you
Some questions
Some questions


• How many of you have written software to
  manage computers?
Some questions


• How many of you have written software to
  manage computers?
• How many have published this software?
Developer   Sysadmin
Three
   people




Developer   Sysadmin
Puppet allows you to
      bridge that gap




Image from http://www.flickr.com/photos/patrick-smith-photography/2969769911...
Either you can manage many
 machines with little effort
Either you can manage many
 machines with little effort


      Or you can’t
Puppet and model-
driven administration
Resource Abstraction
    Layer (RAL)
Do you really care how
     rpm works?
Resource Providers


23 package types
Users in NetInfo, useradd, pw
Builtin support for RHEL, OS X, Solaris,
Debian, Ubunt...
Resources are
specified in code
Code is compiled
 into a catalog
The client gets a
catalog, not code
Least Privilege is
  in the house
If it’s not in the catalog,
     it’s not managed
If it’s not in the catalog,
it can’t affect the system
"Exec[createrepo-PM-RHEL5-noarch]"
                                                        Compiled Catalogs
             ...
Is this file being
managed by Puppet?
Which services will I
need to restart if I edit
       this file?
Who requires this
   package?
Classes are modeled
Code or Data?
Perspective Shift
Functional Areas


• Specification and validation system
• Auditing and application engine
Code

             Catalog
  Compiler             Transaction



                             Report
Data and Artifacts

• Configurations and code
• Compiled Catalogs
• Transaction Reports
• etc.
Compile             Apply
Code             Catalog           Report
So?
Caching
Integration
Actual Future
Simple Tools
Which resources are
 being managed
Validation prior to
     shipping
Compile             Apply
Code             Catalog           Report
CMDB




          Compile             Apply
   Code             Catalog           Report
CMDB




              Compile             Apply
       Code             Catalog           Report




LDAP
Policy
 CMDB              Compliance




              Compile               Apply
       Code               Catalog      ...
Policy
 CMDB              Compliance




              Compile                  Apply
       Code               Catalog   ...
Policy
 CMDB                                              Remedy
                   Compliance




              Compile  ...
Policy
 CMDB                                              Remedy
                   Compliance




              Compile  ...
Resource/Event
 Correlation
Questio
Puppet and the Model-Driven Infrastructure
Upcoming SlideShare
Loading in …5
×

Puppet and the Model-Driven Infrastructure

23,324 views

Published on

A discussion of how Puppet's model-driven nature provides the platform for its future.

2 Comments
11 Likes
Statistics
Notes
  • Nice presentation. However, slides 62-67 are a bit confusing: CMDB is normally an ITIL term. In v2, it's where you record info about Configuration Items, after you've defined what a CI is. In v3, the definition changed to where you store Configuration Records of CIs. CRs are described as Documents.

    It's really confusing that ITIL uses the term Configuration Management to mean something quite different to what developers mean by Configuration Management :-(

    It would be smart for the devops community to grab hold of this confusion explicitly say, eg 'ITIL CM' and System Configuration Management (or maybe Software Configuration Management).
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Awesome! Made It SSOD ... congrats. Can't wait to hear you give this live at http://www.justin.tv/slideshare at 930PST 3/13/10.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
23,324
On SlideShare
0
From Embeds
0
Number of Embeds
8,604
Actions
Shares
0
Downloads
256
Comments
2
Likes
11
Embeds 0
No embeds

No notes for slide






















  • Firefighter? Architect? Developer? Tape-changer? All of the above?
  • These are house finches, reminding one of the finches Darwin observed in the Galapagos. I want to cause sysadmin speciation.


  • * The assembly programmers fought the adoption of C
    * Fear for your career if you’re a bit too fond of assembly
    * It’s not about fewer people, it’s about higher quality and productivity
    * Are there more or fewer programmers today than in the days of assembly?












  • Do you have any computers?














  • rpm/apt/etc becomes packages
    /etc/hosts becomes hosts
    useradd/netinfo, etc. becomes users
    /etc/init.d/smf/launchd/daemontools becomes services


  • This is shareable, releasable code.
    Classes are analogous with tags




















  • This is shareable, releasable code.
    Classes are analogous with tags










































  • Puppet and the Model-Driven Infrastructure

    1. Puppet and our Model- driven future Luke Kanies luke@reductivelabs.com Founder, Reductive Labs Portland, Oregon USA
    2. A bit about Puppet
    3. You pull the strings, Puppet does the work
    4. 0 SSH
    5. “...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....”
    6. Written in Ruby
    7. Why does Puppet exist?
    8. Embarrassment
    9. Fear
    10. Somebody has to do something, and it's just incredibly pathetic that it has to be us. -- Jerry Garcia
    11. Why didn’t someone else make it?
    12. Sysadmins do too much Image from http://flickr.com/photos/shirleytwofeathers/2068713495/
    13. Speciation Image from http://flickr.com/photos/kenskritters/2128853769/
    14. Sysadmins know too much
    15. An Analogy Programming SysAdmin Low-level, commands Assembly non-portable and files Abstract, C* Resources portable * For small values of abstract
    16. Virtualization and the cloud
    17. Hardware Provisioning Deployment Old Days Cloud Days 0H 100H 200H 300H 400H
    18. Dell Hardware Provisioning Deployment Old Days Cloud Days 0H 100H 200H 300H 400H
    19. Dell Hardware Provisioning Deployment Old Days Cloud Days 0H 100H 200H 300H 400H You
    20. “We’re here for your sysadmins”
    21. Would your boss pick:
    22. Would your boss pick: • The current service quality at a lower price?
    23. Would your boss pick: • The current service quality at a lower price? • A higher service quality at the current price?
    24. Let’s talk about you
    25. Some questions
    26. Some questions • How many of you have written software to manage computers?
    27. Some questions • How many of you have written software to manage computers? • How many have published this software?
    28. Developer Sysadmin
    29. Three people Developer Sysadmin
    30. Puppet allows you to bridge that gap Image from http://www.flickr.com/photos/patrick-smith-photography/2969769911/sizes/o/
    31. Either you can manage many machines with little effort
    32. Either you can manage many machines with little effort Or you can’t
    33. Puppet and model- driven administration
    34. Resource Abstraction Layer (RAL)
    35. Do you really care how rpm works?
    36. Resource Providers 23 package types Users in NetInfo, useradd, pw Builtin support for RHEL, OS X, Solaris, Debian, Ubuntu, Gentoo, SuSE, FreeBSD, and more
    37. Resources are specified in code
    38. Code is compiled into a catalog
    39. The client gets a catalog, not code
    40. Least Privilege is in the house
    41. If it’s not in the catalog, it’s not managed
    42. If it’s not in the catalog, it can’t affect the system
    43. "Exec[createrepo-PM-RHEL5-noarch]" Compiled Catalogs "Yumrepo[PM-RHEL5-x86_64]" are a DAG "Package[postgresql-server]" "Postgres::Role[puppet]" "Package[thttpd]" "File[/var/www/thttpd/html/yum-PM-RHEL5-x86_64]" "File[/var/www/thttpd/html/yum-PM-RHEL5-noarch]" "Exec[rsync-rpmdir-PM-RHEL5-x86_64]" "Exec[rsync-rpmdir-PM-RHEL5-noarch]" "Exec[createrepo-PM-RHEL5-x86_64]" "Yumrepo[PM-RHEL5-noarch]"
    44. Is this file being managed by Puppet?
    45. Which services will I need to restart if I edit this file?
    46. Who requires this package?
    47. Classes are modeled
    48. Code or Data?
    49. Perspective Shift
    50. Functional Areas • Specification and validation system • Auditing and application engine
    51. Code Catalog Compiler Transaction Report
    52. Data and Artifacts • Configurations and code • Compiled Catalogs • Transaction Reports • etc.
    53. Compile Apply Code Catalog Report
    54. So?
    55. Caching
    56. Integration
    57. Actual Future
    58. Simple Tools
    59. Which resources are being managed
    60. Validation prior to shipping
    61. Compile Apply Code Catalog Report
    62. CMDB Compile Apply Code Catalog Report
    63. CMDB Compile Apply Code Catalog Report LDAP
    64. Policy CMDB Compliance Compile Apply Code Catalog Report LDAP
    65. Policy CMDB Compliance Compile Apply Code Catalog Report LDAP CMDB
    66. Policy CMDB Remedy Compliance Compile Apply Code Catalog Report LDAP CMDB
    67. Policy CMDB Remedy Compliance Compile Apply Code Catalog Report LDAP CMDB Nagios
    68. Resource/Event Correlation
    69. Questio

    ×