この記事はHacobu Advent Calendar 2024の13日目の記事です。
はじめに
2023年2月に株式会社Hacobuへ入社して、「MOVO Vista」というプロダクトのQAエンジニアを担当している村上です。
今回はDiRTというアクティビティを取り入れ、障害に備えた訓練を行ったので興味あれば読んでみてください!
DiRTとは
DiRTは 「Disaster in Recovery Training」の略。
障害対応訓練と捉えてもらえれば大丈夫です。
意図的にシステムに障害を起こし、対応者がいかに早く障害を復旧させるかのプロセスを学習するプログラムとなっています。
取り組んだ背景
Hacobuのサービスは下記記事にもありますが高い品質を保ち続けています。
それ故に本番障害の機会が少なく、インシデント対応のフローは存在するが実践したことのある人は少ないです。
このままではいざ本番障害が発生した時に、普段対応しているメンバーが不在だと対応や意思決定をすることができず復旧に時間を要してしまうと危機感を感じ、DiRTを取り入れました。
やったこと
今回は障害の直接的な対応よりも障害時のフローに注力したいため、本番障害が発生した体でDiRTに取り組みました。
【DiRT準備~実施の流れ】
事前準備
- チーム分け(人数が多いため2チームに分けています)
- シナリオ作成(今回は2パターンのケースを作成しました)
- インシデントリーダー(PdM/EM)がいるときに障害が発生し、インシデントになるケース
- インシデントリーダー(PdM/EM)の不在時に障害が発生し、インシデントになるケース
DiRT実施
- チーム、シナリオを割り振る
- 下記の役割を担当する人を決める
- 演習記録係 :DiRTの様子を第三者目線で記録する人
- 本番障害検知者 :最初に障害を発見する人
- インシデントリーダー:インシデント時の判断、旗振り等する人
- インシデントログ記録:インシデントの作業、時間のログを取る人
- 障害対応エンジニア :原因追及、修正対応する人
- シナリオに沿って実施
DiRTふりかえり
- 演習記録係が記録した内容を見返し、良かったところイマイチだったところをみんなでふりかえる
取り組んだ結果
- インシデントリーダーの不在時のケースだと、旗振り、判断がなかなかできずに困っていた
- 緊急時の判断に迷わないように、こういう時はこうすればいいよがわかるフローチャートも作成
- 普段対応してくれているとそうでない人で判断、行動の速度が明らかに異なっていた
- インシデント対応は属人化しやすいよなーと思ったのと同時に、教える機会もあまりないのでDiRTいいなと感じた
- 1から準備~実施までやってみたが、避難訓練の大切さを改めて感じた(次に避難訓練の機会があったら真面目にやろ…)
さいごに
メンバーからも「インシデントのフローを事前に知っておける良い機会になった」、「自分ごととしてインシデントに対して意識することができた」などやってよかったの声を聞いています。
問題が発生した時はできる人だけが対応するのではなく、みんなで解決していけるチームにしていきたいです。
また今回はフローだけの訓練でしたが、例えばQAの検証中に障害が見つかったらそれ起点でDiRTを開始しても面白そうだなーと思いました。(急に来るのでより緊張感がでそう)
本番障害時や緊急時に対して不安や懸念がある方はぜひDiRTを取り入れてみてはいかがでしょうか?