背景
運用の負荷は、新機能を作るたびに支払う税のようになっていました。障害は文脈を知る限られた人だけが解決でき、その文脈は増やせません。システムは壊れるまでは動き、復旧は誰が起きているかに左右されていました。
目指したのは理解の持続性です。自らの健全性を語るシステムと、個人の記憶に依存しない復旧手順を用意しました。
アプローチ
利用者が実際に体験することを反映したサービスレベル目標を定め、それに沿って計測を整えることで、アラートに意味を持たせました。利用者への影響に結びつかないノイズは取り除きました。
信頼できるシグナルが揃ったところで、定型的な復旧作業を自動化し、残る手順書は実行可能なステップとして書き直しました。オンコールは消火活動から、システムが既に処理した内容の確認へと変わりました。
回復力のあるシステムとは、復旧しながら自らを説明できるシステムです。
成果
- 60%
- アラートノイズの削減
- 3 倍
- 平均復旧時間の短縮
- 24/7
- 一次対応の自動化
主な意思決定
指標ではなく影響でアラートを鳴らす
目標を利用者の体験を基準に定めたため、呼び出しは必ず誰かが気づく事象に対応するものになりました。
実行できる手順書
復旧手順を人の確認を挟む自動化に置き換え、属人的な知識を再現でき、レビューできるプロセスにしました。
二度目の障害を前提に設計する
振り返りの結果は必ず計測に反映しました。同じ失敗が次に起きたときは、より安く、より明確に対処できます。