17
Infrastructure Automation at Scale With Puppet and Friends Nick Jones, Senior Cloud Systems Engineer 11 th September, 2014

Infrastructure Automation at Scale

Embed Size (px)

DESCRIPTION

Presentation given by Nick Jones, Senior Cloud Systems Engineer at DataCentred at September'sVirtualisation User Group in Manchester http://vmug.org.uk/ , discussing some of the tools we are using to scale our systems. "Infrastructure Automation at Scale With Puppet and Friends" The presentation covers how we are using Puppet for configuration management and automating tasks as well as describing how it allows us to programmatically define server and service configuration. We also give a brief introduction to Foreman which handles the provisioning of new operating system installations. Foreman handles the auto-discovery of new machines and aligns very closely with Puppet providing ways of classifying nodes based on a very flexible set of criteria. Foreman enables a user to assign roles and profiles to a given machine. We conclude with a brief overview of our development process and additional development tools that we use including Packer and Vagrant.

Citation preview

Page 1: Infrastructure Automation at Scale

Infrastructure Automation at ScaleWith Puppet and Friends

Nick Jones, Senior Cloud Systems Engineer11th September, 2014

Page 2: Infrastructure Automation at Scale

Introduction

Page 3: Infrastructure Automation at Scale

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

Scale-ability

• Repeatability• Flexibility• Diversity• Transparency• Automate!

Page 5: Infrastructure Automation at Scale
Page 6: Infrastructure Automation at Scale

• 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

Puppet Community

Neutron = 8422 LOCNova = 6678 LOCGlance = 3336 LOCCinder = 6379 LOCHorizon = 1681 LOCKeystone = 4020 LOCCeilometer = 3710 LOC~ 5000 CPUs, 1TB RAM

} 2478 LOC to deployOpenStack

Page 8: Infrastructure Automation at Scale

Open Source

Page 9: Infrastructure Automation at Scale

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

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

The Foreman

• Lifecycle management• Physical and virtual• External node classification

(ENC) for Puppet

Page 12: Infrastructure Automation at Scale

The Foreman - Architecture

Page 13: Infrastructure Automation at Scale

Foreman and Puppet

Page 14: Infrastructure Automation at Scale

Foreman Dashboard

Page 15: Infrastructure Automation at Scale

Developers, developers, developers, developers…

Page 16: Infrastructure Automation at Scale

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

Development Tools

• Packer• Virtual machine image creation• Template stored in Foreman• Automatically creates Vagrant

boxes

• Vagrant• Define virtual environments• Puppet provisioner• Portable