Puppet camp europe 2011   hackability
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Puppet camp europe 2011 hackability

on

  • 3,676 views

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

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

Statistics

Views

Total Views
3,676
Views on SlideShare
3,663
Embed Views
13

Actions

Likes
1
Downloads
29
Comments
0

4 Embeds 13

http://lanyrd.com 5
https://puppetlabs.com 4
https://twitter.com 2
http://translate.googleusercontent.com 2

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

Puppet camp europe 2011 hackability Presentation Transcript

  • 1. Wireless • Any “BvB Hotspot...” network • New browser page • User: bvbhotspot Password: berlag33Friday, May 13, 2011
  • 2. puppet labsFriday, May 13, 2011
  • 3. Making Puppet More Hackable Luke Kanies luke@puppetlabs.comFriday, May 13, 2011
  • 4. Question AuthorityFriday, May 13, 2011
  • 5. Puppet LabsFriday, May 13, 2011
  • 6. Puppet Labs • 40 employeesFriday, May 13, 2011
  • 7. Puppet Labs • 40 employees • Fantastic investors and board membersFriday, May 13, 2011
  • 8. Puppet Labs • 40 employees • Fantastic investors and board members • I’m still CEOFriday, May 13, 2011
  • 9. Puppet 2.7Friday, May 13, 2011
  • 10. Apache LicenseFriday, May 13, 2011
  • 11. FacesFriday, May 13, 2011
  • 12. Static CompilerFriday, May 13, 2011
  • 13. Certificate APIFriday, May 13, 2011
  • 14. Deterministic Ordering For otherwise unrelated resourcesFriday, May 13, 2011
  • 15. Enhanced Graph ManagementFriday, May 13, 2011
  • 16. Puppet EnterpriseFriday, May 13, 2011
  • 17. Always based on full releasesFriday, May 13, 2011
  • 18. Looking for PartnersFriday, May 13, 2011
  • 19. PE 1.1 - 5/11 • MCollective • RHEL 4/5/6, SLES, SolarisFriday, May 13, 2011
  • 20. PE 1.2 - 6/11 • Discovery • ProvisioningFriday, May 13, 2011
  • 21. Q3 • Full Windows support • 2.7 base • Change Lifecycle ManagementFriday, May 13, 2011
  • 22. Faces, Hackability, and MarketingFriday, May 13, 2011
  • 23. Puppet is different, but not in straightforward waysFriday, May 13, 2011
  • 24. AwkwardFriday, May 13, 2011
  • 25. I wanted to tell The Story of WhyFriday, May 13, 2011
  • 26. A bit of history: CfengineFriday, May 13, 2011
  • 27. I had no control • Stuckwith whatever application logic it shipped with • Core components were mandatoryFriday, May 13, 2011
  • 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. Not ExtensibleFriday, May 13, 2011
  • 30. “Puppet is Different”Friday, May 13, 2011
  • 31. Easily extensible, everywhere A quick count shows 10 kinds of extensibilityFriday, May 13, 2011
  • 32. The Puppet world • Facts • Resources • Catalogs • Edges • EventsFriday, May 13, 2011
  • 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. Data > Code • Caching • Validation • Implementation Independence • IntegrationFriday, May 13, 2011
  • 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. An Aside: The CompetitionFriday, May 13, 2011
  • 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. 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. How do we talk about this? Market this?Friday, May 13, 2011
  • 40. “Puppet is Model-Driven”Friday, May 13, 2011
  • 41. Procedural Code Catalog Compile Apply ReportFriday, May 13, 2011
  • 42. Model-driven Compile Apply Code Catalog Report It’s the artifacts that matterFriday, May 13, 2011
  • 43. Policy CMDB Remedy Complian Compile Apply Code Catalog Report LDAP CMDB NagiosFriday, May 13, 2011
  • 44. No one knows what ‘model driven’ meansFriday, May 13, 2011
  • 45. “Puppet is hackable” Props to Nick FagerlandFriday, May 13, 2011
  • 46. But it wasn’t really trueFriday, May 13, 2011
  • 47. You could *program* it, but not hack it like a sysadmin wouldFriday, May 13, 2011
  • 48. Really: Encapsulated, modular and data- drivenFriday, May 13, 2011
  • 49. Unfortunately the applications hard-code our logic • Download plugins • Upload Facts • Download Catalog • Apply Catalog • Send ReportFriday, May 13, 2011
  • 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. It doesn’t make sense to extend the core apps with this logicFriday, May 13, 2011
  • 52. And doing it yourself is too hard with current toolsFriday, May 13, 2011
  • 53. So we should expose everything and let you build what you wantFriday, May 13, 2011
  • 54. Functions • Compiler • Transactions • Network • Indirector • Parser • RALFriday, May 13, 2011
  • 55. Data • Facts • Catalog • Reports • Resource Types (AST and RAL) • Nodes • CertificatesFriday, May 13, 2011
  • 56. InterfacesFriday, May 13, 2011
  • 57. Puppet FacesFriday, May 13, 2011
  • 58. A framework for exposing, combining, and extending core Puppet functions and data typesFriday, May 13, 2011
  • 59. A collection of Faces that does this in Ruby and on the CLIFriday, May 13, 2011
  • 60. Good: It directly exposes Puppet internals in a hackable wayFriday, May 13, 2011
  • 61. Bad: It directly exposes Puppet internalsFriday, May 13, 2011
  • 62. Examples • puppet catalog find <host> • puppet facts upload • puppet certificate sign <host> • puppet file find <sum>Friday, May 13, 2011
  • 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. What we’re working onFriday, May 13, 2011
  • 65. Team and CommunityFriday, May 13, 2011
  • 66. Flattening the on-rampFriday, May 13, 2011
  • 67. Ad-hoc ToolingFriday, May 13, 2011
  • 68. Cross-Node ApplicationsFriday, May 13, 2011
  • 69. DatabasesFriday, May 13, 2011
  • 70. Change LifecycleFriday, May 13, 2011
  • 71. Questions?Friday, May 13, 2011