infrastructure automation at scale
TRANSCRIPT
![Page 1: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/1.jpg)
Infrastructure Automation at Scale
With Puppet and Friends
Nick Jones, Senior Cloud Systems Engineer
11th September, 2014
![Page 2: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/2.jpg)
Introduction
![Page 3: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/3.jpg)
Scalability
“Scalability is the ability of a system, network, or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth.”
![Page 4: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/4.jpg)
Scale-ability
• Repeatability
• Flexibility
• Diversity
• Transparency
• Automate!
![Page 5: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/5.jpg)
![Page 6: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/6.jpg)
• Configuration management and automation
• Programmatically define server and service configuration
• Relationships between services
• Driven by data
• Describe and document infrastructure
• Scalable
Puppet
![Page 7: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/7.jpg)
Puppet Community
Neutron = 8422 LOC
Nova = 6678 LOC
Glance = 3336 LOC
Cinder = 6379 LOC
Horizon = 1681 LOC
Keystone = 4020 LOC
Ceilometer = 3710 LOC
~ 5000 CPUs, 1TB RAM
} 2478 LOC to deploy
OpenStack
![Page 8: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/8.jpg)
Open Source
![Page 9: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/9.jpg)
Puppet Code
# Install the MIBS meta-package package { 'snmp-mibs-downloader': ensure => latest, }
file { 'snmp.conf': require => Package['snmp-mibs-downloader'], path => '/etc/snmp/snmp.conf', content => 'com2sec local localhost public', }
![Page 10: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/10.jpg)
Puppet Deployment Patterns
• A role is a high-level (business) description of a node’s function
• Roles decompose into profiles that include configuration specifics
• Profiles include various modules and take care of declaring the necessary classes and resources
![Page 11: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/11.jpg)
The Foreman
• Lifecycle management• Physical and virtual• External node classification
(ENC) for Puppet
![Page 12: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/12.jpg)
The Foreman - Architecture
![Page 13: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/13.jpg)
Foreman and Puppet
Puppet
Foreman
Node
ProvisionData
Configuration
![Page 14: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/14.jpg)
Foreman Dashboard
![Page 15: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/15.jpg)
Developers, developers, developers, developers…
![Page 16: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/16.jpg)
Development Process• Git for distributed version
control• Work on ‘feature branches’
locally• Push to local Git repo,
mirrored onto GitHub• GitHub’s “social” aspects for
code review• Merge into ‘master’ branch
on team consensus
![Page 17: Infrastructure Automation at Scale](https://reader034.vdocuments.us/reader034/viewer/2022042701/55aa86961a28aba8358b47b2/html5/thumbnails/17.jpg)
Development Tools
• Packer• Virtual machine image creation
• Template stored in Foreman
• Automatically creates Vagrant boxes
• Vagrant• Define virtual environments• Puppet provisioner• Portable