結構「障害対応ハウツー」みたいなのはググればいくらでも記事が出てくるけどここに言及してる記事が案外少ないなあと思ってどうしても書きたくなりました.
新人でもすぐできるからぜひ覚えてもらいたくて「新人プログラマ応援」のタグも付けました.
一番最初にやるべきことは全体への周知
監視ツールの通知によってとか, 誰かに「このページ見れなくなってるよ」って教えてもらうとか,
何らかの手段によってエンジニアが障害の発生に気づいたとき, 一番始めにやることは全体への周知だと思っています.
「一番始めに」
一番始めにというのは, まさに何を差し置いても一番始めにということです.
障害に気づいたエンジニアはつい
「どこのページだ」
「レスポンスタイム10秒って出てるけどホントかよ試しに俺もアクセスしてみよう」
「さっきのデプロイが原因じゃねえか?」
などと口走りがちですが, これらの気持ちをグッと堪えてまずは周知に意識を向けるべきです.
「全体への」
「できるだけ全体への」と言い換えてもいいかもしれません.
小さい会社なら社員全員宛のメーリングリストとかSlackチャンネルへ投稿していいと思います.
多少規模が大きいなら部署全員宛のメーリングリストかSlackチャンネルへ投稿するという判断になるでしょう.
この辺は会社の規模とか組織・チームの事情によっても違いそうです.
ただ, ここで大事だと思っているのは, あらゆる関係者全員に周知しようとしないということです.
あらゆる関係者全員への周知となると, 部署外や社外の人も含まれてしまい,
気軽に素早く連絡できる手段がまとまっていなかったり, そもそも存在しなかったりするため, 関係者を網羅しようとすると時間がかかりすぎます.
例えば, 「取引先への連絡などは担当の営業さんから連絡してくれればいい」とか, エンジニアが連絡しなくても連絡を任せられる人はいるはずなので,
エンジニアが連絡に努力を要するような関係者への連絡は誰かに任せてしまいましょう.
逆に, 上記のように連絡を任せたりしたいという事情があるので,
間違ってもエンジニアだけが入っているチャンネルへの周知にとどめてはいけません.
できるだけ多くの人に素早く障害がおきていることを伝えましょう.
「周知」
このタイミングでは速報なので,
「障害がおきているかもしれない」
「今から対応を開始する」
ということだけ伝えるようにしましょう.
上のほうでも書きましたが, 具体的にどこの障害かとか, 原因がどうとか,
なんなら本当に障害が発生しているかどうかすらもこのタイミングでは伝える必要は無いと思います.
自分は普段はSlackの部署全員が入っているチャンネルで
@channel 障害がおきているようです. 今から対応します.
とだけ投稿するようにしています.
これを徹底すると何がうれしいのか
- 誰も障害気づいてないんじゃね?という不安を払拭できる
- 誰も対応開始してないんじゃね?という不安を払拭できる
- カスタマーサポートとか営業とかが「障害発生しててすいません」って謝る身構えができる
- その他諸々
まとめ
基本的にはよく言う「悪いことは早めに, 良いことは遅れて報告する」というのをちゃんとやるだけだと思います.
すごく普通のことを言った記事になってしまいましたが, 障害は頻繁に発生するものでもないですし,
いざ障害発生となったら案外ここに書いたことをちゃんと素早くやる人は少ないんじゃないか?と思っています.
障害自体つらいものなのに, この記事に書いたようなことを怠ったおかげで障害の被害が拡大するようなことがあったら目も当てられません.
緊急事態だからこそ細かいことに気をつけられるのが良い対応なんじゃないかなーと思っています.