Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modern Infrastructure From Scratch

Simon KP
April 23, 2015

Modern Infrastructure From Scratch

Provision infrastructure from code on an IaaS platform and establish a continuous workflow to make changes in deployment and promote them into production via testing.

This talk/workshop showcases Puppet concepts like Roles & Profiles, node-less classification and r10k deployment. Using the above methods we will install and configure some of the modern FOSS operations tools available to help us manage our infrastructure. Some of the areas that will be covered are monitoring and metrics, log aggregation and of course infrastructure automation.

The talk will highlight infrastructure as code having an impact on the future of computing as we see the industry move from hardware to software driven tooling which brings quite a number of benefits.

Simon KP

April 23, 2015
Tweet

Other Decks in Technology

Transcript

  1. Overview • Define, model and provision new infrastructure • Establish

    an efficient development workflow • Get familiar with some of the Puppet concepts
  2. Why automate infrastructure? • Consistently Repeatable and Portable • Efficient

    • Captured Effort • Executable/Live Self-Documentation
  3. Define Modern Infrastructure • Infrastructure Automation (VirtualBox+Vagrant) • Version Control

    (Git+Gitlab) • Configuration Management (Puppet) • Test + Deployment Automation (Jenkins+r10k) • Centralised Log Aggregation (ELK stack) • Monitoring (Sensu)
  4. Puppet Roles & Profiles Resources > Classes > Modules >

    Profiles > Role > Node Allow the business to manage how the infrastructure looks without defining what it is Data is abstracted by Hiera
  5. Profiles definition # site/profile/manifests/init.pp class profile::jenkins { class { '::jenkins':

    } jenkins::job { 'puppet-control': } create_resources(jenkins::credentials, hiera('jenkins_credentials')) } ...
  6. Look for modules • Puppet Labs approved and supported •

    Lots of downloads • No weird dependencies • Documentation • Source is on Github
  7. Module Deployment r10k - manages modules defined in Puppetfile Deploys

    Puppet’s dynamic directory environments based on puppet-control repo’s git branches Does not resolve modules dependencies
  8. Demonstration http://puppet.eskp.net:5000 Puppetboard view of Puppet infrastructure http://control.eskp.net:9090 Jenkins http://log.eskp.net

    Kibana dashboard for centralised logs access http://mon.eskp.net:3000 Uchiwa dashboard overview of Sensu
  9. Todo • Write infrastructure tests • Address scale • Provision

    with puppetlabs-aws module • Upgrade to Puppet 4