DANIEL PITTMAN                      daniel@puppetlabs.comMonday, 21 May 12                             1
PUPPET PLATFORM                      Who, What, Why, and HowMonday, 21 May 12                               2
WHAT IS THE PLATFORM TEAM?Monday, 21 May 12                      3
I AM PLATFORM TEAM LEAD   • Find           the right people   • Help           them be awesome   • Stay           out of t...
WHAT DO WE DO?Monday, 21 May 12                    5
MAKE PUPPET MORE AWESOME        FOR THE COMMUNITY    • Build         great things    • Triage         and fix bugs    • Mer...
WORK WITH THE COMMUNITYMonday, 21 May 12               7
ASIDE: WORKING IN THE COMMUNITY =>                 WORKING FOR PUPPET LABS   • Developers   • Professional         Service...
REDUCE FRICTION FOR NEW CONTRIBUTORSMonday, 21 May 12                           9
BE TRANSPARENT   • Tell           you what is happening   • Make            decisions in public   • Work             toget...
WHAT WE HAVE ACCOMPLISHEDMonday, 21 May 12                11
DATA/MODEL SEPARATION   • Lookup    of class parameters       separate from the manifest   • You            can assume it ...
RUBY 1.9.3       ...is finally a first class citizen.              This is part of 3.0.0                    Fully supported....
PUPPET MODULE TOOL   • Project          Geordi La Forge   • PMT            ships with 3.0.0   • Making           it more a...
VARIABLE SCOPE FIXED   • No             more dynamic scope   • Killed          deprecation warnings!   • Local, then      ...
GIVE BACK MEMORY   • Daemon    mode used to       grow and grow...   • Now, we        return memory to       the OS   • Pa...
ENC VS ENVIRONMENTS   • You    could set the client       environment from the ENC   • The   client would ignore you      ...
PLUGIN SYNC   • This           worked unevenly   • Failures         on first run   • Oddities   about what can by       syn...
DSL POLISH   • Add “unless” to           the language   • Allow  keywords as resource       parameters and properties   • ...
HIDDEN CHANGES   • Lots           of bugs fixed   • Code            cleanup   • Performance            improvements   • Cor...
FINALLY SHIPPING!              • Puppet    3.0.0              • Facter   2.0.0              • Hiera    1.0.0Monday, 21 May...
COMMITTING TO SEMVER   • Semantic Versioning        FTW   • We    are moving all our       projects over   • SemVer       ...
IT’S VERSION-CEPTION!Monday, 21 May 12                           23
MAJOR                    VERSION                    Breaking ChangesMonday, 21 May 12                      24
MINOR                    VERSION          Compatible new featuresMonday, 21 May 12                   25
PATCH                    VERSION           Bug fix with no other          behavioural or functional                  change...
WHICH MEANS?   • You    have version numbers       that match the way we write       and ship code   • You    can be confid...
SHIPPING CODE FASTERMonday, 21 May 12                          28
OS PACKAGES FOR RELEASE CANDIDATESMonday, 21 May 12                        29
MONTH DEVELOPMENT RELEASES   • Waldorf    is the next major       release after Telly (3.0.0)   • We    will ship a tested...
NOT DONE YET...Monday, 21 May 12                     31
OLD MISTAKES STILL HAUNT US   • Parameterized classes don’t       work everywhere   • undef          vs nil   • classes   ...
SLOW MOVING ECOSYSTEM   • Dashboard      has not gotten a       lot of love recently   • Puppet   Labs modules need       ...
BROKEN (OR DELAYED)                         PROMISES   • import         isn’t deprecated   • The   static compiler isn’t t...
THE FUTUREMonday, 21 May 12                35
THE ECOSYSTEM   • Shipping   structured and       typed facts without the       ecosystem is a no-go   • On   release, new...
THE NEXT CHALLENGE                      Waldorf, kicking ass and taking namesMonday, 21 May 12                            ...
EXPERIMENT ONE                    We are going to fix some high-voted ticketsMonday, 21 May 12                             ...
VOTES SHAPE THE ROADMAP   • We             said votes matter before   • It     wasn’t really true   •I   don’t expect you ...
VOTES SHAPE THE ROADMAP   • We     want community input       into the roadmap   • This           seems a solid choice   •...
SCHEDULE TRANSPARENCYMonday, 21 May 12                 41
REDMINE “ACCEPTED” TICKETS                    This is the scrum “unsorted product backlog”Monday, 21 May 12               ...
REDMINE “3.X” TARGET VERSION                    This is “we might fix it before 4.0.0”Monday, 21 May 12                    ...
SAME THING!Monday, 21 May 12                 44
GONNA FIX THAT UP   • Target  open tickets at the       next numeric version   • Means “trying    to fix for that       rel...
OTHER EXPERIMENTS                       You bring ‘em, We try ‘emMonday, 21 May 12                                  46
TECH FOR WALDORF                     This is all speculative, no promises.Monday, 21 May 12                               ...
SYSTEM MODULE PATH   • Modules            can move fast   • Batteries-included         is great   • Combine            the...
STATIC COMPILER   • Missed Telly, but        only just   • Content          reference, not URI   • Single         file cata...
STRUCTURED FACTS   • Really, structured           and typed   • JSON     is the template for       supported types and    ...
BETTER GRAPH PROCESSING   • Improve   graph handling in       the Puppet Agent   • Fix        the “anchor” pattern   • Imp...
BETTER ENVIRONMENTS   • Different    versions of a type       in different environments   • Turns   out that is pretty har...
CLEANER, DOCUMENTED CODE   • Easier   to use Puppet as a       library or extend it   • Better API         definitions   • ...
MY REAL GOALMonday, 21 May 12                  54
BUILD A 10× TEAM            ...and let them work with the community to be awesome!Monday, 21 May 12                       ...
THANK YOU ALL              Please tweet your thanks to @MediaTemple for hosting                             #PuppetCampLA ...
Upcoming SlideShare
Loading in...5
×

Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

1,118

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
1,118
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

  1. 1. DANIEL PITTMAN daniel@puppetlabs.comMonday, 21 May 12 1
  2. 2. PUPPET PLATFORM Who, What, Why, and HowMonday, 21 May 12 2
  3. 3. WHAT IS THE PLATFORM TEAM?Monday, 21 May 12 3
  4. 4. I AM PLATFORM TEAM LEAD • Find the right people • Help them be awesome • Stay out of their wayMonday, 21 May 12 4
  5. 5. WHAT DO WE DO?Monday, 21 May 12 5
  6. 6. MAKE PUPPET MORE AWESOME FOR THE COMMUNITY • Build great things • Triage and fix bugs • Merge contributed codeMonday, 21 May 12 6
  7. 7. WORK WITH THE COMMUNITYMonday, 21 May 12 7
  8. 8. ASIDE: WORKING IN THE COMMUNITY => WORKING FOR PUPPET LABS • Developers • Professional Services • Sales Engineers • ...and other rolesMonday, 21 May 12 8
  9. 9. REDUCE FRICTION FOR NEW CONTRIBUTORSMonday, 21 May 12 9
  10. 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. 11. WHAT WE HAVE ACCOMPLISHEDMonday, 21 May 12 11
  12. 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. 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. 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. 15. VARIABLE SCOPE FIXED • No more dynamic scope • Killed deprecation warnings! • Local, then inherited... • ...then node, then global.Monday, 21 May 12 15
  16. 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. 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. 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. 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. 20. HIDDEN CHANGES • Lots of bugs fixed • Code cleanup • Performance improvements • Correctness fixes • None of them visibleMonday, 21 May 12 20
  21. 21. FINALLY SHIPPING! • Puppet 3.0.0 • Facter 2.0.0 • Hiera 1.0.0Monday, 21 May 12 21
  22. 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. 23. IT’S VERSION-CEPTION!Monday, 21 May 12 23
  24. 24. MAJOR VERSION Breaking ChangesMonday, 21 May 12 24
  25. 25. MINOR VERSION Compatible new featuresMonday, 21 May 12 25
  26. 26. PATCH VERSION Bug fix with no other behavioural or functional changesMonday, 21 May 12 26
  27. 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. 28. SHIPPING CODE FASTERMonday, 21 May 12 28
  29. 29. OS PACKAGES FOR RELEASE CANDIDATESMonday, 21 May 12 29
  30. 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. 31. NOT DONE YET...Monday, 21 May 12 31
  32. 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. 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. 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. 35. THE FUTUREMonday, 21 May 12 35
  36. 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. 37. THE NEXT CHALLENGE Waldorf, kicking ass and taking namesMonday, 21 May 12 37
  38. 38. EXPERIMENT ONE We are going to fix some high-voted ticketsMonday, 21 May 12 38
  39. 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. 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. 41. SCHEDULE TRANSPARENCYMonday, 21 May 12 41
  42. 42. REDMINE “ACCEPTED” TICKETS This is the scrum “unsorted product backlog”Monday, 21 May 12 42
  43. 43. REDMINE “3.X” TARGET VERSION This is “we might fix it before 4.0.0”Monday, 21 May 12 43
  44. 44. SAME THING!Monday, 21 May 12 44
  45. 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. 46. OTHER EXPERIMENTS You bring ‘em, We try ‘emMonday, 21 May 12 46
  47. 47. TECH FOR WALDORF This is all speculative, no promises.Monday, 21 May 12 47
  48. 48. SYSTEM MODULE PATH • Modules can move fast • Batteries-included is great • Combine them! • Best of both worldsMonday, 21 May 12 48
  49. 49. STATIC COMPILER • Missed Telly, but only just • Content reference, not URI • Single file catalog? • Easier push model?Monday, 21 May 12 49
  50. 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. 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. 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. 53. CLEANER, DOCUMENTED CODE • Easier to use Puppet as a library or extend it • Better API definitions • Richer integrationsMonday, 21 May 12 53
  54. 54. MY REAL GOALMonday, 21 May 12 54
  55. 55. BUILD A 10× TEAM ...and let them work with the community to be awesome!Monday, 21 May 12 55
  56. 56. THANK YOU ALL Please tweet your thanks to @MediaTemple for hosting #PuppetCampLA 2012Monday, 21 May 12 56
  1. A particular slide catching your eye?

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

×