eclipse con 2012 - frictionless operations with puppet - luke kanies
DESCRIPTION
TRANSCRIPT
Luke KaniesFounder of Puppet
Founder and CEO, Puppet Labs
Frictionless Operationswith Puppet
Tuesday, April 10, 12
The IT Situation
Tuesday, April 10, 12
Absolutely critical
Tuesday, April 10, 12
Gatekeepers
Tuesday, April 10, 12
Bad tools
Tuesday, April 10, 12
Calcification
Tuesday, April 10, 12
DevOps
Tuesday, April 10, 12
2001: Agile Manifesto
Tuesday, April 10, 12
Individuals and interactions over
processes and tools
Tuesday, April 10, 12
Working software over comprehensive documentation
Tuesday, April 10, 12
Customer collaboration over contract negotiation
Tuesday, April 10, 12
Responding to change over following a plan
Tuesday, April 10, 12
Dev: On time, under budget, wrong product
http://diykenya.files.wordpress.com/2010/08/tire_swing.gif
Tuesday, April 10, 12
Ops: Secure, stable, 18 months to deploy
Tuesday, April 10, 12
Process exists for a reason
http://t0.gstatic.com/images?q=tbn:ANd9GcQHJKV3omm4ov_CU7CJovofE_QGi9xsg_vPz1QHZlKXmlYtt2bB-Q
Tuesday, April 10, 12
Confidence through Tooling
http://www.mdpretech.com/images/Products/Precision%20Tooling%20for%20IC%20mold%20and%20Plastic%20mold.jpg
Tuesday, April 10, 12
Cloud Computing
http://t2.gstatic.com/images?q=tbn:ANd9GcRSjOE5BJr_A2IvmjZk1tCj7LU_qENIb58MuGqQWxU2DGqETHz-
Tuesday, April 10, 12
Scale
Tuesday, April 10, 12
Agility
Tuesday, April 10, 12
Big Data
Tuesday, April 10, 12
Self-service
Tuesday, April 10, 12
Puppet
Tuesday, April 10, 12
Puppet Users
Scaled from 0 to over 10,000 serversin 2 months without training
287 servers per SysAdminvs. 19 for BMC BladeLogic
Over 50,000 systemsmanaged by Puppet
Deploy 1,800 machines in 2 hoursvs. 25 machines per day with HP Opsware
Financial Entertainment Technology Defense Web
InvestorsMobile PhoneCompany
Tuesday, April 10, 12
Plenty of others
Tuesday, April 10, 12
Built for the user
Tuesday, April 10, 12
Great Design
http://www.encorbio.com/Album/pages/ChkNFH-neuron1.htm
Tuesday, April 10, 12
ConfigurationPlatform
Tuesday, April 10, 12
Fear
Embarrassment
SSH
Tuesday, April 10, 12
More great sysadmins
Programmers Sysadmins
5000 Assembly Scripts
Millions Ruby, Java, PHP, C ?
Tuesday, April 10, 12
Fully Automated Infrastructure
Asynchronous Management
Centralized Management
Good tools
Flatten the climb
Investment
Awes
omen
ess
Tuesday, April 10, 12
Why use Puppet?
Tuesday, April 10, 12
96% of outages are human error
Stability
Tuesday, April 10, 12
1000 nodes x 10s command = no pub
Agility
Tuesday, April 10, 12
Air-gapLeast Privilege
Untrusted clients
Security
Tuesday, April 10, 12
Auditability
Tuesday, April 10, 12
Golden image?
Image from http://www.flickr.com/photos/fungep/2516767121/sizes/l_
Tuesday, April 10, 12
Puppet: A brief introduction
Tuesday, April 10, 12
A language for configuration specification
Tuesday, April 10, 12
Resource Abstraction Layercomputercronfilegrouphostinterfacek5loginmailaliasmaillistmcxmount
packageportresourcesrouterservicesshkeystageuservcsrepovlanyumrepo
Tuesday, April 10, 12
Cross Platform
Fedora
Debian
Ubuntu
CentOS
SuSE
Red HatOS X
AIX
HP-UX
OpenBSD
FreeBSD
Solaris
Windows
Cisco
F5
Tuesday, April 10, 12
Workflow Define: With Puppet's declarative language you design a graph of relationships between resources within reusable modules. These modules define your infrastructure in its desired state.
1
Simulate: With this resource graph, Puppet is unique in its ability to simulate deployments, enabling you to test changes without disruption to your infrastructure.
2
Enforce: Puppet compares your system to the desired state as you define it, and automatically enforces it to the desired state ensuring your system is in compliance.
3
Report: Puppet Dashboard reports track relationships between components and all changes, allowing you to keep up with security and compliance mandates. And with the open API you can integrate Puppet with third party monitoring tools.
4
DESIREDSTATE
CURRENTSTATE
ITER
ATE
AN
D IN
CREA
SE C
OVERAGE
Tuesday, April 10, 12
Change Propagation
FactsThe node sends normalized data about itself to the Puppet Master.
1
CatalogPuppet uses the Facts tocompile a Catalog thatspecifies how the nodeshould be configured.
2
Report3XSSHW·V�RSHQ�$3,�can also send data to third party tools.
4
ReportThe node reports back to Puppet indicating the configuration is complete, which is visible in the Puppet Dashboard.
3
Report Collector(Puppet or 3rd party tool)
Node
PuppetMaster
SSL secure encryption on all data transport
Tuesday, April 10, 12
domain => localfacterversion => 1.5.8fqdn => sliver.localhardwaremodel => i386hostname => sliverinterfaces => lo0,gif0,stf0,en0,en1,fw0,vmnet1,vboxnet0ipaddress => 192.168.174.1ipaddress_lo0 => 127.0.0.1ipaddress_vmnet1 => 192.168.174.1kernel => Darwinkernelmajversion => 10.6kernelrelease => 10.6.0macosx_productname => Mac OS Xmacosx_productversion => 10.6.6netmask => 255.255.255.0netmask_lo0 => 255.0.0.0netmask_vmnet1 => 255.255.255.0network_lo0 => 127.0.0.0network_vmnet1 => 192.168.174.0operatingsystem => Darwinoperatingsystemrelease => 10.6.0path => /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binps => ps auxwwwpuppetversion => 2.6.4rubysitedir => /opt/local/lib/ruby/site_ruby/1.8timezone => PSTuptime => 1 dayrubyversion => 1.8.7sp_bus_speed => 1.07 GHz
Automatic Inventory
Tuesday, April 10, 12
Centralized, Serverless, or Hybrid
MCollectivehandlesorchestration
Puppet Master
Puppet Dashboard 3rd Party SystemsPuppet Module Forge
Modules
Puppet AgentFacter
NODE
Puppet AgentFacter
NODE
Puppet AgentFacter
NODE
Data
Tuesday, April 10, 12
Scales like HTTPS
2 known 50k node sites
Multiple 30k node sites
Tens of 3k node sites
Tuesday, April 10, 12
Built as a platform
Tuesday, April 10, 12
Model-based hackability
•Hosts•Inventory data• IP, hostname, platform, etc.
•Resource lists•Resource dependencies•Change events
Tuesday, April 10, 12
Puppet Faces
cacatalogcertificatecertificate_requestcertificate_revocation_listconfigfactsfilehelp
keymannodeparserpluginreportresourceresource_typestatus
Tuesday, April 10, 12
MCollective: Infrastructure message
bus
Tuesday, April 10, 12
Puppet Forge301 modules
Tuesday, April 10, 12
How to use Puppet
Tuesday, April 10, 12
Seek the pain
Image from http://www.flickr.com/photos/pagedooley/2147718252/sizes/l/Tuesday, April 10, 12
Solve the simple problems
Tuesday, April 10, 12
Add the infrastructure features you always
wanted
Tuesday, April 10, 12
Think like Puppet thinks
•Resources, not text snippets or lines added to files•What resources are you managing?•How are they related to each other?
Tuesday, April 10, 12
Replace Shell Scripts with Resources
Becomes:
This:
Tuesday, April 10, 12
Relationships matter but are often implicit
Package
Service
Service should restart whenconfiguration changes
Configuration
Configuration should get modifed after package installation
Tuesday, April 10, 12
Explicit Relationships
Tuesday, April 10, 12
Relationships provide ordering and notification
"Exec[createrepo-PM-RHEL5-noarch]"
"Yumrepo[PM-RHEL5-x86_64]"
"Yumrepo[PM-RHEL5-noarch]"
"Package[postgresql-server]"
"Package[thttpd]"
"File[/var/www/thttpd/html/yum-PM-RHEL5-noarch]""File[/var/www/thttpd/html/yum-PM-RHEL5-x86_64]"
"Exec[rsync-rpmdir-PM-RHEL5-x86_64]"
"Exec[createrepo-PM-RHEL5-x86_64]"
"Postgres::Role[puppet]"
"Exec[rsync-rpmdir-PM-RHEL5-noarch]"
Tuesday, April 10, 12
Classes document Intent
Tuesday, April 10, 12
Organize files into modules
Tuesday, April 10, 12
Provide platform abstraction
Debian
Red Hat
Tuesday, April 10, 12
Portability and Naming
Tuesday, April 10, 12
Roles
Tuesday, April 10, 12
Puppet Enterprise
Tuesday, April 10, 12
Detail of node status to pinpoint specific issues
High-‐level status of nodes for instant
visibility
Time-‐based display for insight into rate of
change
Reporting
Tuesday, April 10, 12
Cloud Provisioning
VMware
Amazon AWS
OpenStack
Tuesday, April 10, 12
Choose nodes to clone to ensure consistency
Preview the impact before you clone
nodes
Browse for managed nodes in your infrastructure
Resource Browsing
Tuesday, April 10, 12
Accept or reject changes to update
your baseline
See specific differences between node configurations
Compliance
Tuesday, April 10, 12
Find out the status of each node group and its last Puppet run
Orchestration
Tuesday, April 10, 12
Resources currently under Puppet management
Current set of managed nodes
Orchestration
Tuesday, April 10, 12
2.5 Released today
•Windows support•Puppet Forge integration•Puppet Data Library
Tuesday, April 10, 12
Summary
Tuesday, April 10, 12
IT is critical but needs to improve
Tuesday, April 10, 12
DevOps is bringing change
Tuesday, April 10, 12
The Cloud is Coming
http://t2.gstatic.com/images?q=tbn:ANd9GcRSjOE5BJr_A2IvmjZk1tCj7LU_qENIb58MuGqQWxU2DGqETHz-
Tuesday, April 10, 12
Puppet gets you there
Tuesday, April 10, 12
Questions?
Tuesday, April 10, 12
Give Feedback on the Sessions
1 Sign In: www.eclipsecon.org
2 Select Session Evaluate
3 Vote
Tuesday, April 10, 12