本記事では、個人やチームがうまくインシデントを管理するための秘訣について簡単にまとめます。
なお、サービスの運用として定められている個々のインシデントフロー(対応手順、連絡網など)や、その管理を目的とした専用のツールについては言及しません。
インシデント管理とは、何か?
インシデント管理の目的は、業務への影響を最小限に抑えるための業務復旧です。
できるだけ早く暫定対応を実現することをゴールとし、関係者はそれに全力を尽くします。
インシデント管理とは、何ではないか?
インシデント管理の目的は、恒久対策ではありません。
下記のような達成目標は、問題管理として分けて実施すべきものです。
- インシデントとなった原因の追究と対策
- エラーに基づくインシデントの再発防止
- 予防的な問題管理の実施
インシデントの解決のためには、何をすべきか?
大規模なインシデントの場合は、担当者が一人で解決することは困難です。
解決に必要なのは、情報の共有と役割分担です。
・・・このフレーズ、どこかで聞いたことがある人も居るかもしれません。
実は、これはリアル脱出ゲームの脱出成功の秘訣と同じです。
そう、インシデントの解決は、関係者が力を合わせて一刻も早くインシデントから脱出するゲームなのです。そう考えると、なんだか楽しくなってきませんか?
情報の共有
大規模なインシデントの検出後にまず必要なのは、なるべく関係者みんなで課題のありようを書き出すことです。
関係者が集まり、各自がもっている情報(事実)を整理して可視化します。
そうすると、現時点で「分かっていること」と「分かっていないこと」を分けることができます。
それをすることで、暫定対応としての解決策がすぐに見つかる可能性があります。
すぐに解決はできなくても、解決のために目指す方向性についての認識を揃えることはできるでしょう。
事実の整理のためには、エンジニアなら知っておきたい障害報告&再発防止策の考え方で紹介されている、障害報告のフォーマットについてが参考になります。まずは障害内容サマリとカスタマーフィードバックを整理しましょう。
最新の状況をリアルタイムに共有する
最新の状況を関係者がキャッチできるようにしましょう。そのために、対応開始や対応完了のタイミングで、障害タイムラインや対応差分を更新するようにしましょう。
ここで一つ、最新の状況をリアルタイムにうまく共有してインシデントに取り組んでいた、象徴的な事例を紹介します。それは、2017年にGitLab.comが引き起こした本番データベースの喪失という事故への対応です。
なんと、この事故対応では、担当のエンジニアが集まって障害復旧に取り組んでいる様子を、YouTubeを通して全世界にストリーミング公開していました。
この事例のように全世界に公開するというのは極端ですが、関係者はリアルタイムな情報共有の重要性を理解していたのでしょう。同じように、Slackなどのテキストベースでのコミュニケーションツールだけではなく、ビデオ会議ツールなども併用すると、スムーズな解決につながるでしょう。
定時報告をする
情報共有をおこなうべき相手は、直接障害復旧に取り組んでいる関係者のみではありません。
障害タイムラインをもとに、サービスの利用者に対してインシデントへの対応状況を定期的に報告します。その内容には、下記の内容を盛り込むとよいでしょう。
- 現在の進捗報告
- 次回定時報告の予定日時(緊急度にも依りますが、1~3時間後程度を目安に)
このとき、もし前回の定時報告から目立った進捗がなかったとしても、報告を省略してはいけません。引き続き対応中であることを報告し、次回の報告日時を予告しましょう。
これを実施することで、サービスの利用者も状況を理解できるため、不安感を下げることができます。言い換えると、インシデントの解決に取り組んでいる担当者を外部の騒音から守り、作業に集中できる環境を作ることにもつながります。
役割分担
情報の共有ができたら、次に必要なのは役割分担です。一般的には、下記の4つの役割が必要とされているようです。
- 司令塔:インシデントの全容を把握し、全体を統括する役割
- 調査・復旧役:問題に対しての技術的な調査および復旧をする役割
- 外部通信役:ユーザとのコミュニケーション(ヒアリングや定時報告)をする役割
- 記録役:調査や復旧の作業内容を記録し、現状の問題を継続的に観察する役割
必ずしも4人以上の担当者が必要であるというわけではない(あまり関係者が多くなりすぎると、今度は情報共有のコストが高くなる)ですが、最低でも3名以上で対応することが一般的であるようです。
詳細は、以下の記事が詳しいです。
まとめ
- インシデント管理の目的は、業務への影響を最小限に抑えるための業務復旧である。まずは暫定対応の実現を目指す
- 大規模なインシデントでは、情報の共有と役割分担が重要である
- 情報の共有には「障害内容サマリ」「カスタマーフィードバック」「障害タイムライン」などの適したフォーマットがある
- 役割分担には「司令塔」「調査・復旧役」「外部通信役」「記録役」の4つが必要である
その他の関連記事
本記事は、本文中で引用した以外にも、以下の記事を参考にして書かれました。