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.
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. RUBY 1.9.3
...is finally a first class citizen.
This is part of 3.0.0
Fully supported.
All bugs fixed.
(Probably)
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. VARIABLE SCOPE FIXED
• No more dynamic scope
• Killed deprecation warnings!
• Local, then inherited...
• ...then node, then global.
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. 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. PLUGIN SYNC
• This worked unevenly
• Failures on first run
• Oddities about what can by
synced and used successfully
• Now, uniform and standard
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. HIDDEN CHANGES
• Lots of bugs fixed
• Code cleanup
• Performance improvements
• Correctness fixes
• None of them visible
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!
24. OLD MISTAKES STILL HAUNT US
• Parameterized classes don’t
work everywhere
• undef vs nil
• classes with ‘-’ in the name
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. BROKEN (OR DELAYED)
PROMISES
• import isn’t deprecated
• The static compiler isn’t the
default
• Facter doesn’t have typed
or structured facts
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. 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!
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
39. STATIC COMPILER
• Missed Telly, but only just
• Content reference, not URI
• Single file catalog?
• Easier push model?
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. 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. 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. CLEANER, DOCUMENTED CODE
• Easier to use Puppet as a
library or extend it
• Better API definitions
• Richer integrations