Your SlideShare is downloading. ×
Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

994
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
994
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DANIEL PITTMAN daniel@puppetlabs.comMonday, 21 May 12 1
  • 2. PUPPET PLATFORM Who, What, Why, and HowMonday, 21 May 12 2
  • 3. WHAT IS THE PLATFORM TEAM?Monday, 21 May 12 3
  • 4. I AM PLATFORM TEAM LEAD • Find the right people • Help them be awesome • Stay out of their wayMonday, 21 May 12 4
  • 5. WHAT DO WE DO?Monday, 21 May 12 5
  • 6. MAKE PUPPET MORE AWESOME FOR THE COMMUNITY • Build great things • Triage and fix bugs • Merge contributed codeMonday, 21 May 12 6
  • 7. WORK WITH THE COMMUNITYMonday, 21 May 12 7
  • 8. ASIDE: WORKING IN THE COMMUNITY => WORKING FOR PUPPET LABS • Developers • Professional Services • Sales Engineers • ...and other rolesMonday, 21 May 12 8
  • 9. REDUCE FRICTION FOR NEW CONTRIBUTORSMonday, 21 May 12 9
  • 10. BE TRANSPARENT • Tell you what is happening • Make decisions in public • Work together on roadmap • Work together on design • Open by defaultMonday, 21 May 12 10
  • 11. WHAT WE HAVE ACCOMPLISHEDMonday, 21 May 12 11
  • 12. DATA/MODEL SEPARATION • Lookup of class parameters separate from the manifest • You can assume it is there! • No manifest changes needed • Uses Hiera as the back-endMonday, 21 May 12 12
  • 13. RUBY 1.9.3 ...is finally a first class citizen. This is part of 3.0.0 Fully supported. All bugs fixed. (Probably)Monday, 21 May 12 13
  • 14. PUPPET MODULE TOOL • Project Geordi La Forge • PMT ships with 3.0.0 • Making it more awesome! • Buffing up publishing • Enhance the forgeMonday, 21 May 12 14
  • 15. VARIABLE SCOPE FIXED • No more dynamic scope • Killed deprecation warnings! • Local, then inherited... • ...then node, then global.Monday, 21 May 12 15
  • 16. GIVE BACK MEMORY • Daemon mode used to grow and grow... • Now, we return memory to the OS • Part of our performance improvement strategyMonday, 21 May 12 16
  • 17. ENC VS ENVIRONMENTS • You could set the client environment from the ENC • The client would ignore you (sometimes) • Now it doesn’t • Bug fix, not feature • Still great!Monday, 21 May 12 17
  • 18. PLUGIN SYNC • This worked unevenly • Failures on first run • Oddities about what can by synced and used successfully • Now, uniform and standardMonday, 21 May 12 18
  • 19. DSL POLISH • Add “unless” to the language • Allow keywords as resource parameters and properties • Fixed some parser bugs (like ‘-’ in variable names) • More of this coming...Monday, 21 May 12 19
  • 20. HIDDEN CHANGES • Lots of bugs fixed • Code cleanup • Performance improvements • Correctness fixes • None of them visibleMonday, 21 May 12 20
  • 21. FINALLY SHIPPING! • Puppet 3.0.0 • Facter 2.0.0 • Hiera 1.0.0Monday, 21 May 12 21
  • 22. COMMITTING TO SEMVER • Semantic Versioning FTW • We are moving all our projects over • SemVer 2.0.0-rc.1 compliantMonday, 21 May 12 22
  • 23. IT’S VERSION-CEPTION!Monday, 21 May 12 23
  • 24. MAJOR VERSION Breaking ChangesMonday, 21 May 12 24
  • 25. MINOR VERSION Compatible new featuresMonday, 21 May 12 25
  • 26. PATCH VERSION Bug fix with no other behavioural or functional changesMonday, 21 May 12 26
  • 27. WHICH MEANS? • You have version numbers that match the way we write and ship code • You can be confident about the scope of changes in any releaseMonday, 21 May 12 27
  • 28. SHIPPING CODE FASTERMonday, 21 May 12 28
  • 29. OS PACKAGES FOR RELEASE CANDIDATESMonday, 21 May 12 29
  • 30. MONTH DEVELOPMENT RELEASES • Waldorf is the next major release after Telly (3.0.0) • We will ship a tested version every month as a preview • This way you don’t have changes a year old before they ship to the community • Plus OS packages!Monday, 21 May 12 30
  • 31. NOT DONE YET...Monday, 21 May 12 31
  • 32. OLD MISTAKES STILL HAUNT US • Parameterized classes don’t work everywhere • undef vs nil • classes with ‘-’ in the nameMonday, 21 May 12 32
  • 33. SLOW MOVING ECOSYSTEM • Dashboard has not gotten a lot of love recently • Puppet Labs modules need more attention • ...but we are starting to invest in them.Monday, 21 May 12 33
  • 34. BROKEN (OR DELAYED) PROMISES • import isn’t deprecated • The static compiler isn’t the default • Facter doesn’t have typed or structured factsMonday, 21 May 12 34
  • 35. THE FUTUREMonday, 21 May 12 35
  • 36. THE ECOSYSTEM • Shipping structured and typed facts without the ecosystem is a no-go • On release, new features should work everywhereMonday, 21 May 12 36
  • 37. THE NEXT CHALLENGE Waldorf, kicking ass and taking namesMonday, 21 May 12 37
  • 38. EXPERIMENT ONE We are going to fix some high-voted ticketsMonday, 21 May 12 38
  • 39. VOTES SHAPE THE ROADMAP • We said votes matter before • It wasn’t really true •I don’t expect you to believe me this time... • ...so we are gonna fix tickets, then ask you to believe usMonday, 21 May 12 39
  • 40. VOTES SHAPE THE ROADMAP • We want community input into the roadmap • This seems a solid choice • Success is that votes get used by the community • ...and that we use them to shape the roadmap!Monday, 21 May 12 40
  • 41. SCHEDULE TRANSPARENCYMonday, 21 May 12 41
  • 42. REDMINE “ACCEPTED” TICKETS This is the scrum “unsorted product backlog”Monday, 21 May 12 42
  • 43. REDMINE “3.X” TARGET VERSION This is “we might fix it before 4.0.0”Monday, 21 May 12 43
  • 44. SAME THING!Monday, 21 May 12 44
  • 45. GONNA FIX THAT UP • Target open tickets at the next numeric version • Means “trying to fix for that release” • Stillshipping time-based product, so things will missMonday, 21 May 12 45
  • 46. OTHER EXPERIMENTS You bring ‘em, We try ‘emMonday, 21 May 12 46
  • 47. TECH FOR WALDORF This is all speculative, no promises.Monday, 21 May 12 47
  • 48. SYSTEM MODULE PATH • Modules can move fast • Batteries-included is great • Combine them! • Best of both worldsMonday, 21 May 12 48
  • 49. STATIC COMPILER • Missed Telly, but only just • Content reference, not URI • Single file catalog? • Easier push model?Monday, 21 May 12 49
  • 50. STRUCTURED FACTS • Really, structured and typed • JSON is the template for supported types and structures • Full ecosystem support • Third party facts only, initiallyMonday, 21 May 12 50
  • 51. BETTER GRAPH PROCESSING • Improve graph handling in the Puppet Agent • Fix the “anchor” pattern • Improves from O(N^2) worst case to O(N) • Allows future improvements to the catalog and graphMonday, 21 May 12 51
  • 52. BETTER ENVIRONMENTS • Different versions of a type in different environments • Turns out that is pretty hard (thanks, Ruby) • We will make it easy • Fix performance cost tooMonday, 21 May 12 52
  • 53. CLEANER, DOCUMENTED CODE • Easier to use Puppet as a library or extend it • Better API definitions • Richer integrationsMonday, 21 May 12 53
  • 54. MY REAL GOALMonday, 21 May 12 54
  • 55. BUILD A 10× TEAM ...and let them work with the community to be awesome!Monday, 21 May 12 55
  • 56. THANK YOU ALL Please tweet your thanks to @MediaTemple for hosting #PuppetCampLA 2012Monday, 21 May 12 56