+ All Categories
Home > Documents > The State of Puppet

The State of Puppet

Date post: 24-Apr-2015
Category:
Upload: puppet-labs
View: 798 times
Download: 0 times
Share this document with a friend
Description:
From PuppetCamp Southeast Asia 2012 in Kula Lumpur, Malaysia. 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.
44
JAMES TURNBULL [email protected]
Transcript
Page 1: The State of Puppet

JAMES [email protected]

Page 2: The State of Puppet

BE TRANSPARENT

Tell you what is happening

Make decisions in public

Work together onroadmap

Work together on design

Open by default

Page 3: The State of Puppet

WHAT WE HAVE DONERECENTLY

Page 4: The State of Puppet

DATA/MODEL SEPARATION

Lookup of class parametersseparate from the manifest

You can assume it is there!

No manifest changes needed

Uses Hiera as the back-end

Page 5: The State of Puppet

RUBY 1.9.3...is finally a first class citizen.

This is part of 3.0.0

Fully supported.All bugs fixed.

(Probably)

Page 6: The State of Puppet

PUPPET MODULE TOOL

Project Geordi La Forge

PMT ships with 3.0.0

Making it more awesome!

Buffing up publishing

Enhance the forge

Page 7: The State of Puppet

VARIABLE SCOPE FIXED

No more dynamic scope

Killed deprecation warnings!

Local, then inherited...

...then node, then global.

Page 8: The State of Puppet

GIVE BACK MEMORY

Daemon mode used togrow and grow...

Now, we return memoryto the OS

Part of our performanceimprovement strategy

Page 9: The State of Puppet

ENC VS ENVIRONMENTS

You could set the clientenvironment from the ENC

The client would ignoreyou (sometimes)

Now it doesn’t

Bug fix, not feature

Still great!

Page 10: The State of Puppet

PLUGIN SYNC

This worked unevenly

Failures on first run

Oddities about what can bysynced and used successfully

Now, uniform and standard

Page 11: The State of Puppet

DSL POLISH

Add “unless” to thelanguage

Allow keywords asresource parameters andproperties

Fixed some parser bugs (like ‘-’ in variable names)

More of this coming...

Page 12: The State of Puppet

HIDDEN CHANGES

Lots of bugs fixed

Code cleanup

Performance improvements

Correctness fixes

None of them visible

Page 13: The State of Puppet

FINALLY SHIPPING!

Puppet 3.0.0

Facter 2.0.0

Hiera 1.0.0

Page 14: The State of Puppet

COMMITTING TO SEMVER

Semantic Versioning FTW

We are moving all ourprojects over

SemVer 2.0.0-rc.1compliant

Page 15: The State of Puppet

IT’S VERSION-CEPTION!

Page 16: The State of Puppet

MAJORVERSIONBreaking Changes

Page 17: The State of Puppet

MINORVERSION

Compatible new features

Page 18: The State of Puppet

PATCHVERSION

Bug fix with no otherbehavioural or functional

changes

Page 19: The State of Puppet

WHICH MEANS?

You have version numbersthat match the way we writeand ship code

You can be confident aboutthe scope of changes in anyrelease

Page 20: The State of Puppet

SHIPPING CODE FASTER

Page 21: The State of Puppet

OS PACKAGES FOR RELEASE CANDIDATES

Page 22: The State of Puppet

MONTH DEVELOPMENT RELEASESWaldorf is the next major

release after Telly (3.0.0)

We will ship a testedversion every month as apreview

This way you don’t havechanges a year old beforethey ship to the community

Plus OS packages!

Page 23: The State of Puppet

NOT DONE YET...

Page 24: The State of Puppet

OLD MISTAKES STILL HAUNT US

Parameterized classes don’twork everywhere

undef vs nil

classes with ‘-’ in the name

Page 25: The State of Puppet

SLOW MOVING ECOSYSTEM

Dashboard has not gotten alot of love recently

Puppet Labs modules needmore attention

...but we are starting toinvest in them.

Page 26: The State of Puppet

BROKEN (OR DELAYED)PROMISES

import isn’t deprecated

The static compiler isn’t thedefault

Facter doesn’t have typedor structured facts

Page 27: The State of Puppet

THE FUTURE

Page 28: The State of Puppet

THE ECOSYSTEM

Shipping structured andtyped facts without theecosystem is a no-go

On release, new featuresshould work everywhere

Page 29: The State of Puppet

THE NEXT CHALLENGEWaldorf, kicking ass and taking names

Page 30: The State of Puppet

EXPERIMENT ONEWe are going to fix some high-voted tickets

Page 31: The State of Puppet

VOTES SHAPE THE ROADMAPWe said votes matter

before

It wasn’t really true

I don’t expect you tobelieve us this time...

...so we are gonna fixtickets, then ask you tobelieve us

Page 32: The State of Puppet

VOTES SHAPE THE ROADMAP

We want community inputinto the roadmap

This seems a solid choice

Success is that votes getused by the community

...and that we use them toshape the roadmap!

Page 33: The State of Puppet

SCHEDULE TRANSPARENCY

Page 34: The State of Puppet

REDMINE “ACCEPTED” TICKETSThis is the scrum “unsorted product backlog”

Page 35: The State of Puppet

REDMINE “3.X” TARGET VERSIONThis is “we might fix it before 4.0.0”

Page 36: The State of Puppet

GONNA FIX THAT UP

Target open tickets at thenext numeric version

Means “trying to fix for thatrelease”

Still shipping time-basedproduct, so things will miss

Page 37: The State of Puppet

OTHER EXPERIMENTSYou bring ‘em, We try ‘em

Page 38: The State of Puppet

TECH FOR WALDORFThis is all speculative, no promises.

Page 39: The State of Puppet

STATIC COMPILER

Missed Telly, but only just

Content reference, not URI

Single file catalog?

Easier push model?

Page 40: The State of Puppet

STRUCTURED FACTS

Really, structured and typed

JSON is the template forsupported types andstructures

Full ecosystem support

Third party facts only,initially

Page 41: The State of Puppet

BETTER GRAPH PROCESSING

Improve graph handling inthe Puppet Agent

Fix the “anchor” pattern

Improves performance andlogic

Allows futureimprovements to the catalogand graph

Page 42: The State of Puppet

BETTER ENVIRONMENTS

Different versions of a typein different environments

Turns out that is prettyhard (thanks, Ruby)

We will make it easy

Fix performance cost too

Page 43: The State of Puppet

CLEANER, DOCUMENTED CODE

Easier to use Puppet as alibrary or extend it

Better API definitions

Richer integrations

Page 44: The State of Puppet

THANK YOU ALL


Recommended