Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ChatOps: How GitHub Manages MySQL

ChatOps: How GitHub Manages MySQL

Talk given at Percona Live Worldwide MySQL Conference http://www.percona.com/live/mysql-conference-2014/

Be9caeb9d4ef9944d151af909063ed6e?s=128

Sam Lambert

April 03, 2014
Tweet

Transcript

  1. Chatops: How GitHub Manages MySQL

  2. @samlambert @isamlambert samlambert.com ! " #

  3. what is GitHub?

  4. 4m users 10m repositories GitHub.com

  5. who are GitHub?

  6. San Francisco

  7. 245 people 144 remote

  8. build

  9. ship

  10. major changes and features weekly

  11. whenever wherever

  12. communication

  13. where?

  14. 150+ chat rooms

  15. what?

  16. 900+

  17. /ci

  18. /puppet

  19. /deploy

  20. /queue

  21. /graph me

  22. /nagios

  23. None
  24. /drac me

  25. None
  26. /remote

  27. None
  28. None
  29. /hq me

  30. None
  31. /where is

  32. /pug bomb

  33. development flow

  34. samlambert pushed 2 commits to shell/branch - shell command -

    define pid file
  35. samlambert pushed 2 commits to shell/branch - shell command -

    define pid file Build #1132212 (9cf41ef) of shell/branch failed - 1 failure (66s)
  36. samlambert pushed 2 commits to shell/branch - shell command -

    define pid file Build #1132212 (9cf41ef) of shell/branch failed - 1 failure (66s) samlambert pushed 1 commit to shell/branch - i done messed up
  37. samlambert pushed 2 commits to shell/branch - shell command -

    define pid file Build #1132222 (818dd29) of shell/branch was successful (6s) Build #1132212 (9cf41ef) of shell/branch failed - 1 failure (66s) samlambert pushed 1 commit to shell/branch - i done messed up
  38. /deploy shell/branch to production samlambert is deploying shell/branch (b6320b0..cc1k2d6) to

    production
  39. /graph me -15min @some_metric

  40. /deploy shell to production samlambert is deploying shell/master (b6320b0..cc1k2d6) to

    production
  41. why?

  42. context

  43. teamwork

  44. None
  45. None
  46. challenges

  47. help people care

  48. automation

  49. safe

  50. painless

  51. easy

  52. /mysql

  53. /mysql backup /mysql backup-list /mysql clone /mysql cluster /mysql digest

    /mysql digest-collect /mysql digest-detail /mysql digest-issue /mysql drop /mysql drop-check /mysql drop-list /mysql engine /mysql explain /mysql gather /mysql inno /mysql kill /mysql kills /mysql nibble /mysql panic /mysql processlist /mysql restore /mysql table /mysql tables /mysql trigger /mysql truncate
  54. /mysql explain

  55. None
  56. /mysql profile

  57. None
  58. /mysql truncate

  59. None
  60. None
  61. /mysql nibble

  62. /mysql nibble

  63. /mysql drop

  64. backups

  65. safehold

  66. /mysql backup

  67. None
  68. /mysql backup-list

  69. None
  70. /mysql restore

  71. None
  72. /mysql clone

  73. /mysql panic

  74. /mysql migrate

  75. /mysql processlist

  76. /mysql gather

  77. None
  78. None
  79. None
  80. None
  81. None
  82. None
  83. None
  84. None
  85. None
  86. github.com/samlambert/pt-online-schema-change-analyze

  87. /mysqlproxy

  88. /mysqlproxy status

  89. /mysqlproxy weight

  90. /mysqlproxy disable

  91. /mysqlproxy enable

  92. why?

  93. things go wrong

  94. /status yellow We are experiencing problems

  95. ops on the move

  96. /mitigate

  97. how?

  98. hubot

  99. hubot.github.com

  100. node.js ! coffeescript

  101. Campfire Hipchat IRC Twitter Twilio iMessage Gtalk Skype Slack XMPP

    + more
  102. hosting

  103. scripts

  104. None
  105. wrapper

  106. shell

  107. community scripts

  108. janky

  109. heaven

  110. github.com/github/hubot-scripts

  111. github.com/samlambert/hubot-mysql-chatops

  112. 5.5

  113. None
  114. What’s next?

  115. Questions?

  116. @samlambert @isamlambert samlambert.com " # !