portable infrastructure with puppet
TRANSCRIPT
Portable Infrastructu
re with Puppet
Luke KaniesFounder of Puppet project
Founder and CEO of Puppet Labs
The state of Puppet
Puppet is stable
Puppet is changing quickly
• Still plenty of features to add
• Every day we learn, and every lesson brings a refactoring
• Maturity brings its own design requirements
• Connectiveness is a larger priority
Puppet is Pervasive
Financial
TechnologyEntertainmentWeb
Defense
I promised some things last year
Puppet Camp 2009 Promises
•1.0•Web GUI•Modules
Rowlf is imminent
0.2
0.20
1.0
1.00
2.6
Lots of refactoring, and a
lot of features
Pure Ruby DSL
Class Parameters
Finished migration to REST
Still working on publishing all of the formats and URLs
puppetmasterd puppet master
puppetd puppet agent
puppetca
ralsh
puppet cert
puppet resource
puppetdoc puppet doc
The single executable shift
More informative reports
Heavily trimmed
Exposing types and classes
Faster in many ways
• Compiles are much faster• File serving is streamed (thanks Brice!)• Lots of small improvements
Relationship syntax
Hashes
Taught us a lot about how (not) to
release
Dashboard is growing and prospering
“Web GUI”
Node classification
Reporting
Lots to come
• Automatically detect optional and required parameters
• Catalog and report correlation
• Discovery
• Harass Rein for more information!
Let’s go Back
Why does Puppet exist?
Embarrassment
Fear
A simple dream:
That sysadmins could reuse code
Enable focus on the value-add
Usually
Ideally
0 25.0 50.0 75.0 100.0
Things you have to doThings you want to do
The Problem
• No standardization
• 75% of IT budgets spent to maintain existing systems
• Code changes with the sysadmin
Every infrastructure
starts from scratch }
We needed a high-level
language for
Programming SysAdmin
Low-level, non-
portable, single-use
Assembly perl/shell/etc
Abstract, portable, reusable
C* Puppet
Shell scripts areassembly code
* For small values of abstract
So: The ultimate goal was code
reuse
We’ve built a platform that can
enable reuse
Now we just need to start sharing
Announcing:Puppet Forge
http://forge.puppetlabs.comhttp://projects.puppetlabs.com/projects/
module-site
Share the modules you’ve created
Find modules others have
Client-side tools
Extension metadata is
Minimum Viable Product (MVP)
It’s all about code reuse
Westheimer's Discovery:
A couple of months in the laboratory can
frequently save
Luke’s Corollary:
A couple of months of development can
frequently save a couple of hours on the internet.
Collaborate on existing code rather than
Or, start again and publish
A new forcing function in
Because there’s now a place for
all that metadata:• Classes, definitions, nodes, etc.• Required and optional parameters• Versions• Dependencies
Drives further introspection
in Puppet
We can add:
• Portability information - ‘confine’ in classes and modules
• Incompatibilities• “Tested on” information• Etc.
Pushes Dashboard to manage modules
Package-like behaviour in the
modules
Fills out the product portfolio
•The industry-leading open source automation platform•Supported with subscriptionPuppet
•A graphical view into your Puppet infrastructure•A simplified interface for many configuration actions
PuppetDashboard
•Collaborate with other IT administrators on Puppet content•Access Puppet Labs supported modulesPuppet Forge
AnyQuestion