puppetcamp sea 1 - the state of puppet

44
JAMES TURNBULL [email protected]

Upload: walter-heck

Post on 29-Nov-2014

449 views

Category:

Technology


3 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: PuppetCamp SEA 1 - The State of Puppet

JAMES [email protected]

Page 2: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

WHAT WE HAVE DONERECENTLY

Page 4: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

VARIABLE SCOPE FIXED

No more dynamic scope

Killed deprecation warnings!

Local, then inherited...

...then node, then global.

Page 8: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

HIDDEN CHANGES

Lots of bugs fixed

Code cleanup

Performance improvements

Correctness fixes

None of them visible

Page 13: PuppetCamp SEA 1 - The State of Puppet

FINALLY SHIPPING!

Puppet 3.0.0

Facter 2.0.0

Hiera 1.0.0

Page 14: PuppetCamp SEA 1 - The State of Puppet

COMMITTING TO SEMVER

Semantic Versioning FTW

We are moving all ourprojects over

SemVer 2.0.0-rc.1compliant

Page 15: PuppetCamp SEA 1 - The State of Puppet

IT’S VERSION-CEPTION!

Page 16: PuppetCamp SEA 1 - The State of Puppet

MAJORVERSIONBreaking Changes

Page 17: PuppetCamp SEA 1 - The State of Puppet

MINORVERSION

Compatible new features

Page 18: PuppetCamp SEA 1 - The State of Puppet

PATCHVERSION

Bug fix with no otherbehavioural or functional

changes

Page 19: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

SHIPPING CODE FASTER

Page 21: PuppetCamp SEA 1 - The State of Puppet

OS PACKAGES FOR RELEASE CANDIDATES

Page 22: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

NOT DONE YET...

Page 24: PuppetCamp SEA 1 - The State of Puppet

OLD MISTAKES STILL HAUNT US

Parameterized classes don’twork everywhere

undef vs nil

classes with ‘-’ in the name

Page 25: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

THE FUTURE

Page 28: PuppetCamp SEA 1 - The State of Puppet

THE ECOSYSTEM

Shipping structured andtyped facts without theecosystem is a no-go

On release, new featuresshould work everywhere

Page 29: PuppetCamp SEA 1 - The State of Puppet

THE NEXT CHALLENGEWaldorf, kicking ass and taking names

Page 30: PuppetCamp SEA 1 - The State of Puppet

EXPERIMENT ONEWe are going to fix some high-voted tickets

Page 31: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

SCHEDULE TRANSPARENCY

Page 34: PuppetCamp SEA 1 - The State of Puppet

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

Page 35: PuppetCamp SEA 1 - The State of Puppet

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

Page 36: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

OTHER EXPERIMENTSYou bring ‘em, We try ‘em

Page 38: PuppetCamp SEA 1 - The State of Puppet

TECH FOR WALDORFThis is all speculative, no promises.

Page 39: PuppetCamp SEA 1 - The State of Puppet

STATIC COMPILER

Missed Telly, but only just

Content reference, not URI

Single file catalog?

Easier push model?

Page 40: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - 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: PuppetCamp SEA 1 - The State of Puppet

CLEANER, DOCUMENTED CODE

Easier to use Puppet as alibrary or extend it

Better API definitions

Richer integrations

Page 44: PuppetCamp SEA 1 - The State of Puppet

THANK YOU ALL