Ops for everyone - John Britton
Upcoming SlideShare
Loading in...5
×
 

Ops for everyone - John Britton

on

  • 1,674 views

 

Statistics

Views

Total Views
1,674
Views on SlideShare
1,674
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

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

Ops for everyone - John Britton Ops for everyone - John Britton Presentation Transcript

  • OPS FOR EVERYONE
  •  johndbrion
  • I THOUGHT OPS WAS JUST FOR NECKBEARDS I WAS WRONG
  • FIRST PRINCIPLES:
  • COLLABORATION
  • AUTOMATION
  • EXPERIMENTATION
  • DISTRIBUT-ATION?
  • HOW DO WE DO IT?
  • BOXEN
  • HUBOT
  • BOXEN
  • ELIMINATE FRICTION BOXEN MAKES IT POSSIBLE TO BUILD SOMETHING MEANINGFUL ON DAY ONE
  • DAY ONE
  • INSTALL XCODE COMMAND LINE TOOLS
  • $ curl -s https://example.com/script/boxen.sh > /tmp/ install-boxen; bash /tmp/install-boxen | sh
  •  GRAB A BEVERAGE
  • HOMEBREW, GIT, GCC, .DEV DNS, NGINX, RBENV, RUBY-BUILD, MANY RUBIES, NODENV, MANY NODES, HEROKU TOOLCHAIN, HUB, MYSQL, POSTGRESQL, ELASTICSEARCH, RIAK, JAVA
  • $ boxen github
  • YOU’VE GOT GITHUB, NOW GO WRITE SOME CODE
  • PROJECT MANIFEST
  • class projects::education-web {   github::project { 'education-web':     dotenv => true,     elasticsearch => true,     redis => true,     ruby => '1.9.3-p231-tcs-github',     postgresql => [       'education_web_development',       'education_web_test'     ]   } }
  • PERSONAL MANIFEST
  • class people::johndbritton {   # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom   # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc   package { 'Bartender':
  • class people::johndbritton {   # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom   # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc   package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip';
  • include include include include include include include osx::dock::autohide osx::dock::clear_dock osx::dock::disable osx::finder::unhide_library osx::global::enable_keyboard_control_access osx::software_update osx::universal_access::ctrl_mod_zoom   # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc   package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; }   # homebrew
  • include include include include include include include include include chrome dropbox firefox flux onepassword sequel_pro sublime_text_2 transmission vlc   package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; }   # homebrew package { ['grc', 'iftop', 'watch', 'wget']: }   # shell include zsh   $home $src $my $dotfiles = = = = "/Users/${::boxen_user}" "${::boxen_srcdir}" "${src}/johndbritton" "${my}/dotfiles"
  • provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; }   # homebrew package { ['grc', 'iftop', 'watch', 'wget']: }   # shell include zsh   $home $src $my $dotfiles = = = = "/Users/${::boxen_user}" "${::boxen_srcdir}" "${src}/johndbritton" "${my}/dotfiles"   # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] }   file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc"
  • source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; }   # homebrew package { ['grc', 'iftop', 'watch', 'wget']: }   # shell include zsh   $home $src $my $dotfiles = = = = "/Users/${::boxen_user}" "${::boxen_srcdir}" "${src}/johndbritton" "${my}/dotfiles"   # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] }   file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" }   # github projects include projects::education-web
  • $home $src $my $dotfiles = = = = "/Users/${::boxen_user}" "${::boxen_srcdir}" "${src}/johndbritton" "${my}/dotfiles"   # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] }   file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" }   # github projects include projects::education-web }
  • IT’S JUST PUPPET, FOR YOUR MAC
  • HUBOT
  • SHARE THE TERMINAL HUBOT MAKES IT POSSIBLE TO TEST, SHIP, AND MEASURE EVERYTHING
  • CHATOPS
  • NOBODY CAN SEE WHAT COMMANDS ARE RUN ON THE TERMINAL
  • IT’S HARD FOR NEW HIRES TO FIGURE OUT HOW TO DEPLOY
  • THINK OF CHAT AS A SHARED COMMAND LINE
  • CHATOPS SURFACES OPERATIONS THAT WOULD OTHERWISE BE INVISIBLE
  • NEWCOMERS LEARN BY WATCHING EXPERIENCED USERS
  • TEST
  • /CI BUILD
  • SHIP
  • /CONFIG
  • /DEPLOY
  • /HOSTS
  • /PUPPET RUN
  • MEASURE
  • /GRAPH ME
  • FUN COMMANDS
  • /WHERE IS
  • /FITBIT ME
  • /NEW HIRE ME
  • /ANIMATE ME
  •  johndbrion