教育におけるシステム障害体験

はじめまして、アドテクDivの呉です。
自社広告配信サービスを開発・運用する部署に所属しています。

アドテクDivのシニアエンジニア(3-5年目のエンジニア)を対象に教育目的で取り組んでいる施策(障害体験)を紹介します。

教育内容

システムでの障害が発生した場合等に目の付け所を養うための練習です。
現象把握->原因調査->対策の3段階で考えられるようにします。
表でまとめると、こんなところを大事にしています。

項目 内容
1 障害対応における全体像の把握 障害対応の優先度判断等
2 現象把握 正しく把握してるか
3 原因特定 原因不明の場合は仮説にもとづき障害原因を特定にしてるかどうか
4 対策 対応の適切さや丁寧さ
5 その他 成長のためのアドバイス、気になった点、etc..

課題の流れ

1dayかけて課題を実施します。

  • (30m)問題説明
  • (3h - 6h)障害体験
    • 教育担当が不定期的に障害再現させる
    • 教育者が適切に調査・対処する
  • (2h)発表会&FB会
    • (15m)対象者が発表
    • (30m)教育担当が黙々と評価記入
    • (30m)教育担当同士で認識合わせと総評をまとめる
    • (30m)対象者も含めFB
    • (15m)教育担当者と対象者で振り返り

実際の課題

環境準備

f:id:AdwaysEngineerBlog:20200409183314p:plain

教育担当者が簡易的な広告配信っぽいシステムを事前に構築しておきます。
各インスタンスのロールはこんな感じです。

ロール名 説明
bastion 踏み台
web clickを受ける用サーバ
batch queue処理用サーバ
redis queue保存用
db mysql

障害体験

教育担当者が用意したスクリプトを使って簡易システムに負荷をかけます。
その結果、アラートという感じで表現させます。
f:id:AdwaysEngineerBlog:20200409183338p:plain

教育対象者が適切に対処したら、リカバリで通知が帰って来ます。
f:id:AdwaysEngineerBlog:20200409183412p:plain

という感じで繰り返して複数の課題を解いていきます。

成果物(一部抜粋)

f:id:AdwaysEngineerBlog:20200409183427p:plain

一個のエラーが解消したと思ったら別のアラートが出て来て、 苦戦してる様子がみられました。

FBの結果

f:id:AdwaysEngineerBlog:20200409183520p:plain

まとめ

今回の対象者は3〜5年の中堅層エンジニア向けなのですが、
こんな感じの感想が取り寄せられました。

  • 障害体験とはいえ、アラートが出ると焦りがち
  • 冷静に対応する重要さの再認識
  • 原点に戻って、log見る大事さ
  • 原因特定の考え方(仮説の立て方)
  • 丁寧に対処する

障害を対応するためには、「冷静に状況と向き合い」、「正確に問題を切り分け」、「適切な対応」はどちらでも欠かせません。
今回の障害体験を通して、自分も含めて、障害対応における大事なところの再認識ができたのではないと思います。

最後までご覧頂きありがとうございました。

またの機会がありましたら別の取り組みも紹介したいと思います!