John Britton of GitHub on Ops for Everyone at DevCon Summit 2013 #MobileDevNBeyond

1,593 views

Published on

Published in: Career, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,593
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

John Britton of GitHub on Ops for Everyone at DevCon Summit 2013 #MobileDevNBeyond

  1. 1. OPS FOR EVERYONE
  2. 2.  johndbrion
  3. 3. I THOUGHT OPS WAS JUST FOR NECKBEARDS I WAS WRONG
  4. 4. FIRST PRINCIPLES:
  5. 5. COLLABORATION
  6. 6. AUTOMATION
  7. 7. EXPERIMENTATION
  8. 8. DISTRIBUT-ATION?
  9. 9. HOW DO WE DO IT?
  10. 10. BOXEN
  11. 11. HUBOT
  12. 12. BOXEN
  13. 13. ELIMINATE FRICTION BOXEN MAKES IT POSSIBLE TO BUILD SOMETHING MEANINGFUL ON DAY ONE
  14. 14. DAY ONE
  15. 15. INSTALL XCODE COMMAND LINE TOOLS
  16. 16. $ curl -s https://example.com/script/boxen.sh > /tmp/ install-boxen; bash /tmp/install-boxen | sh
  17. 17.  GRAB A BEVERAGE
  18. 18. HOMEBREW, GIT, GCC, .DEV DNS, NGINX, RBENV, RUBY-BUILD, MANY RUBIES, NODENV, MANY NODES, HEROKU TOOLCHAIN, HUB, MYSQL, POSTGRESQL, ELASTICSEARCH, RIAK, JAVA
  19. 19. $ boxen github
  20. 20. YOU’VE GOT GITHUB, NOW GO WRITE SOME CODE
  21. 21. PROJECT MANIFEST
  22. 22. 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'     ]   } }
  23. 23. PERSONAL MANIFEST
  24. 24. 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':
  25. 25. 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';
  26. 26. 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
  27. 27. 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"
  28. 28. 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"
  29. 29. 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
  30. 30. $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 }
  31. 31. IT’S JUST PUPPET, FOR YOUR MAC
  32. 32. HUBOT
  33. 33. SHARE THE TERMINAL HUBOT MAKES IT POSSIBLE TO TEST, SHIP, AND MEASURE EVERYTHING
  34. 34. CHATOPS
  35. 35. NOBODY CAN SEE WHAT COMMANDS ARE RUN ON THE TERMINAL
  36. 36. IT’S HARD FOR NEW HIRES TO FIGURE OUT HOW TO DEPLOY
  37. 37. THINK OF CHAT AS A SHARED COMMAND LINE
  38. 38. CHATOPS SURFACES OPERATIONS THAT WOULD OTHERWISE BE INVISIBLE
  39. 39. NEWCOMERS LEARN BY WATCHING EXPERIENCED USERS
  40. 40. TEST
  41. 41. /CI BUILD
  42. 42. SHIP
  43. 43. /CONFIG
  44. 44. /DEPLOY
  45. 45. /HOSTS
  46. 46. /PUPPET RUN
  47. 47. MEASURE
  48. 48. /GRAPH ME
  49. 49. FUN COMMANDS
  50. 50. /WHERE IS
  51. 51. /FITBIT ME
  52. 52. /NEW HIRE ME
  53. 53. /ANIMATE ME
  54. 54.  johndbrion

×