JAMES TURNBULL
  james@puppetlabs.com
BE TRANSPARENT

•   Tell you what is happening

•   Make decisions in public

•    Work together on
    roadmap

•   Work together on design

•   Open by default
WHAT WE HAVE DONE
    RECENTLY
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
RUBY 1.9.3
...is finally a first class citizen.
       This is part of 3.0.0

       Fully supported.
        All bugs fixed.
          (Probably)
PUPPET MODULE TOOL

•   Project Geordi La Forge

•   PMT ships with 3.0.0

•   Making it more awesome!

•   Buffing up publishing

•   Enhance the forge
VARIABLE SCOPE FIXED


•   No more dynamic scope

•   Killed deprecation warnings!

•   Local, then inherited...

•   ...then node, then global.
GIVE BACK MEMORY

•    Daemon mode used to
    grow and grow...

•    Now, we return memory
    to the OS

•    Part of our performance
    improvement strategy
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!
PLUGIN SYNC

•    This worked unevenly

•    Failures on first run

•    Oddities about what can by
    synced and used successfully

•    Now, uniform and standard
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...
HIDDEN CHANGES

•   Lots of bugs fixed

•   Code cleanup

•   Performance improvements

•   Correctness fixes

•   None of them visible
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
    compliant
IT’S VERSION-CEPTION!
MAJOR
VERSION
Breaking Changes
MINOR
  VERSION
Compatible new features
PATCH
  VERSION
 Bug fix with no other
behavioural or functional
        changes
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
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
    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!
NOT DONE YET...
OLD MISTAKES STILL HAUNT US


•    Parameterized classes don’t
    work everywhere

•    undef vs nil

•    classes with ‘-’ in the name
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.
BROKEN (OR DELAYED)
              PROMISES

•    import isn’t deprecated

•    The static compiler isn’t the
    default

•    Facter doesn’t have typed
    or structured facts
THE FUTURE
THE ECOSYSTEM


•    Shipping structured and
    typed facts without the
    ecosystem is a no-go

•    On release, new features
    should work everywhere
THE NEXT CHALLENGE
  Waldorf, kicking ass and taking names
EXPERIMENT ONE
We 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 us this time...

•     ...so we are gonna fix
    tickets, then ask you to
    believe us
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!
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”

•    Still shipping time-based
    product, so things will miss
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

•    Full ecosystem support

•    Third party facts only,
    initially
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
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
CLEANER, DOCUMENTED CODE


•     Easier to use Puppet as a
    library or extend it

•    Better API definitions

•    Richer integrations
THANK YOU ALL

More Related Content

PPT
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
PDF
The State of Puppet - Dan Bode
PDF
Puppet and Telefonica R&D
PDF
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
PDF
Dev to Delivery with Puppet, Vagrant and AWS
PDF
Scale Big With Docker — Moboom 2014
PPTX
Node.js and MongoDB from scratch, fully explained and tested
PPTX
No More “Cowboy Coding”: A Best Practices Guide to Local Development & Migration
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
The State of Puppet - Dan Bode
Puppet and Telefonica R&D
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Dev to Delivery with Puppet, Vagrant and AWS
Scale Big With Docker — Moboom 2014
Node.js and MongoDB from scratch, fully explained and tested
No More “Cowboy Coding”: A Best Practices Guide to Local Development & Migration

What's hot (20)

PDF
Docker and DevOps --- new IT culture
PDF
Vagrant + Docker provider [+Puppet]
PDF
Pro Puppet
PPTX
Lessons Learned with Unity and WebGL
PDF
SF DevOps: Introducing Vagrant
PDF
Puppet and Vagrant in development
PPTX
Heroes of Paragon: publishing Unity WebGL game on Facebook
PDF
Using Docker to build and test in your laptop and Jenkins
PDF
Vagrant and docker
PDF
Infrastructure as Data with Ansible
PDF
DevOps: Cooking Drupal Deployment
PPTX
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
PPTX
Dockerfile Basics Workshop #1
ODP
Docker. Micro services for lazy developers
PDF
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
PDF
Improving Engineering Processes using Hudson - Spark IT 2010
PDF
Vagrant Binding JayDay 2013
PDF
Maven beyond hello_world
PPTX
Hudson
 
PDF
06/03/19 Docker, Docker Compose y Heroku - Granada Developer Group - Salesforce
Docker and DevOps --- new IT culture
Vagrant + Docker provider [+Puppet]
Pro Puppet
Lessons Learned with Unity and WebGL
SF DevOps: Introducing Vagrant
Puppet and Vagrant in development
Heroes of Paragon: publishing Unity WebGL game on Facebook
Using Docker to build and test in your laptop and Jenkins
Vagrant and docker
Infrastructure as Data with Ansible
DevOps: Cooking Drupal Deployment
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
Dockerfile Basics Workshop #1
Docker. Micro services for lazy developers
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Improving Engineering Processes using Hudson - Spark IT 2010
Vagrant Binding JayDay 2013
Maven beyond hello_world
Hudson
 
06/03/19 Docker, Docker Compose y Heroku - Granada Developer Group - Salesforce
Ad

Viewers also liked (20)

PDF
Puppet at the Centre of Everything
PDF
Containerised Testing at Demonware : PyCon Ireland 2016
PDF
Connect2013 id506 hadr ideas for social business
DOCX
Marinel S 02
PPTX
Managing RightScale on RightScale
PDF
Stop Sucking at Building Stuff!
PDF
IBM ConnectED 2015 - BP103: Solving the Weird, the Obscure, and the Mind-Bending
ODP
Granite Lotus User Group November 2012 ICS Updates
PDF
Operations Playbook: Monitoring and Automation - RightScale Compute 2013
PPTX
Micrometeorites
PDF
Getting Started With Puppet - Chad Metcalf
PPTX
Introduction to Puppet Enterprise 2016.5
PPT
Puppets around the_world
PPTX
Top 10 business benefits of it automation
PDF
PuppetConf. 2016: Puppet Best Practices: Roles & Profiles – Gary Larizza, Puppet
PPT
Puppets
PPTX
Introduction to Puppet Enterprise 2016.5
PPTX
Introduction to Puppet Enterprise
PDF
automation testing benefits
PPTX
Introduction to Puppetry
Puppet at the Centre of Everything
Containerised Testing at Demonware : PyCon Ireland 2016
Connect2013 id506 hadr ideas for social business
Marinel S 02
Managing RightScale on RightScale
Stop Sucking at Building Stuff!
IBM ConnectED 2015 - BP103: Solving the Weird, the Obscure, and the Mind-Bending
Granite Lotus User Group November 2012 ICS Updates
Operations Playbook: Monitoring and Automation - RightScale Compute 2013
Micrometeorites
Getting Started With Puppet - Chad Metcalf
Introduction to Puppet Enterprise 2016.5
Puppets around the_world
Top 10 business benefits of it automation
PuppetConf. 2016: Puppet Best Practices: Roles & Profiles – Gary Larizza, Puppet
Puppets
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise
automation testing benefits
Introduction to Puppetry
Ad

Similar to The State of Puppet (20)

PDF
What we talk about when we talk about DevOps
PPTX
Relay: Seamless Syncing for React (VanJS)
PPTX
Build software like a bag of marbles, not a castle of LEGO®
PDF
Deployment is the new build
PDF
Supersize me: Making Drupal go large
ODP
Deploying your SaaS stack OnPrem
PDF
Platform Clouds, Containers, Immutable Infrastructure Oh My!
PDF
The Architect Way - JSCamp.asia 2012
PDF
Stackato v6
PDF
Achieving Agility with Code Repositories
PPTX
Component-first Applications
PDF
Angular 2 overview
PPTX
Dbops, DevOps & Ops, by Eduardo Piairo
KEY
Make It Cooler: Using Decentralized Version Control
PDF
Stackato v5
PPTX
How I Learned to Stop Worrying and Love Legacy Code.....
PDF
DbOps, DevOps and Ops
PDF
Big Data! Great! Now What? #SymfonyCon 2014
PDF
Stackato v4
PDF
Real World Elixir Deployment
What we talk about when we talk about DevOps
Relay: Seamless Syncing for React (VanJS)
Build software like a bag of marbles, not a castle of LEGO®
Deployment is the new build
Supersize me: Making Drupal go large
Deploying your SaaS stack OnPrem
Platform Clouds, Containers, Immutable Infrastructure Oh My!
The Architect Way - JSCamp.asia 2012
Stackato v6
Achieving Agility with Code Repositories
Component-first Applications
Angular 2 overview
Dbops, DevOps & Ops, by Eduardo Piairo
Make It Cooler: Using Decentralized Version Control
Stackato v5
How I Learned to Stop Worrying and Love Legacy Code.....
DbOps, DevOps and Ops
Big Data! Great! Now What? #SymfonyCon 2014
Stackato v4
Real World Elixir Deployment

More from Puppet (20)

PPTX
Puppet Community Day: Planning the Future Together
PPTX
The Evolution of Puppet: Key Changes and Modernization Tips
PPTX
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
PPTX
Bolt Dynamic Inventory: Making Puppet Easier
PPTX
Customizing Reporting with the Puppet Report Processor
PPTX
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
PPTX
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
PPTX
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
PDF
Puppet camp2021 testing modules and controlrepo
PPTX
Puppetcamp r10kyaml
PDF
2021 04-15 operational verification (with notes)
PPTX
Puppet camp vscode
PDF
Modules of the twenties
PDF
Applying Roles and Profiles method to compliance code
PPTX
KGI compliance as-code approach
PDF
Enforce compliance policy with model-driven automation
PDF
Keynote: Puppet camp compliance
PPTX
Automating it management with Puppet + ServiceNow
PPTX
Puppet: The best way to harden Windows
PPTX
Simplified Patch Management with Puppet - Oct. 2020
Puppet Community Day: Planning the Future Together
The Evolution of Puppet: Key Changes and Modernization Tips
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Bolt Dynamic Inventory: Making Puppet Easier
Customizing Reporting with the Puppet Report Processor
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet camp2021 testing modules and controlrepo
Puppetcamp r10kyaml
2021 04-15 operational verification (with notes)
Puppet camp vscode
Modules of the twenties
Applying Roles and Profiles method to compliance code
KGI compliance as-code approach
Enforce compliance policy with model-driven automation
Keynote: Puppet camp compliance
Automating it management with Puppet + ServiceNow
Puppet: The best way to harden Windows
Simplified Patch Management with Puppet - Oct. 2020

The State of Puppet

  • 2. BE TRANSPARENT • Tell you what is happening • Make decisions in public • Work together on roadmap • Work together on design • Open by default
  • 3. WHAT WE HAVE DONE RECENTLY
  • 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
  • 13. FINALLY SHIPPING! • Puppet 3.0.0 • Facter 2.0.0 • Hiera 1.0.0
  • 14. COMMITTING TO SEMVER • Semantic Versioning FTW • We are moving all our projects over • SemVer 2.0.0-rc.1 compliant
  • 17. MINOR VERSION Compatible new features
  • 18. PATCH VERSION Bug fix with no other behavioural or functional changes
  • 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
  • 21. OS PACKAGES FOR RELEASE CANDIDATES
  • 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
  • 28. THE ECOSYSTEM • Shipping structured and typed facts without the ecosystem is a no-go • On release, new features should work everywhere
  • 29. THE NEXT CHALLENGE Waldorf, kicking ass and taking names
  • 30. EXPERIMENT ONE We are going to fix some high-voted tickets
  • 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!
  • 34. REDMINE “ACCEPTED” TICKETS This is the scrum “unsorted product backlog”
  • 35. REDMINE “3.X” TARGET VERSION This is “we might fix it before 4.0.0”
  • 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. OTHER EXPERIMENTS You bring ‘em, We try ‘em
  • 38. TECH FOR WALDORF This is all speculative, no promises.
  • 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