Post on 15-Dec-2014
description
James Turnbull@kartar
IRC: jamesturnbulljames@puppetlabs.com
Friday, May 3, 13
A Quick Poll
Friday, May 3, 13
The State ofIT
Friday, May 3, 13
http://info.puppetlabs.com/2013-state-of-devops-report.html
Friday, May 3, 13
More. Faster.
Friday, May 3, 13
Old practices are Constraints ...
Friday, May 3, 13
...and old constraints are
gone
Friday, May 3, 13
DevOps
Friday, May 3, 13
Change must be embraced
Friday, May 3, 13
Cloud
Friday, May 3, 13
State of IT Automation
Friday, May 3, 13
Enabling FrictionlessTechnological Change
Friday, May 3, 13
Customers Everywhere
Friday, May 3, 13
New Approach: SoftwareDefined Infrastructure
1. DEFINE 2. SIMULATE
4. REPORT
Re-usable infrastructure-as-code Before deploying changes
Automatically and reliably Insight into changes
DESIRED STATE
CURRENT STATE
3. ENFORCE
}
Friday, May 3, 13
Lifecycle of a Puppet Run1. 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
PuppetArchitecture
Web Server Database Server Application Server
Reporting GUI & Workflows Content Admin &
Security
Virtual Machine Cloud Hardware
PUPPET MASTER SERVER
PUPPET AGENT
PUPPET FORGE CONTENT MARKETPLACE
PUPPET AGENT
PUPPET AGENT
PUPPET OPEN SOURCE PLATFORM
Friday, May 3, 13
Simple, Declarative
Friday, May 3, 13
Strong CommunityForum 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
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
Friday, May 3, 13
Puppet Enterprise
Friday, May 3, 13
Puppet Enterprise
GRAPHICAL USER INTERFACE LIVE MANAGEMENT
SERVICES & SUPPORT VMWARE CLOUD PROVISIONER
Friday, May 3, 13
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
PE Live Management
Friday, May 3, 13
VM/Cloud Provisioning
Friday, May 3, 13
Recent Features
• Certificate Signing from the GUI
• Authentication with LDAP and oAuth
Friday, May 3, 13
Organizational Scalability
Friday, May 3, 13
PuppetActivity Log
Friday, May 3, 13
Puppet 3.2.0
• Ruby 2.0 Support
• External Certificate Authority Support
• Experimental “Future” parser
• Slow Catalog Profiling
• OpenWRT OS Support
• DSL modulo operator - %
Friday, May 3, 13
Puppet 3.2.0 - Experimental Parser
• parser = future• Iteration and Enumerables
$a = [1,2,3] each($a) |$value| { notice $value }
• each, foreach, collect, select, reject, reduce, slice
collect([1,20,3]) |$value| { $value < 10 } # produces [1,3]
Friday, May 3, 13
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
class ntp($server = hiera(ntp_server, ‘time.apple.com’)) { ...}
# can be changed toclass ntp($ntpserver = ‘time.apple.com’) { ...}
Data Binding
Friday, May 3, 13
PerformanceGains
Friday, May 3, 13
Friday, May 3, 13
Puppet 3 moving on from 2.72.7.0 Release
3.1.0 Release 3.0.0 Release
Friday, May 3, 13
API Documentation!
Friday, May 3, 13
Transparency in plans
Friday, May 3, 13
Puppet Armatures (ARM)
• Proposals to enhance / add features to Puppet or other projects in the Puppet eco-system
• ARM is a process for collecting, reviewing, sorting, and recording the result of proposals for enhancements
• Used for work that require 2+ weeks effort, has significant changes, is in high demand, or contains changes to Puppet Language / evaluation semantics
• Community-focused process to improve openness and transparency for Puppet Labs-funded and contributor efforts
github.com/puppetlabs/armatures
Friday, May 3, 13
The Puppet Forge
• Repository of modules
• Written by the community
• Written for the community
• Identify the best ones out there
• Great place to contribute your own modules
Friday, May 3, 13
Forge By the Numbers
Jan 2012 April 2013
Modules 260 1050+
Users 930 2325+
Total DownloadsSince Feb 2012 588,000+
Friday, May 3, 13
MCollective
• Framework to build server orchestration
• Parallel job execution
• Real-time discovery of resources
• Target only the systems you want
Friday, May 3, 13
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
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
MCollective 2.2.x - Puppet Agent
Friday, May 3, 13
MCollective 2.2.x - Puppet Agent
Friday, May 3, 13
MCollective 2.2.x - Puppet Agent
Friday, May 3, 13
MCollective 2.2.x - Puppet Agent
Friday, May 3, 13
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
PuppetDB
• PuppetDB 1.1 released
• Enhanced Query API for facts, subqueries, regular expressions
• Report Storage
• Report Query in an experimental API
Friday, May 3, 13
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
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
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
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
Friday, May 3, 13
Puppet Labs
Friday, May 3, 13
Puppet Labs: by the numbers
Jan 2012 April 2013
Employees 55 134
Customer Countries 29 42
Office Space 836 m2
9,000 ft22,232 m2
25,000 ft2
Friday, May 3, 13
Awesome Espresso & Tea
Weekly Company Lunch
Puppet Labs: A Great Place to Work!
Photos by Gary LarizzaFriday, May 3, 13
We’re Hiring!
Friday, May 3, 13
Training&
Certification
Friday, May 3, 13
Training by Country
Friday, May 3, 13
Puppet Education:Training and Certification Track
Friday, May 3, 13
Questions?
Questions?
Friday, May 3, 13
Thank You!
Learn More:http://puppetlabs.com
http://puppetlabs.com/communityhttp://puppetlabs.com/puppet/puppet-enterprise/
Friday, May 3, 13