Taking devops to the Next Level - Max Martin
Upcoming SlideShare
Loading in...5
×
 

Taking devops to the Next Level - Max Martin

on

  • 619 views

 

Statistics

Views

Total Views
619
Views on SlideShare
616
Embed Views
3

Actions

Likes
0
Downloads
4
Comments
0

1 Embed 3

https://twitter.com 3

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Taking devops to the Next Level - Max Martin Taking devops to the Next Level - Max Martin Presentation Transcript

  • Taking Devops to the Next Level! Max Martin Developer & Manager @maxmartin 1
  • So  you’ve  automated  your   infrastructure…   •  Configura7on  as  code   •  Be9er  insight  into  the  structure  of  your   systems   •  More  robust  deployments   •  But  how  do  you  reach  the  next  level?   2
  • Advances  in  the  Puppet  Ecosystem   •  •  •  •  •  •  3 Puppet  3.0+   Hiera   PuppetDB   Mcollec7ve  2.0+   Geppe9o   Puppet  Forge  
  • 2011   2012   2013   Puppet Enterprise 1.0 You Are Here   Puppet Enterprise 3.0 •  Configuration Management •  Reporting Puppet Enterprise 2.0 •  Discovery •  Cloud Provisioning •  Orchestration •  •  •  •  •  Enhanced Scalability & Performance Dynamic Discovery Progressive Deployment Orchestration for Windows Module Reusability Puppet Enterprise 2.5 •  Windows •  Puppet Forge Integration •  Puppet Data Library Puppet Enterprise 2.6/2.7 PuppetDB 0.9.0 •  Big Data for Puppet •  Fast, scalable Stored Configs •  RBAC and external auth •  Certificate Management Puppet Enterprise 2.8 •  AIX Mcollective 2.0 •  Sub-collectives •  Advanced Filter Syntax 4 Puppet OSS 3.0 •  Performance •  Data Bindings Puppet OSS 3.1 and 3.2 •  API docs •  Future parser Mcollective 2.2 •  Direct addressing •  Pluggable Discovery PuppetDB 1.4 * Report Storage
  • Puppet  3.0  –  Speed  and  Scalability       5 +100%   2.7x Speed-up  
  • Puppet  3.0  –  Hiera  func7ons  +  data   bindings   •  Hiera:  hierarchical  key-­‐value  store   •  Keeps  site-­‐specific  data  out  of  Puppet  code   •  Parameter  values  are  now  automa7cally   looked  up  in  Hiera   •  Hiera  func7ons  in  core  give  7ghter  integra7on   6
  • Puppet  3.0  –  Hiera  Example   node ”ntp.example.com" { class { "ntp": servers => [ '0.us.pool.ntp.org '1.us.pool.ntp.org '2.us.pool.ntp.org '3.us.pool.ntp.org autoupdate => false, restrict => false, enable => true, } } 7 iburst’, iburst', iburst', iburst'],
  • Puppet  3.0  –  Hiera  Example   { "ntp::restrict" : false, "ntp::autoupdate" : false, "ntp::enable" : true, "ntp::servers" : [ "0.us.pool.ntp.org iburst", "1.us.pool.ntp.org iburst", "2.us.pool.ntp.org iburst", "3.us.pool.ntp.org iburst" ] } 8
  • Puppet  3.0  –  Hiera  Example   node "ntp.example.com" { include ntp } 9
  • PuppetDB   •  Fast,  durable  data  storage  for  data  generated   by  Puppet,  including:   –  Facts   –  Catalogs   –  Reports   –  Exported  resources   •  Replaces  exis7ng  libraries  (including   storeconfigs  and  the  old  Inventory  Service   backend),  is  much  faster  &  more  reliable   10
  • PuppetDB  -­‐  Technology   •  Based  on  PostgreSQL:  reliable,  ba9le-­‐tested   •  Wri9en  in  Clojure:  fast,  mul7-­‐core   •  Based  on  the  JVM:  can  be  shipped  as  a  JAR   11
  • PuppetDB  -­‐  Technology   •  •  •  •  12 Thousands  of  PuppetDB  deployments   Hundreds  of  threads  per  install   Zero  deadlocks   Zero  bugs  involving  state  
  • PuppetDB  –  Query  Syntax  and  APIs   •  AST-­‐based  query  syntax   ["and", ["=", "type", "User”], ["=", "title", ”max"]] ["and", ["=”,["fact", "operatingsystem"], "Debian"], ["<”,["fact", "uptime_seconds"], 10000]] •  API  for  defining  your  own  query  syntax   –  Erik  Dalén,  Spo7fy:   h9ps://github.com/dalen/puppet-­‐puppetdbquery   •  Rich  APIs  make  it  easy  to  build  your  own  tools  to   consume  Puppet  data   13
  • PuppetDB  –  Event  Inspector   14
  • PuppetDB  -­‐  Puppetboard   h9ps://github.com/nedap/puppetboard     15
  • PuppetDB  -­‐  Metrics   16
  • MCollec7ve   A  powerful  orchestra7on  engine   17
  • Mcollec7ve  -­‐  Subcollec7ves   $ mco inventory --list-collectives * [ ==================================== ] 52 / 52 Collective ========== za_collective us_collective uk_collective de_collective eu_collective mcollective Nodes ===== 2 7 19 24 45 52 Total nodes: 52 18
  • Mcollec7ve  –  Pluggable  Discovery   •  Query  a  file:   $ mco rpc service restart service=httpd --nodes=hosts.txt •  Discover  using  PuppetDB:   $ mco rpc service restart service=httpd W country=uk --dm=puppetdb •  Direct  addressing:   $ mco rpc rpcutil ping –I example.com 19
  • MCollec7ve  –  Ruby  Integra7on   c = rpcclient("service") c.discover :nodes => File.readline("hosts.txt").map {|i| i.chomp} printrpc c.restart(:service => "httpd") 20
  • Geppe9o   •  •  •  •  21 IDE  for  developing  Puppet  modules  &  code   Integrates  with  git  &  SVN   Linux,  OS  X  &  Windows   Debug  your  Puppet  modules  as  you  develop   them,  and  publish  directly  to  the  Puppet  Forge  
  • Puppet  Forge   •  •  •  •  •  22 Puppet  Labs’  module  repository   1,500+  community-­‐contributed  modules   Improved  search   Team  of  module  engineers   Standards  &  best  prac7ces  
  • Taking  you  to  the  next  level  of…   •  •  •  •  •  •  •  23 Speed   Scalability   Extensibility   Reliability   Flexibility   Agility   Community