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

How we ship GitHub with GitHub -- ChatOps

Takafumi Ikeda
September 11, 2017

How we ship GitHub with GitHub -- ChatOps

Takafumi Ikeda

September 11, 2017
Tweet

More Decks by Takafumi Ikeda

Other Decks in Technology

Transcript

  1. How people build software
    !
    "
    How we ship GitHub
    with GitHub

    View Slide

  2. How people build software
    Who am I?
    2
    !
    a ikeike443

    View Slide

  3. How people build software
    $
    %
    TAKAFUMI IKEDA
    SOLUTIONS ENGINEER
    Who am I?
    3
    !

    View Slide

  4. How people build software
    νʔϜ։ൃ࣮ફೖ໳
    4
    !

    View Slide

  5. How people build software
    !
    Agenda
    5
    •What is GitHub
    •GitHub Flow & ChatOps
    •Examples of ChatOps at GitHub
    • Shipping
    • Incident management
    •The other stuff in ChatOps
    •Appendix
    •Q&A

    View Slide

  6. How people build software
    !
    6

    View Slide

  7. How people build software
    !
    GitHub
    7

    View Slide

  8. How people build software
    !
    GitHub is distributed
    8

    View Slide

  9. How people build software
    !
    9

    View Slide

  10. How people build software
    Tools&Flows
    10
    !
    •GitHub Flow
    •Hubot&Slack

    View Slide

  11. Create a Feature Branch

    View Slide

  12. Add commits

    View Slide

  13. Open a Pull Request

    View Slide

  14. Discuss and Review Code

    View Slide

  15. the best way to build and ship software
    Get CI status back in PR
    15
    !

    View Slide

  16. the best way to build and ship software
    Continuous Integration
    16
    !

    View Slide

  17. Ship

    View Slide

  18. How people build software
    !
    Golden Rule
    18
    • master is always stable.

    • Nothing should be merged into master before being deployed.

    • Whatever is deployed should always contain master.

    • If a deployed branch contains bad code, fix it by deploying master.

    View Slide

  19. Merge with master

    View Slide

  20. How people build software
    !
    20

    View Slide

  21. How people build software
    !
    21

    View Slide

  22. How people build software
    !
    Deployment
    22

    View Slide

  23. How people build software
    !
    23
    350

    View Slide

  24. How people build software
    !
    Step1 Where Can I Deploy?
    24

    View Slide

  25. How people build software
    !
    Step2 Queue me to deploy
    25

    View Slide

  26. How people build software
    !
    Step3 Deploy
    26

    View Slide

  27. How people build software
    !
    What if your branch is behind
    27

    View Slide

  28. How people build software
    !
    28
    There is no Step 3

    View Slide

  29. How people build software
    !
    Haystack
    29

    View Slide

  30. How people build software
    !
    GraphMe
    30

    View Slide

  31. the best way to build and ship software
    Get deployment status back in PR
    31
    !

    View Slide

  32. the best way to build and ship software
    Deployment API
    32
    !

    View Slide

  33. How people build software
    !
    Quick plug…
    33

    View Slide

  34. How people build software
    !
    Oh
    34
    !

    View Slide

  35. How people build software
    !
    Oh
    35
    !
    hubot ack 12345

    View Slide

  36. How people build software
    !
    Oh
    36
    !
    hubot ack 12345
    hubot graph me -1w @unicorn.listeners.github

    View Slide

  37. How people build software
    !
    Oh
    37
    !
    hubot ack 12345
    hubot graph me -1w @unicorn.listeners.github
    These unicorn listener warnings are going to cause problems soon and
    we're hurting for capacity right now

    View Slide

  38. How people build software
    !
    Oh
    38
    !
    hubot ack 12345

    View Slide

  39. How people build software
    !
    Oh
    39
    !
    hubot ack 12345
    hubot graph me -1w @unicorn.listeners.api.v.dotcom

    View Slide

  40. How people build software
    !
    Oh
    40
    !
    hubot ack 12345
    hubot graph me -1w @unicorn.listeners.api.v.dotcom
    Whatever it is, its doesn’t seem to be impacting the API.

    View Slide

  41. How people build software
    !
    Oh
    41
    !
    hubot graph me -1day @github.browser.response.times
    Hmm, looks like lots of requests to list repository issues and releases

    View Slide

  42. How people build software
    !
    Oh
    42
    !
    I’m going to add 10 more FEs until we figure this thing out.

    View Slide

  43. How people build software
    !
    Oh
    43
    !
    I’m going to add 10 more FEs until we figure this thing out.
    hubot gpanel host bulk-install app=github role=fe count=10

    View Slide

  44. How people build software
    !
    Oh
    44
    !
    I’m going to add 10 more FEs until we figure this thing out.
    hubot gpanel host bulk-install app=github role=fe count=10
    hubot graph me -1h @unicorn.listeners.api.v.dotcom

    View Slide

  45. How people build software
    ! 45
    !
    SHARED CONTEXT

    View Slide

  46. How people build software
    ! 46
    !
    KNOWLEDGE EXPERTS CAN
    EMPOWER EVERYONE

    View Slide

  47. How people build software
    % What’s more?
    47

    View Slide

  48. the best way to build and ship software
    Repo activity in the chat room
    48
    !

    View Slide

  49. the best way to build and ship software
    Chat room activity in Issues
    49
    !

    View Slide

  50. the best way to build and ship software
    Hubot has your back
    50
    !

    View Slide

  51. the best way to build and ship software
    Hubot has your back
    51
    !

    View Slide

  52. the best way to build and ship software
    Ask for graphs or logs
    52
    !

    View Slide

  53. How people build software
    Set up CI
    53
    !

    View Slide

  54. the best way to build and ship software
    Fun stuff
    54
    !

    View Slide

  55. How people build software 55
    !

    View Slide

  56. !

    View Slide

  57. the best way to build and ship software
    a github/scientist
    57
    !

    View Slide

  58. How people build software
    !
    Code refactoring with Scientist
    58

    View Slide

  59. How people build software
    !
    Code refactoring with Scientist
    59

    View Slide

  60. the best way to build and ship software
    a jnunemaker/flipper
    60
    !

    View Slide

  61. How people build software
    !
    Feature toggles
    61

    View Slide

  62. How people build software
    "
    !
    Thank you!

    View Slide

  63. !
    Questions?

    View Slide