いわゆる「インシデント対応フロー」が整備されてる組織は多いはず。今所属している会社でもそうで、第一発見から暫定対応・恒久対応、何ならポストモーテムの実施も含めて手順が明文化されている。
一方で「対応フローを発動するか」の基準についてはどうだろうか。要はインシデントの定義とは?という話。
調べてみると、いろいろな人がいろいろな定義をしているように感じる。絶対的な正解はなく流派のようなものがあるような印象。その中で自分は次のように定義している:
ソフトウェアにまつわるインシデント = ソフトウェアが意図しない動作をしている状態
これに従うと、例えばこのようなものがインシデントに当てはまる:
例外処理が甘く、特定の操作をしたことでエラーを起こしてしまい 500 ページに遷移した。
リクエストのスパイクや悪意ある DDoS 攻撃に耐えられず、レイテンシーが急激に悪化した。
ユーザーが注意書きに従わず操作を誤り、郵便番号の欄に電話番号を入力してしまった。
三つ目についてはソフトウェア起因かというとやや怪しく、人によってはインシデントとして扱わないかと思う。ただ僕は、こういうものもインシデントとして扱うようにしている。とりあえずは影響を把握して、緊急度の判断をして、…のような、いつものインシデント対応。
「あれ、これってインシデントに該当するっけ?」と悩むくらいなら、とりあえずインシデントとして扱ってしまえばいいのでは?という話。