daniel pittman - platform team presentation - puppetcamp la '12

Post on 08-May-2015

1.056 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DANIEL PITTMANdaniel@puppetlabs.com

1Monday, 21 May 12

PUPPET PLATFORMWho, What, Why, and How

2Monday, 21 May 12

WHAT IS THE PLATFORM TEAM?

3Monday, 21 May 12

I AM PLATFORM TEAM LEAD

• Find the right people

• Help them be awesome

• Stay out of their way

4Monday, 21 May 12

WHAT DO WE DO?

5Monday, 21 May 12

MAKE PUPPET MORE AWESOME FOR THE COMMUNITY

• Build great things

• Triage and fix bugs

•Merge contributed code

6Monday, 21 May 12

WORK WITH THE COMMUNITY

7Monday, 21 May 12

ASIDE: WORKING IN THE COMMUNITY => WORKING FOR PUPPET LABS

•Developers

• Professional Services

• Sales Engineers

• ...and other roles

8Monday, 21 May 12

REDUCE FRICTION FOR NEW CONTRIBUTORS

9Monday, 21 May 12

BE TRANSPARENT

• Tell you what is happening

•Make decisions in public

•Work together on roadmap

•Work together on design

•Open by default

10Monday, 21 May 12

WHAT WE HAVE ACCOMPLISHED

11Monday, 21 May 12

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

12Monday, 21 May 12

RUBY 1.9.3

...is finally a first class citizen.This is part of 3.0.0

Fully supported.All bugs fixed.

(Probably)

13Monday, 21 May 12

PUPPET MODULE TOOL

• Project Geordi La Forge

• PMT ships with 3.0.0

•Making it more awesome!

• Buffing up publishing

• Enhance the forge

14Monday, 21 May 12

VARIABLE SCOPE FIXED

•No more dynamic scope

• Killed deprecation warnings!

• Local, then inherited...

• ...then node, then global.

15Monday, 21 May 12

GIVE BACK MEMORY

•Daemon mode used to grow and grow...

•Now, we return memory to the OS

• Part of our performance improvement strategy

16Monday, 21 May 12

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!

17Monday, 21 May 12

PLUGIN SYNC

• This worked unevenly

• Failures on first run

•Oddities about what can by synced and used successfully

•Now, uniform and standard

18Monday, 21 May 12

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...

19Monday, 21 May 12

HIDDEN CHANGES

• Lots of bugs fixed

• Code cleanup

• Performance improvements

• Correctness fixes

•None of them visible

20Monday, 21 May 12

FINALLY SHIPPING!

• Puppet 3.0.0

• Facter 2.0.0

• Hiera 1.0.0

21Monday, 21 May 12

COMMITTING TO SEMVER

• Semantic Versioning FTW

•We are moving all our projects over

• SemVer 2.0.0-rc.1 compliant

22Monday, 21 May 12

IT’S VERSION-CEPTION!

23Monday, 21 May 12

MAJOR VERSIONBreaking Changes

24Monday, 21 May 12

MINOR VERSION

Compatible new features

25Monday, 21 May 12

PATCH VERSION

Bug fix with no other behavioural or functional

changes

26Monday, 21 May 12

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

27Monday, 21 May 12

SHIPPING CODE FASTER

28Monday, 21 May 12

OS PACKAGES FOR RELEASE CANDIDATES

29Monday, 21 May 12

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!

30Monday, 21 May 12

NOT DONE YET...

31Monday, 21 May 12

OLD MISTAKES STILL HAUNT US

• Parameterized classes don’t work everywhere

• undef vs nil

• classes with ‘-’ in the name

32Monday, 21 May 12

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.

33Monday, 21 May 12

BROKEN (OR DELAYED) PROMISES

• import isn’t deprecated

• The static compiler isn’t the default

• Facter doesn’t have typed or structured facts

34Monday, 21 May 12

THE FUTURE

35Monday, 21 May 12

THE ECOSYSTEM

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

•On release, new features should work everywhere

36Monday, 21 May 12

THE NEXT CHALLENGEWaldorf, kicking ass and taking names

37Monday, 21 May 12

EXPERIMENT ONEWe are going to fix some high-voted tickets

38Monday, 21 May 12

VOTES SHAPE THE ROADMAP

•We said votes matter before

• It wasn’t really true

• I don’t expect you to believe me this time...

• ...so we are gonna fix tickets, then ask you to believe us

39Monday, 21 May 12

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!

40Monday, 21 May 12

SCHEDULE TRANSPARENCY

41Monday, 21 May 12

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

42Monday, 21 May 12

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

43Monday, 21 May 12

SAME THING!

44Monday, 21 May 12

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

45Monday, 21 May 12

OTHER EXPERIMENTSYou bring ‘em, We try ‘em

46Monday, 21 May 12

TECH FOR WALDORFThis is all speculative, no promises.

47Monday, 21 May 12

SYSTEM MODULE PATH

•Modules can move fast

• Batteries-included is great

• Combine them!

• Best of both worlds

48Monday, 21 May 12

STATIC COMPILER

•Missed Telly, but only just

• Content reference, not URI

• Single file catalog?

• Easier push model?

49Monday, 21 May 12

STRUCTURED FACTS

• Really, structured and typed

• JSON is the template for supported types and structures

• Full ecosystem support

• Third party facts only, initially

50Monday, 21 May 12

BETTER GRAPH PROCESSING

• Improve graph handling in the Puppet Agent

• Fix the “anchor” pattern

• Improves from O(N^2) worst case to O(N)

• Allows future improvements to the catalog and graph

51Monday, 21 May 12

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

52Monday, 21 May 12

CLEANER, DOCUMENTED CODE

• Easier to use Puppet as a library or extend it

• Better API definitions

• Richer integrations

53Monday, 21 May 12

MY REAL GOAL

54Monday, 21 May 12

BUILD A 10× TEAM...and let them work with the community to be awesome!

55Monday, 21 May 12

THANK YOU ALLPlease tweet your thanks to @MediaTemple for hosting

#PuppetCampLA 2012

56Monday, 21 May 12

top related