入門 ポストモーテム
前回に引き続き今回も寄稿させていただきましたGMOペパボでSREをやっている渡部龍一です!今回は自分たちのチームでも取り組んでいるポストモーテムについての入門記事を書きました。
イントロダクション
ポストモーテムとは何か
ポストモーテムとは、システムやサービスにおける重大なインシデントや障害が発生した後に、その原因を詳細に分析し、再発防止策を講じるためのプロセスです。このプロセスは、インシデント発生直後に行われることが多く、関係者全員が集まり、事実を基に議論を行います。私が所属しているチームでもインシデント後のポストモーテムは重要と考えており実際に取り組んでいます。
なぜポストモーテムが重要なのか
ポストモーテムの目的は、単に問題を解決するだけでなく、同じ過ちを繰り返さないようにすることです。これにより、システムの信頼性を向上させ、サービスの品質を維持することができます。さらに、ポストモーテムはチーム全体の学習機会となり、個々のスキル向上や組織全体の改善にも繋がります。インシデントから得られる教訓を最大限に活かすために、ポストモーテムは非常に重要なプロセスと考えます。
またポストモーテムには実際に起きたインシデントについて詳細な情報が書かれています。その情報を元に障害対応訓練などを行うこともできます。詳細は過去に私が発表した入門 障害対応の資料を参考にしていただければなと思います。
ポストモーテムの準備
ここからは実際に行っているポストモーテムの取り組みを出しつつ説明をしていきます。
事前のインシデント記録とログの整理
ポストモーテムを効果的に行うためには、事前の準備が重要です。まず、インシデント発生時の詳細な記録を整理しておくことが必要です。具体的には、発生時間、影響範囲、対応状況などを詳細に記録します。また、関連するログデータや監視データも収集しておきます。これにより、インシデントの全体像を把握しやすくなり、原因分析がスムーズに進みます。
有意義なポストモーテムにするためにはまずここの整理をきちんと行っておく必要があり必要ならばドキュメントを作成しポストモーテムをやる前にレビューを通すということもやっていたりします。
関係者の招集と役割分担
ポストモーテムには、インシデント対応に関与した全員が参加することが望ましいです。それぞれの視点から得られる情報は、原因分析において非常に重要です。また、役割分担を明確にしておくことで、効率的に議論を進めることができます。例えば、ファシリテーター、記録係、技術担当者などの役割を予め決めておきます。(ファシリテーターは技術とは違った難しさがあったりして個人的には好きですが勉強中です😅。得意だよという方いればぜひコツなどを教えていただきたいです…)
ミーティングの設定とアジェンダ作成
ポストモーテムミーティングの日時を設定し、事前にアジェンダを作成します。アジェンダには、インシデントの概要説明、影響度の評価、原因分析、対応の評価、再発防止策の提案など、議論すべきポイントを含めます。これにより、ミーティングがスムーズに進行し、効果的な議論が行えるようになります。
個人的には同時編集がしやすいNotionを用いてアジェンダを作成するのが好みです。図などが必要となったらCanvasなどを用いたりすることも多いです。
ポストモーテムの進行
ポストモーテムの進行は、以下の基本的なステップに沿って行います
- インシデントの概要説明
- インシデントの発生状況や影響範囲を簡潔に説明します
- 具体的なデータやタイムラインを用いることで、参加者全員が共通の理解を持つことができます
- 影響範囲と影響度の評価
- インシデントがどのような影響を及ぼしたのかを評価します
- システムのダウンタイム、ユーザーへの影響、ビジネスへの影響などを具体的に示します
- 原因分析(根本原因と間接原因)
- インシデントの根本原因を特定します
- 間接的な要因や背景も考慮し、全体像を把握します
- 技術的な問題だけでなく、プロセスやコミュニケーションの問題も含めて分析します
- 対応の評価(何がうまくいったか、何が改善できるか)
- インシデント対応のプロセスを振り返り、成功した点や改善が必要な点を評価します
- 非難しないことを特に意識して取り組んでいます
- 時間があればうまくいった理由なども分析して再現性がある場合は今後の取り組みに活かすということをやっていたりします
- インシデント対応のプロセスを振り返り、成功した点や改善が必要な点を評価します
- 再発防止策の提案
- インシデントの再発を防ぐための具体的な対策を提案します
- 技術的な対策だけでなく、プロセスの改善やトレーニングの強化など、包括的な対策を検討します
ポストモーテム中に意識すること
以下はポストモーテムを実施する際に意識していることです。
責任追及を避ける
ポストモーテムの最も重要な原則の一つは、責任追及を避けることです。インシデント発生後の振り返りでは、誰がミスを犯したかを探すのではなく、何が問題を引き起こしたかを明らかにすることが目的です。個人の過ちを非難することは、チームメンバーの士気を低下させ、正直なフィードバックを得る妨げになります。そのため、ポストモーテムでは、問題の根本原因に焦点を当て、システムやプロセスの改善に向けた建設的な議論を行うことが重要です。
事実に基づいた議論
ポストモーテムの議論は、感情や憶測ではなく、事実に基づいて行うべきです。具体的なデータや証拠を用いることで、客観的かつ正確な分析が可能になります。例えば、インシデント発生時のログや監視データ、タイムラインなどを活用し、状況を詳細に再現します。これにより、原因究明が容易になり、再発防止策の検討も効果的に進められます。事実に基づいた議論を行うことで、全員が共通の理解を持ち、的確な対策を講じることができます。
再発防止策の策定と実行
ポストモーテムの最終的な目的は、再発防止策を策定し、実行することです。インシデントの原因を明らかにした後、同じ問題が再発しないように具体的な対策を立てることが求められます。再発防止策は、技術的な修正だけでなく、プロセスの改善やトレーニングの強化など、多岐にわたる可能性があります。
まとめ
ポストモーテムは、システムやサービスの信頼性を向上させるための重要なプロセスです。本記事では、ポストモーテムを効果的に実施するために意識すべきポイントについて説明しました。責任追及を避け、事実に基づいた議論を行い、透明性を確保することで、ポストモーテムは建設的な学びの場となります。また、再発防止策の策定と実行を通じて、同じインシデントが再発しないようにすることができます。
ポストモーテムを実施する際のヒントになればと思います!