9. How Can Organizations
Achieve High Performance?
HIGH PERFORMING ORGANIZATIONS SHARE TWO COMMON PRACTICES
use version control
for infrastructure
management
use automated code
deployments
Get the 2013 State of DevOps Report at https://puppetlabs.com/solutions/devops/
Friday, May 3, 13
12. New Approach: Software
Defined Infrastructure
1. DEFINE 2. SIMULATE
4. REPORT
Re-usable infrastructure-as-code Before deploying changes
Automatically and reliablyInsight into changes
DESIRED
STATE
CURRENT
STATE
3. ENFORCE
}
Friday, May 3, 13
13. Lifecycle of a Puppet Run
1. Facts
The node sends data about its state
to the puppet master server.
2.#Catalog#
Puppet&uses&the&facts&to&compile&a&
Catalog&that&specifies&how&the&node&
should&be&configured.&
3.#&Report#
Configura9on&changes&are&reported&
back&to&the&Puppet&Master.
4.#&Report#
Puppet's&open&API&can&also&send&data&
to&3rd&party&tools.&
1 Facts 2 Catalog#
Node#
3 Report#
4 Report#
Report#Collector#
Friday, May 3, 13
14. Puppet
Architecture
Web Server Database ServerApplication Server
Reporting
GUI &
Workflows
Content
Admin &
Security
Virtual Machine CloudHardware
PUPPET MASTER SERVER
PUPPET
AGENT
PUPPET FORGE CONTENT MARKETPLACE
PUPPET
AGENT
PUPPET
AGENT
PUPPET OPEN SOURCE PLATFORM
Friday, May 3, 13
16. Strong Community
Forum Members Jan 2012 March 2013
puppet-users list 3588 5531
puppet-dev list 724 994
ask.puppetlabs.com N/A 336
#puppet 600 999
Repository Jan 2012 March 2013
Puppet Forks 236 533
Puppet Watchers 526 1230
Friday, May 3, 13
17. Easy to Get Involved
• Help with Documentation
• Ask/Answer questions
• http://ask.puppetlabs.com
• mailing lists
• IRC
• Help with bug triage
• Contribute code
• Contribute modules on the Forge
• Visit https://puppetlabs.com/community to learn
more
Friday, May 3, 13
18. AUGUST 22 - 23
http://puppetconf.com
Friday, May 3, 13
22. GUI for Puppet
High-level status of nodes
for instant visibility
Time%based*display*for*insight*into*rate*of*change*
Detail*of*node*status*to*pinpoint*specific*issues*
Friday, May 3, 13
29. Scope
# dynamic scoping is gone
class parent {
$var = "from parent"
include included
}
class included {
notify { $var: } ## NOT GONNA WORK
notify { $parent::var: } ## YUP
Friday, May 3, 13
30. class ntp($server = hiera(ntp_server,
‘time.apple.com’)) {
...
}
# can be changed to
class ntp($ntpserver = ‘time.apple.com’) {
...
}
Data Binding
Friday, May 3, 13
32. Puppet Armatures (ARM)
• Proposals to enhance / add features
• Process for collecting,reviewing,sorting,and
recording the result of proposals for enhancements
• Used for work that is significant or large impact
• Community-focused process with improved
openness and transparency
github.com/puppetlabs/armatures
Friday, May 3, 13
33. Puppet Forge: Module Repository
• By the community ... For the community
• Identify and use the best ones
• Contribute your own modules
Jan 2012 April 2013
Modules 260 1050+
Users 930 2325+
Total Downloads
Since Feb 2012
588,000+
Friday, May 3, 13
37. MCollective
• Framework to build server orchestration
• Parallel job execution
• Real-time discovery of resources
• Target only the systems you want
Friday, May 3, 13
38. MCollective 2.2.x
• Network discovery completely pluggable
• Sources of Truth:
• network,database,file,anything
• Result Summarization in the DDL
• Shell Completion support
• ships with zsh and bash examples
Friday, May 3, 13
39. MCollective 2.2.x - Puppet Agent
• http://srt.ly/mcpuppet
• Orchestrates deployments
• Manages Puppet agent runs,supports:
• noop,tags,splay,environments,server
• enable/disable,custom lock messages
• current status,most recent run status
• Manages resource usage on the Puppet Master
• Throttle # of simultaneous runs
Friday, May 3, 13
41. PuppetDB
• Central storage for catalogs and facts that are part of
your puppet infrastructure
• Incredibly fast replacement for existing
ActiveRecord storeconfigs
• Easily deployed via a puppet module from the Forge
Friday, May 3, 13
42. PuppetDB 1.2
• Automatic node purging
• Import/export of PuppetDB
data
• Automatic dead-letter
office compression
• Package availability
changes
Friday, May 3, 13
43. Razor Provisioning
• Rules-based provisioning for bare metal hardware
and virtual servers
• Developed in cooperation with EMC
• Easily deployed via a puppet module from the Forge
• Automatically brings the new server into your
puppet infrastructure
• Open,pluggable,and programmable
Friday, May 3, 13
44. Razor Present and Future
• Security audits,fixes in the 0.9.0 release
• Not yet ready for prime time
• Help us get it there
• File bugs,contribute to the community
Friday, May 3, 13
45. Hiera
• Simple pluggable Hierarchical Database
• Key/value lookup tool for configuration data
• Keeps site-specific data out of your manifests
• Puppet classes request data and Hiera will act like a
site-wide config file
• Makes it easy to configure nodes,re-use Puppet
modules and publish your modules
• Support is built into Puppet 3,and is available as an
add-on for Puppet 2.7
Friday, May 3, 13
46. Facter 1.7
• External Facts!
https://docs.puppetlabs.com/guides/custom_facts.html#external-facts
• Any executable in the facts.d directory is a fact
• Just return key/value pairs on STDOUT
• Windows
• .com .exe .bat .ps1 supported
• Also supports structured data files in facts.d
• .yaml .json .txt supported
Friday, May 3, 13
49. Puppet Labs: by the numbers
Jan 2012 April 2013
Employees 55 134
Customer Countries 29 42
Office Space
836 m2
9,000 ft2
2,232 m2
25,000 ft2
Friday, May 3, 13