ops for everyone - john britton

Post on 08-May-2015

1.816 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

OPS FOR EVERYONE

johndbrion

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 TOBUILD SOMETHING MEANINGFUL

ON DAY ONE

DAY ONE

INSTALL XCODECOMMAND 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

PROJECTMANIFEST

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'    ]  }}

PERSONALMANIFEST

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'; '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 = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${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}

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'; '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 = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${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}

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'; '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 = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${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}

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'; '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 = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${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}

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'; '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 = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${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}

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'; '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 = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${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}

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'; '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 = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${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 TOFIGURE OUT HOW TO DEPLOY

THINK OF CHAT AS A SHARED COMMAND LINE

CHATOPS SURFACES OPERATIONS THAT WOULD OTHERWISE BE INVISIBLE

NEWCOMERS LEARN BYWATCHING 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

johndbrion

top related