Slack과 Cloud Functions로 신속하게 장애의 초동 대응

갑자기 장애가 발생하면 무엇을 해야할지 당황하지 않습니까?
이번에 그것을 해결하기 위해서, 1 액션으로 장해의 초동 대응을 하는 slash command를 만들었습니다.

개요



장애 대응의 초동을 가속화하기 위해
  • Slack에서/hoge로 치다
  • 채널 생성
  • 팀 구성원이 invitate
  • 작업 목록이 게시됨

  • 라는 구조를 준비했습니다.

    위의 예는 아무도없는 공간에서 테스트하고 있습니다.
    스페이스에 멤버가 있을 때 Slack App의 응답은 이렇게 채널 이름과 초대한 멤버가 출력됩니다.


    환경


  • serverless 1.37.1
  • Node.js 8
  • Google Cloud Functions
  • Slack

  • 배경



    장애 대응 시
  • 갑작스런 경고에 무엇을해야할지 모르겠다
  • 팀의 누가 어떤 대응을하고 있는지 모른다
  • 베테랑 1명 밖에 대응할 수 없기 때문에 시간이 걸린다
  • 팀 외부에서 작업 상태를 볼 수 없음
  • 내부 위키에서 상황을 정리하고 있지만 실시간 성이 낮음

  • 그런 일이 있다고 생각합니다.

    개념



    경고 검지 후, 다음과 같은 것을 목표로 합니다.
  • 신속한 장애 초기화
  • 팀원의 숙련도에 관계없이 모든 사람이 장애를 겪을 수 있습니다.
    작업 목록을 표시하면 갑작스런 장애에도 최소한 무엇을해야할지 알 수 있습니다
  • 작업 상태 열기
    공개 채널을 만들면 보고 싶은 사람이 정보를 볼 수 있습니다.
    slack의 반응으로 무엇을하고 있는지 알기
  • 작업 상태를 실시간으로 확인

  • 어디까지나 초동을 위한 구조입니다. 경고 유형에 따라 조사 수단이 달라집니다.
    태스크 리스트는 팀마다 적절히 갱신해 나가는 가정입니다.

    메커니즘



    Slack과 Google Cloud Functions를 사용하여 개요의 메커니즘을 구축했습니다.
    프레임워크는 Serverless를 사용했습니다.

  • slash commands에서 Cloud Functions의 HTTP 트리거를 두드립니다.
  • slash command는 3초의 타임 아웃이 있으므로 우선은 리스폰스를 돌려줍니다.
  • 비동기로 Slack API를 두드립니다.
  • Slack API의 결과를 가져옵니다.
  • API 호출의 결과를 response_url에 POST합니다.

  • 채널 이름의 prefix, 초대할 사용자, 작업 목록은 yaml 형식의 구성 파일에 씁니다.
    채널명은 설정 파일의 prefix와 시각의 suffx가 맞추어 만들어집니다.
    (장애 대응을 상정하여 만들었으므로, 채널명을 일람했을 때 알 수 있도록 시각을 넣어 보았습니다.)

    출처



    요약



    회원의 숙련도에 관계없이 팀 전체에서 투명한 장애 대응을 하십시오.

    이번 열거한 예는 어디까지나 일례입니다.
    팀에 맞는 장애 대응책을 생각해 보는 것은 어떻습니까?

    참고



    htps // 아보 t. 기 t b. 코 m / 2017/02/10 / 포 st도 r로 m 오 f 다타 세이 - 오타게 - 오 f 아냐 ry-31 /
    GitLab의 데이터베이스 사건은 기억에 새 것입니다.
    YouTube 게재 및 GoogleDocs를 통해 외부 상황에 대응 상황을 공개하는 것은 어려울 수 있지만,
    관계 부서 등 적절한 범위에서 오픈으로 할 수 있으면 좋네요.

    좋은 웹페이지 즐겨찾기