Your SlideShare is downloading. ×
0
Wireless                       • Any “BvB Hotspot...” network                       • New browser page                    ...
puppet                           labsFriday, May 13, 2011
Making Puppet                       More Hackable                             Luke Kanies                          luke@pu...
Question                       AuthorityFriday, May 13, 2011
Puppet LabsFriday, May 13, 2011
Puppet Labs                       • 40   employeesFriday, May 13, 2011
Puppet Labs                       • 40   employees                       • Fantastic   investors and board                ...
Puppet Labs                       • 40    employees                       • Fantastic   investors and board               ...
Puppet 2.7Friday, May 13, 2011
Apache                       LicenseFriday, May 13, 2011
FacesFriday, May 13, 2011
Static                       CompilerFriday, May 13, 2011
Certificate                          APIFriday, May 13, 2011
Deterministic           Ordering                       For otherwise unrelated                                    resource...
Enhanced                         Graph                       ManagementFriday, May 13, 2011
Puppet                       EnterpriseFriday, May 13, 2011
Always based                       on full releasesFriday, May 13, 2011
Looking for                        PartnersFriday, May 13, 2011
PE 1.1 - 5/11                       • MCollective                       • RHEL   4/5/6, SLES, SolarisFriday, May 13, 2011
PE 1.2 - 6/11                       • Discovery                       • ProvisioningFriday, May 13, 2011
Q3                       • Full   Windows support                       • 2.7    base                       • Change    Li...
Faces, Hackability,        and MarketingFriday, May 13, 2011
Puppet is different,             but not in       straightforward waysFriday, May 13, 2011
AwkwardFriday, May 13, 2011
I wanted to tell                 The Story of WhyFriday, May 13, 2011
A bit of history:                      CfengineFriday, May 13, 2011
I had no control                       • Stuckwith whatever                        application logic it shipped           ...
Do Not Question                       • Why   is this file here?                       • What   requires this package?     ...
Not ExtensibleFriday, May 13, 2011
“Puppet is                       Different”Friday, May 13, 2011
Easily extensible,                   everywhere                       A quick count shows 10 kinds of                     ...
The Puppet world                       • Facts                       • Resources                       • Catalogs         ...
Questions can be asked                          of every artifact                       •   Is this file being managed?    ...
Data > Code                       • Caching                       • Validation                       • Implementation   In...
"Exec[createrepo-PM-RHEL5-noarch]"                                                                    The Graph           ...
An Aside: The                       CompetitionFriday, May 13, 2011
AFAIK, Puppet is the                       only tool that provides:                       •   A complete list of every res...
Progress?                         •Declarative                         •Code runs on             Cfengine    client       ...
How do we talk about         this? Market this?Friday, May 13, 2011
“Puppet is  Model-Driven”Friday, May 13, 2011
Procedural                       Code                                        Catalog                              Compile ...
Model-driven                              Compile                   Apply                       Code              Catalog ...
Policy         CMDB                                                  Remedy                                  Complian     ...
No one knows what           ‘model driven’              meansFriday, May 13, 2011
“Puppet is                  hackable”                       Props to Nick FagerlandFriday, May 13, 2011
But it wasn’t                        really trueFriday, May 13, 2011
You could *program*                       it, but not hack it like                         a sysadmin wouldFriday, May 13,...
Really: Encapsulated,                        modular and data-                               drivenFriday, May 13, 2011
Unfortunately the                        applications hard-code                               our logic                   ...
Other application world-                         views exist                       •   Only update catalogs during mainten...
It doesn’t make sense                   to extend the core apps                        with this logicFriday, May 13, 2011
And doing it yourself is                        too hard with current                                toolsFriday, May 13, ...
So we should expose                       everything and let you                        build what you wantFriday, May 13,...
Functions                       • Compiler                       • Transactions                       • Network           ...
Data                       • Facts                       • Catalog                       • Reports                       •...
InterfacesFriday, May 13, 2011
Puppet FacesFriday, May 13, 2011
A framework for                       exposing, combining,                        and extending core                      ...
A collection of Faces                       that does this in Ruby                           and on the CLIFriday, May 13,...
Good: It directly exposes             Puppet internals in a                hackable wayFriday, May 13, 2011
Bad: It directly exposes                     Puppet internalsFriday, May 13, 2011
Examples                       • puppet   catalog find <host>                       • puppet   facts upload                ...
Easily extensible                       •   puppet config info <name>                       •   puppet catalog select <host...
What we’re                       working onFriday, May 13, 2011
Team and                       CommunityFriday, May 13, 2011
Flattening the                          on-rampFriday, May 13, 2011
Ad-hoc                       ToolingFriday, May 13, 2011
Cross-Node                       ApplicationsFriday, May 13, 2011
DatabasesFriday, May 13, 2011
Change                       LifecycleFriday, May 13, 2011
Questions?Friday, May 13, 2011
Upcoming SlideShare
Loading in...5
×

Puppet camp europe 2011 hackability

3,212

Published on

Watch along with the video at https://www.youtube.com/watch?v=ag-bI5lr55s

Luke Kanies, CEO and Founder of Puppet Labs, talks on "Making Puppet More Hackable" at PuppetCamp Europe '11, Amsterdam, Netherlands. Learn more: http://www.puppetlabs.com

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,212
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
30
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Puppet camp europe 2011 hackability"

  1. 1. Wireless • Any “BvB Hotspot...” network • New browser page • User: bvbhotspot Password: berlag33Friday, May 13, 2011
  2. 2. puppet labsFriday, May 13, 2011
  3. 3. Making Puppet More Hackable Luke Kanies luke@puppetlabs.comFriday, May 13, 2011
  4. 4. Question AuthorityFriday, May 13, 2011
  5. 5. Puppet LabsFriday, May 13, 2011
  6. 6. Puppet Labs • 40 employeesFriday, May 13, 2011
  7. 7. Puppet Labs • 40 employees • Fantastic investors and board membersFriday, May 13, 2011
  8. 8. Puppet Labs • 40 employees • Fantastic investors and board members • I’m still CEOFriday, May 13, 2011
  9. 9. Puppet 2.7Friday, May 13, 2011
  10. 10. Apache LicenseFriday, May 13, 2011
  11. 11. FacesFriday, May 13, 2011
  12. 12. Static CompilerFriday, May 13, 2011
  13. 13. Certificate APIFriday, May 13, 2011
  14. 14. Deterministic Ordering For otherwise unrelated resourcesFriday, May 13, 2011
  15. 15. Enhanced Graph ManagementFriday, May 13, 2011
  16. 16. Puppet EnterpriseFriday, May 13, 2011
  17. 17. Always based on full releasesFriday, May 13, 2011
  18. 18. Looking for PartnersFriday, May 13, 2011
  19. 19. PE 1.1 - 5/11 • MCollective • RHEL 4/5/6, SLES, SolarisFriday, May 13, 2011
  20. 20. PE 1.2 - 6/11 • Discovery • ProvisioningFriday, May 13, 2011
  21. 21. Q3 • Full Windows support • 2.7 base • Change Lifecycle ManagementFriday, May 13, 2011
  22. 22. Faces, Hackability, and MarketingFriday, May 13, 2011
  23. 23. Puppet is different, but not in straightforward waysFriday, May 13, 2011
  24. 24. AwkwardFriday, May 13, 2011
  25. 25. I wanted to tell The Story of WhyFriday, May 13, 2011
  26. 26. A bit of history: CfengineFriday, May 13, 2011
  27. 27. I had no control • Stuckwith whatever application logic it shipped with • Core components were mandatoryFriday, May 13, 2011
  28. 28. Do Not Question • Why is this file here? • What requires this package? • What will happen if I change this file? • Do these classes conflict?Friday, May 13, 2011
  29. 29. Not ExtensibleFriday, May 13, 2011
  30. 30. “Puppet is Different”Friday, May 13, 2011
  31. 31. Easily extensible, everywhere A quick count shows 10 kinds of extensibilityFriday, May 13, 2011
  32. 32. The Puppet world • Facts • Resources • Catalogs • Edges • EventsFriday, May 13, 2011
  33. 33. Questions can be asked of every artifact • Is this file being managed? • What happens if I restart this service? • Who requires this package? • Did my service restart? • Were there any failures?Friday, May 13, 2011
  34. 34. Data > Code • Caching • Validation • Implementation Independence • IntegrationFriday, May 13, 2011
  35. 35. "Exec[createrepo-PM-RHEL5-noarch]" The Graph Matters "Yumrepo[PM-RHEL5-x86_64]" "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]"Friday, May 13, 2011
  36. 36. An Aside: The CompetitionFriday, May 13, 2011
  37. 37. AFAIK, Puppet is the only tool that provides: • A complete list of every resource managed in your entire infrastructure • A complete list of every dependency in your entire infrastructure • A complete list of every single change that’s ever happened in your entire infrastructure • With full run simulation and inspection ...all in a queryable, storable, cacheable wayFriday, May 13, 2011
  38. 38. Progress? •Declarative •Code runs on Cfengine client •Implicit •Imperative dependencies •Code runs on Chef client •Implicit dependencies •Declarative Puppet •Only data on clients, no code •Explicit dependenciesFriday, May 13, 2011
  39. 39. How do we talk about this? Market this?Friday, May 13, 2011
  40. 40. “Puppet is Model-Driven”Friday, May 13, 2011
  41. 41. Procedural Code Catalog Compile Apply ReportFriday, May 13, 2011
  42. 42. Model-driven Compile Apply Code Catalog Report It’s the artifacts that matterFriday, May 13, 2011
  43. 43. Policy CMDB Remedy Complian Compile Apply Code Catalog Report LDAP CMDB NagiosFriday, May 13, 2011
  44. 44. No one knows what ‘model driven’ meansFriday, May 13, 2011
  45. 45. “Puppet is hackable” Props to Nick FagerlandFriday, May 13, 2011
  46. 46. But it wasn’t really trueFriday, May 13, 2011
  47. 47. You could *program* it, but not hack it like a sysadmin wouldFriday, May 13, 2011
  48. 48. Really: Encapsulated, modular and data- drivenFriday, May 13, 2011
  49. 49. Unfortunately the applications hard-code our logic • Download plugins • Upload Facts • Download Catalog • Apply Catalog • Send ReportFriday, May 13, 2011
  50. 50. Other application world- views exist • Only update catalogs during maintenance windows • Push catalog updates • Send fact updates 10x as often as puppet runs • Combine multiple catalogs on the client side and run them together • Compile catalogs for hundreds of hosts and compare them • Manually view catalog diffs before deployingFriday, May 13, 2011
  51. 51. It doesn’t make sense to extend the core apps with this logicFriday, May 13, 2011
  52. 52. And doing it yourself is too hard with current toolsFriday, May 13, 2011
  53. 53. So we should expose everything and let you build what you wantFriday, May 13, 2011
  54. 54. Functions • Compiler • Transactions • Network • Indirector • Parser • RALFriday, May 13, 2011
  55. 55. Data • Facts • Catalog • Reports • Resource Types (AST and RAL) • Nodes • CertificatesFriday, May 13, 2011
  56. 56. InterfacesFriday, May 13, 2011
  57. 57. Puppet FacesFriday, May 13, 2011
  58. 58. A framework for exposing, combining, and extending core Puppet functions and data typesFriday, May 13, 2011
  59. 59. A collection of Faces that does this in Ruby and on the CLIFriday, May 13, 2011
  60. 60. Good: It directly exposes Puppet internals in a hackable wayFriday, May 13, 2011
  61. 61. Bad: It directly exposes Puppet internalsFriday, May 13, 2011
  62. 62. Examples • puppet catalog find <host> • puppet facts upload • puppet certificate sign <host> • puppet file find <sum>Friday, May 13, 2011
  63. 63. Easily extensible • puppet config info <name> • puppet catalog select <host> <type> • puppet file diff <sum> <sum> • puppet node clean <name> • puppet catalog diff <host> <host>Friday, May 13, 2011
  64. 64. What we’re working onFriday, May 13, 2011
  65. 65. Team and CommunityFriday, May 13, 2011
  66. 66. Flattening the on-rampFriday, May 13, 2011
  67. 67. Ad-hoc ToolingFriday, May 13, 2011
  68. 68. Cross-Node ApplicationsFriday, May 13, 2011
  69. 69. DatabasesFriday, May 13, 2011
  70. 70. Change LifecycleFriday, May 13, 2011
  71. 71. Questions?Friday, May 13, 2011
  1. A particular slide catching your eye?

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

×