daniel pittman - platform team presentation - puppetcamp la '12

56
DANIEL PITTMAN [email protected] 1 Monday, 21 May 12

Upload: puppet-labs

Post on 08-May-2015

1.056 views

Category:

Technology


0 download

TRANSCRIPT

Page 2: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

PUPPET PLATFORMWho, What, Why, and How

2Monday, 21 May 12

Page 3: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

WHAT IS THE PLATFORM TEAM?

3Monday, 21 May 12

Page 4: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

I AM PLATFORM TEAM LEAD

• Find the right people

• Help them be awesome

• Stay out of their way

4Monday, 21 May 12

Page 5: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

WHAT DO WE DO?

5Monday, 21 May 12

Page 6: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

MAKE PUPPET MORE AWESOME FOR THE COMMUNITY

• Build great things

• Triage and fix bugs

•Merge contributed code

6Monday, 21 May 12

Page 7: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

WORK WITH THE COMMUNITY

7Monday, 21 May 12

Page 8: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

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

•Developers

• Professional Services

• Sales Engineers

• ...and other roles

8Monday, 21 May 12

Page 9: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

REDUCE FRICTION FOR NEW CONTRIBUTORS

9Monday, 21 May 12

Page 10: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 11: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

WHAT WE HAVE ACCOMPLISHED

11Monday, 21 May 12

Page 12: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 13: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 14: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 15: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

VARIABLE SCOPE FIXED

•No more dynamic scope

• Killed deprecation warnings!

• Local, then inherited...

• ...then node, then global.

15Monday, 21 May 12

Page 16: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 17: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 18: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 19: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 20: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

HIDDEN CHANGES

• Lots of bugs fixed

• Code cleanup

• Performance improvements

• Correctness fixes

•None of them visible

20Monday, 21 May 12

Page 21: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

FINALLY SHIPPING!

• Puppet 3.0.0

• Facter 2.0.0

• Hiera 1.0.0

21Monday, 21 May 12

Page 22: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 23: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

IT’S VERSION-CEPTION!

23Monday, 21 May 12

Page 24: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

MAJOR VERSIONBreaking Changes

24Monday, 21 May 12

Page 25: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

MINOR VERSION

Compatible new features

25Monday, 21 May 12

Page 26: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

PATCH VERSION

Bug fix with no other behavioural or functional

changes

26Monday, 21 May 12

Page 27: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 28: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

SHIPPING CODE FASTER

28Monday, 21 May 12

Page 29: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

OS PACKAGES FOR RELEASE CANDIDATES

29Monday, 21 May 12

Page 30: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 31: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

NOT DONE YET...

31Monday, 21 May 12

Page 32: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

OLD MISTAKES STILL HAUNT US

• Parameterized classes don’t work everywhere

• undef vs nil

• classes with ‘-’ in the name

32Monday, 21 May 12

Page 33: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 34: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 35: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

THE FUTURE

35Monday, 21 May 12

Page 36: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 37: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

THE NEXT CHALLENGEWaldorf, kicking ass and taking names

37Monday, 21 May 12

Page 38: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

EXPERIMENT ONEWe are going to fix some high-voted tickets

38Monday, 21 May 12

Page 39: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 40: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 41: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

SCHEDULE TRANSPARENCY

41Monday, 21 May 12

Page 42: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

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

42Monday, 21 May 12

Page 43: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

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

43Monday, 21 May 12

Page 44: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

SAME THING!

44Monday, 21 May 12

Page 45: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 46: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

OTHER EXPERIMENTSYou bring ‘em, We try ‘em

46Monday, 21 May 12

Page 47: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

TECH FOR WALDORFThis is all speculative, no promises.

47Monday, 21 May 12

Page 48: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

SYSTEM MODULE PATH

•Modules can move fast

• Batteries-included is great

• Combine them!

• Best of both worlds

48Monday, 21 May 12

Page 49: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

STATIC COMPILER

•Missed Telly, but only just

• Content reference, not URI

• Single file catalog?

• Easier push model?

49Monday, 21 May 12

Page 50: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 51: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 52: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '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

Page 53: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

CLEANER, DOCUMENTED CODE

• Easier to use Puppet as a library or extend it

• Better API definitions

• Richer integrations

53Monday, 21 May 12

Page 54: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

MY REAL GOAL

54Monday, 21 May 12

Page 55: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

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

55Monday, 21 May 12

Page 56: Daniel Pittman - Platform Team Presentation - PuppetCamp LA '12

THANK YOU ALLPlease tweet your thanks to @MediaTemple for hosting

#PuppetCampLA 2012

56Monday, 21 May 12