エンジニアが作業する上で必ずといっていいほど起こってしまうシステム障害。
人為的ミスからハードウェア障害など原因や事象は様々です。
本記事ではシステム障害発生時における対応フローや原因・対策を事例を交えながら考察。
まずは事前準備「障害対応の業務フロー」について見ていきます。
この記事の目次
障害対応フローのサンプル。
障害発生時から障害調査完了までの処理フローのサンプルは以下の通り。
事前に連絡先となる担当者を決めておこう。
理想的なプロジェクトは、自責本番障害に対する意識の向上を目的とした「障害管理チーム」を発足し、障害報告のチェックやアドバイスで各メンバーをフォローするのが理想です。
「なぜなぜ分析」で根本原因を調査。
「なぜなぜ分析」は発生した問題事象の根本原因を探る分析手法として知られています。
例えば…
・プログラムミス なぜ? → 詳細設計ミス なぜ? → 参考にした資料が最新になっていなかった
⇒再発防止策「資産を最新化する」
といったように、深いレベルでの調査、ヒヤリングが重要です。
再発防止対策を検討。
再発防止対策では、やるべきテスト工程でテストケースが設定できていたのかを調査・検討しよう。
例えば、単体テストで最大値テストケースが設定されていたか?
システムテストで本番データテストを実施するべきだったか?可能だったか?などフェーズによって確認ポイントを明確にすることを忘れずに。
また障害報告票は再発を防止する事が目的です。報告書の提出が目的にならないよう注意しよう。
再発防止対策がレビュー強化のみとなる傾向も。
レビューでケアレスミスや指示された内容ができていないという指摘はプロとして減らさなければいけません。
「どうせ間違っていてもレビューで指摘してもらえる」という甘い考えは捨て、不安材料は成果物作成前に相談・解決するのがマスト。
※レビュアーは不備を100%検知できません。
システム障害を共有する。
再発防止対策の検討はプロジェクトリーダーや設計者のみではなく、できればプロジェクト内の複数名で検討しよう。
発生した障害を他プロジェクトにも展開し、注意喚起することで本番障害に対する意識を向上させる目的もあります。
障害の傾向を管理。
月別、年間単位で障害発生件数の増減を洗い出すことも重要です。
各工程(基本設計ミス、製造ミス、移行ミス等)を分類し、共有することが顧客満足度の向上につながります。
システム障害の事例一覧。
今回は我々プロジェクトのシステム障害の事例から、障害対策としてどのような方法が有効なのか、対策へのアプローチを見ていきます。
確認ミスによるエラー。
【事象】本番環境にてテーブル検索で異常終了。
【原因】DBの項目追加が漏れていた。
・影響調査が十分に行えておらず、レビューや確認も不十分であった。
・影響調査時点ではデータパッチ対象のテーブルとしていたが、タスク一覧への転記時に漏れてしまった。
・以降の作業でタスク一覧のみで作業を行っていたため、データパッチ対象外となった。
・タスク一覧への転記時の確認を怠ったこと、データパッチ対象を整理した資料を作成せずに作業を進めたことが根本的な原因である。
【対応】対応が漏れていたテーブルに対してデータを追加。
【再発防止策】
〈原因に対する対策〉
タスク管理の強化
・作業者、確認者、確認日を確実に記入し、タスクごとに確認者、確認日が記入されているかをチェックする。
・データパッチ時には、データパッチの内容をイメージできる概要資料を必ず作成することとする。(タスク一覧に必ず入れること)
〈その他対策〉
レビュー・確認の徹底
・各作業が終わった時点で、エビデンスを必ず確認する。(作業者本人ではなく別の人に確認を依頼)
・朝会で実施したことの報告、帰宅前にチームリーダーへの報告を義務付ける。
確認不足による影響調査漏れ。
【事象】帳票出力したところ、名称が略称になってしまった。
※部署別に正式名称が出力されるのが正しい。
【原因】名称を略称にする改修を行ったが、部署の分岐がされておらず、他部署も略称になってしまった。
根本原因としては、仕様を明確化せずに確認を怠った点である。
【対応】部署の分岐を組み込み、他部署は正式名称が出力されるように修正し再度リリース。
【再発防止策】
〈原因に対する対策〉
作業割振り時に仕様の説明・認識合わせを徹底する。
項目レベルの詳細な確認をテストで行うように指示する。
テストケース考慮不足。
【事象】ある特定の条件下で既存テーブルのレコードが削除されてしまった。
【原因】「ビジネスシナリオテスト(回帰テスト)」をリリース前に実施するルールであったが、スケジュールの都合上行わなかった。
今回発生した障害の特定条件もテストパターンに入っており、テストを実施していれば障害は発生しなかった。
【対応】プログラムを修正し、再度リリース。
【再発防止策】
〈原因に対する対策〉
回帰テストを必ず実施する。
スケジュールが間に合わない場合は、回帰テストを抜いた場合のリスクを必ず話し合ったうえで対策を決める。
まとめ
システム障害は、企業の信頼を失墜させる問題へと発展しがちです。
システム障害対策には、先述した自責本番障害に対する意識の向上を目的とした「障害管理チーム」が必要不可欠です。
システム部門やプロジェクトリーダーの方は、ぜひ検討してみてください。
今日も最後まで読んでいただきありがとうございました!
16年勤めた会社を辞め、転職した記事の詳細👇
機能的なモニターアームの記事👇
フィリップスのモニターもスタイリッシュでおすすめです。
理系男子・リケジョが興味津々間違いなしの「遺伝子解析」!
リモートワークはゲーミングチェアで能率アップ!
エンジニア必見!情報収集力が詰まっている記事はこちら♪
ロジクール無線キーボードがこの値段で買えるのは神。
パソコン作業のあの悩みを回避!
スッキリしたデザイン&コンパクトUSBハブで生産性アップ!
出張が多い方はサムソナイトブランド「カメレオンのスーツケース」が最高です。
合わせて読みたいビジネス関連の記事はこちら♪
IT従事者における『視力低下問題』の抜本的解決策!