Slide 1

Slide 1 text

OPS FOR EVERYONE

Slide 2

Slide 2 text

 johndbrion

Slide 3

Slide 3 text

I THOUGHT OPS WAS JUST FOR NECKBEARDS I WAS WRONG

Slide 4

Slide 4 text

FIRST PRINCIPLES:

Slide 5

Slide 5 text

COLLABORATION

Slide 6

Slide 6 text

AUTOMATION

Slide 7

Slide 7 text

EXPERIMENTATION

Slide 8

Slide 8 text

DISTRIBUT-ATION?

Slide 9

Slide 9 text

HOW DO WE DO IT?

Slide 10

Slide 10 text

BOXEN

Slide 11

Slide 11 text

HUBOT

Slide 12

Slide 12 text

BOXEN

Slide 13

Slide 13 text

ELIMINATE FRICTION BOXEN MAKES IT POSSIBLE TO BUILD SOMETHING MEANINGFUL ON DAY ONE

Slide 14

Slide 14 text

DAY ONE

Slide 15

Slide 15 text

INSTALL XCODE COMMAND LINE TOOLS

Slide 16

Slide 16 text

$ curl -s https://example.com/script/boxen.sh > /tmp/ install-boxen; bash /tmp/install-boxen | sh

Slide 17

Slide 17 text

 GRAB A BEVERAGE

Slide 18

Slide 18 text

HOMEBREW, GIT, GCC, .DEV DNS, NGINX, RBENV, RUBY-BUILD, MANY RUBIES, NODENV, MANY NODES, HEROKU TOOLCHAIN, HUB, MYSQL, POSTGRESQL, ELASTICSEARCH, RIAK, JAVA

Slide 19

Slide 19 text

$ boxen github

Slide 20

Slide 20 text

YOU’VE GOT GITHUB, NOW GO WRITE SOME CODE

Slide 21

Slide 21 text

PROJECT MANIFEST

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

PERSONAL MANIFEST

Slide 24

Slide 24 text

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':

Slide 25

Slide 25 text

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';

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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"

Slide 28

Slide 28 text

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"

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

$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 }

Slide 31

Slide 31 text

IT’S JUST PUPPET, FOR YOUR MAC

Slide 32

Slide 32 text

HUBOT

Slide 33

Slide 33 text

SHARE THE TERMINAL HUBOT MAKES IT POSSIBLE TO TEST, SHIP, AND MEASURE EVERYTHING

Slide 34

Slide 34 text

CHATOPS

Slide 35

Slide 35 text

NOBODY CAN SEE WHAT COMMANDS ARE RUN ON THE TERMINAL

Slide 36

Slide 36 text

IT’S HARD FOR NEW HIRES TO FIGURE OUT HOW TO DEPLOY

Slide 37

Slide 37 text

THINK OF CHAT AS A SHARED COMMAND LINE

Slide 38

Slide 38 text

CHATOPS SURFACES OPERATIONS THAT WOULD OTHERWISE BE INVISIBLE

Slide 39

Slide 39 text

NEWCOMERS LEARN BY WATCHING EXPERIENCED USERS

Slide 40

Slide 40 text

TEST

Slide 41

Slide 41 text

/CI BUILD

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

SHIP

Slide 45

Slide 45 text

/CONFIG

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

/DEPLOY

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

/HOSTS

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

/PUPPET RUN

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

MEASURE

Slide 55

Slide 55 text

/GRAPH ME

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

FUN COMMANDS

Slide 59

Slide 59 text

/WHERE IS

Slide 60

Slide 60 text

No content

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

/FITBIT ME

Slide 63

Slide 63 text

No content

Slide 64

Slide 64 text

/NEW HIRE ME

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

/ANIMATE ME

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

 johndbrion