JAMES TURNBULL  james@puppetlabs.com
BE TRANSPARENT•   Tell you what is happening•   Make decisions in public•    Work together on    roadmap•   Work together ...
WHAT WE HAVE DONE    RECENTLY
DATA/MODEL SEPARATION•    Lookup of class parameters    separate from the manifest•    You can assume it is there!•    No ...
RUBY 1.9.3...is finally a first class citizen.       This is part of 3.0.0       Fully supported.        All bugs fixed.  ...
PUPPET MODULE TOOL•   Project Geordi La Forge•   PMT ships with 3.0.0•   Making it more awesome!•   Buffing up publishing•...
VARIABLE SCOPE FIXED•   No more dynamic scope•   Killed deprecation warnings!•   Local, then inherited...•   ...then node,...
GIVE BACK MEMORY•    Daemon mode used to    grow and grow...•    Now, we return memory    to the OS•    Part of our perfor...
ENC VS ENVIRONMENTS•    You could set the client    environment from the ENC•    The client would ignore    you (sometimes...
PLUGIN SYNC•    This worked unevenly•    Failures on first run•    Oddities about what can by    synced and used successfu...
DSL POLISH•     Add “unless” to the    language•    Allow keywords as    resource parameters and    properties•    Fixed s...
HIDDEN CHANGES•   Lots of bugs fixed•   Code cleanup•   Performance improvements•   Correctness fixes•   None of them visi...
FINALLY SHIPPING!•   Puppet 3.0.0•   Facter 2.0.0•   Hiera 1.0.0
COMMITTING TO SEMVER•    Semantic Versioning FTW•    We are moving all our    projects over•    SemVer 2.0.0-rc.1    compl...
IT’S VERSION-CEPTION!
MAJORVERSIONBreaking Changes
MINOR  VERSIONCompatible new features
PATCH  VERSION Bug fix with no otherbehavioural or functional        changes
WHICH MEANS?•    You have version numbers    that match the way we write    and ship code•    You can be confident about  ...
SHIPPING CODE FASTER
OS PACKAGES FOR RELEASE CANDIDATES
MONTH DEVELOPMENT RELEASES•    Waldorf is the next major    release after Telly (3.0.0)•    We will ship a tested    versi...
NOT DONE YET...
OLD MISTAKES STILL HAUNT US•    Parameterized classes don’t    work everywhere•    undef vs nil•    classes with ‘-’ in th...
SLOW MOVING ECOSYSTEM•    Dashboard has not gotten a    lot of love recently•    Puppet Labs modules need    more attentio...
BROKEN (OR DELAYED)              PROMISES•    import isn’t deprecated•    The static compiler isn’t the    default•    Fac...
THE FUTURE
THE ECOSYSTEM•    Shipping structured and    typed facts without the    ecosystem is a no-go•    On release, new features ...
THE NEXT CHALLENGE  Waldorf, kicking ass and taking names
EXPERIMENT ONEWe are going to fix some high-voted tickets
VOTES SHAPE THE ROADMAP•    We said votes matter    before•    It wasn’t really true•    I don’t expect you to    believe ...
VOTES SHAPE THE ROADMAP•    We want community input    into the roadmap•    This seems a solid choice•    Success is that ...
SCHEDULE TRANSPARENCY
REDMINE “ACCEPTED” TICKETS  This is the scrum “unsorted product backlog”
REDMINE “3.X” TARGET VERSION     This is “we might fix it before 4.0.0”
GONNA FIX THAT UP•    Target open tickets at the    next numeric version•    Means “trying to fix for that    release”•   ...
OTHER EXPERIMENTS   You bring ‘em, We try ‘em
TECH FOR WALDORF This is all speculative, no promises.
STATIC COMPILER•   Missed Telly, but only just•   Content reference, not URI•   Single file catalog?•   Easier push model?
STRUCTURED FACTS•    Really, structured and typed•    JSON is the template for    supported types and    structures•    Fu...
BETTER GRAPH PROCESSING•    Improve graph handling in    the Puppet Agent•    Fix the “anchor” pattern•    Improves perfor...
BETTER ENVIRONMENTS•    Different versions of a type    in different environments•    Turns out that is pretty    hard (th...
CLEANER, DOCUMENTED CODE•     Easier to use Puppet as a    library or extend it•    Better API definitions•    Richer inte...
THANK YOU ALL
Upcoming SlideShare
Loading in …5
×

PuppetCamp SEA 1 - The State of Puppet

623 views

Published on

James Turnbull, VP of Tech Operations at Puppetlabs, started off the day with a very interesting and informative talk about the past, current and future of Puppet. He showed they have a strong link to their community and plan to keep it that way. He explained that they grew from very small to 70+ people over the last year, and that brings some issues with it. They are very dedicated to fixing those issues though, and hope to improve things moving towards the future.

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
623
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PuppetCamp SEA 1 - The State of Puppet

  1. 1. JAMES TURNBULL james@puppetlabs.com
  2. 2. BE TRANSPARENT• Tell you what is happening• Make decisions in public• Work together on roadmap• Work together on design• Open by default
  3. 3. WHAT WE HAVE DONE RECENTLY
  4. 4. 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-end
  5. 5. RUBY 1.9.3...is finally a first class citizen. This is part of 3.0.0 Fully supported. All bugs fixed. (Probably)
  6. 6. PUPPET MODULE TOOL• Project Geordi La Forge• PMT ships with 3.0.0• Making it more awesome!• Buffing up publishing• Enhance the forge
  7. 7. VARIABLE SCOPE FIXED• No more dynamic scope• Killed deprecation warnings!• Local, then inherited...• ...then node, then global.
  8. 8. GIVE BACK MEMORY• Daemon mode used to grow and grow...• Now, we return memory to the OS• Part of our performance improvement strategy
  9. 9. 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!
  10. 10. PLUGIN SYNC• This worked unevenly• Failures on first run• Oddities about what can by synced and used successfully• Now, uniform and standard
  11. 11. 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...
  12. 12. HIDDEN CHANGES• Lots of bugs fixed• Code cleanup• Performance improvements• Correctness fixes• None of them visible
  13. 13. FINALLY SHIPPING!• Puppet 3.0.0• Facter 2.0.0• Hiera 1.0.0
  14. 14. COMMITTING TO SEMVER• Semantic Versioning FTW• We are moving all our projects over• SemVer 2.0.0-rc.1 compliant
  15. 15. IT’S VERSION-CEPTION!
  16. 16. MAJORVERSIONBreaking Changes
  17. 17. MINOR VERSIONCompatible new features
  18. 18. PATCH VERSION Bug fix with no otherbehavioural or functional changes
  19. 19. 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 release
  20. 20. SHIPPING CODE FASTER
  21. 21. OS PACKAGES FOR RELEASE CANDIDATES
  22. 22. 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!
  23. 23. NOT DONE YET...
  24. 24. OLD MISTAKES STILL HAUNT US• Parameterized classes don’t work everywhere• undef vs nil• classes with ‘-’ in the name
  25. 25. 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.
  26. 26. BROKEN (OR DELAYED) PROMISES• import isn’t deprecated• The static compiler isn’t the default• Facter doesn’t have typed or structured facts
  27. 27. THE FUTURE
  28. 28. THE ECOSYSTEM• Shipping structured and typed facts without the ecosystem is a no-go• On release, new features should work everywhere
  29. 29. THE NEXT CHALLENGE Waldorf, kicking ass and taking names
  30. 30. EXPERIMENT ONEWe are going to fix some high-voted tickets
  31. 31. VOTES SHAPE THE ROADMAP• We said votes matter before• It wasn’t really true• I don’t expect you to believe us this time...• ...so we are gonna fix tickets, then ask you to believe us
  32. 32. 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!
  33. 33. SCHEDULE TRANSPARENCY
  34. 34. REDMINE “ACCEPTED” TICKETS This is the scrum “unsorted product backlog”
  35. 35. REDMINE “3.X” TARGET VERSION This is “we might fix it before 4.0.0”
  36. 36. GONNA FIX THAT UP• Target open tickets at the next numeric version• Means “trying to fix for that release”• Still shipping time-based product, so things will miss
  37. 37. OTHER EXPERIMENTS You bring ‘em, We try ‘em
  38. 38. TECH FOR WALDORF This is all speculative, no promises.
  39. 39. STATIC COMPILER• Missed Telly, but only just• Content reference, not URI• Single file catalog?• Easier push model?
  40. 40. STRUCTURED FACTS• Really, structured and typed• JSON is the template for supported types and structures• Full ecosystem support• Third party facts only, initially
  41. 41. BETTER GRAPH PROCESSING• Improve graph handling in the Puppet Agent• Fix the “anchor” pattern• Improves performance and logic• Allows future improvements to the catalog and graph
  42. 42. 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 too
  43. 43. CLEANER, DOCUMENTED CODE• Easier to use Puppet as a library or extend it• Better API definitions• Richer integrations
  44. 44. THANK YOU ALL

×