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

All those bots are gonna steal your job

All those bots are gonna steal your job

This is not about consumer bots, this is about dev bots.

A talk I gave at TakeoffConf and Kikk.

F17e757902ab6a18cba1bacaa976eb0f?s=128

Yannick Schutz

October 20, 2016
Tweet

More Decks by Yannick Schutz

Other Decks in Technology

Transcript

  1. All those bots Are gonna steal your job

  2. All those bots Are gonna steal your job

  3. How I built a 2m height Duplo tower

  4. None
  5. None
  6. All those bots Are gonna steal your job

  7. Yannick Internal tools engineer

  8. None
  9. Chatops

  10. Conversation Driven Development - Automation - Visibility - Collaboration -

    Security
  11. Automation

  12. Examples: - Page users - Deploy your apps - Run

    scripts across your servers
  13. Visibility

  14. Examples: - GitHub flow in chat - Bug tracking notifications

    - CI server status
  15. Collaboration

  16. Examples: - Update incidents notes - Approve changes - Comment

    what other are doing
  17. Security

  18. Examples: - 2fa the important changes - People see what

    you are doing - Chat knows who you are
  19. Chatops at Heroku

  20. A play in 3 acts - The past - The

    present - The future
  21. The past

  22. The sentinel era

  23. - Many bots, no cohesion - A custom ruby bot

    for Paging - A small new team to manage it
  24. Heimdall, yet another hubot

  25. - One bot to rule them all - Coffeescript all

    the things - Trying to leverage the community
  26. Issues and learnings

  27. - No strong practices of Node testing - The brain

    is just a blob - Custom code and no reuse - Abusing the hubot purpose
  28. It was still the best choice!

  29. The present

  30. Rails apps

  31. - A team that does Rails - Less Hubot, more

    Slack integrations - Strong practices around testing and building
  32. Using slack /commands

  33. - Dependency on Slack - Using slash commands for all

    the things - No real-time or event loop
  34. Current apps

  35. Paging and alerting

  36. # Tools-ops bot page @yannick This is fine Paged Yannick

    Schutz: Incident PIHXOC6 Alice 10:13 AM Bot 10:14 AM 42
  37. # Tools-ops 42 #tools Incident PVL9JK3 Your apps are on

    fire Bot 10:14 AM
  38. bot resolve PIHXOC6 Incident PIHXOC6 resolved # Tools-ops 42 Yannick

    10:13 AM Bot 10:14 AM
  39. Deployments

  40. bot deploy api/new_auth to production 023941 # Tools-ops 42 you

    are deploying api/new_auth to production Alice 10:13 AM Bot 10:14 AM
  41. Notifications

  42. Faraday::ClientError: the server responded with status 409 from faraday/response/raise_error.rb:13:in `on_complete'

    from faraday/response.rb:9:in `block in call' from faraday/response.rb:57:in `on_complete' from faraday/response.rb:8:in `call' from faraday/adapter/net_http.rb:56:in `call' from faraday/request/authorization.rb:38:in `call' # Tools-ops 42 #654 - API ➤ Faraday::RateLimitError Bot 10:14 AM
  43. HerokuCI built 17ab7962 # Tools-ops 42 Beeper build of master

    was successful. Details Bot 10:14 AM
  44. # Tools-ops 42 [Beeper] The branch lol was deleted by

    ys Bot 10:14 AM
  45. Not in chat!

  46. Out of date dependencies Your brand new PR #50 Details

    ys wants to merge 2 commits into master from new-pr OPEN
  47. Your brand new PR #50 ys wants to merge 2

    commits into master from new-pr OPEN Method length is too long Details
  48. Important

  49. - Act on behalf of the user - Refresh the

    tokens - Have a simple syntax - Have fun GIF integration
  50. The future

  51. More automation

  52. - Full incident handling - Project Management - GitHub repo

    management
  53. bot open new incident Trouble with git push Alice 10:13

    AM # Tools-ops 42 Done https://status.heroku.com/git_push_issue Bot 10:14 AM
  54. # Tools-ops 42 bot merge beeper/new_auth Alice 10:13 AM PR

    has been merged and deployed to staging Bot 10:14 AM
  55. More visibility

  56. - Use the buttons - Smarter notifications - Reduce the

    noise per team
  57. Acknowledge Resolve Escalate # Tools-ops 42 New incident PIHXOC6: Latency

    is too high Bot 10:14 AM
  58. AWS is experiencing issues in us-east-1 … # Tools-ops 42

    GitHub is down right now Bot 10:14 AM
  59. Deployment of beeper to staging succeeded Deployment of beeper to

    production succeeded # Tools-ops 42 bot show me only production events Alice 10:13 AM Bot 10:14 AM
  60. More collaboration

  61. - Change control from chat - Accurate view of the

    platform - Escalate pages from chat
  62. bot approve changes to beeper/new_readme Changes approved New PR beeper/new_readme

    # Tools-ops 42 Bot 10:14 AM Bot 10:14 AM Alice 10:13 AM
  63. bot escalate to @ys, I need some help Paged Yannick

    Schutz New incident PIHXOC6: Everything is on Bot 10:14 AM Bot 10:14 AM Alice 10:13 AM # Tools-ops 42
  64. More security

  65. - 2fa through a click on your phone - Gate

    critical actions - Better auditing of all actions
  66. Alice 10:13 AM you are deploying api/new_auth to production Bot

    10:14 AM bot deploy api/new_auth to production Approve # Tools-ops 42
  67. Not in chat?

  68. - Build equivalent CLI experience - Expose actions in WebUI

    - PhoneOps - Better commit statuses alerts
  69. Bot 10:14 AM deploy api/new_auth to production # Tools-ops 42

    you are deploying api/new_auth to production
  70. Bot 10:14 AM # Tools-ops 42 you are deploying api/new_auth

    to production deploy api new_auth▾ to production▾ ▾
  71. NPM packages out of date Golang packages out of date

    Add some tests here? Where is the documentation? A PR with no description Your brand new PR #50 ys wants to merge 2 commits into master from new-pr OPEN Details
  72. TL;DR

  73. Hubot must be a dumb client

  74. We Rails slack apps

  75. Being locked in slack is OK for us

  76. The information where it needs to be

  77. Thanks any questions?

  78. @yann_ck @ys

  79. Emoji provided free by EmojiOne* * http://emojione.com/