平均復旧時間(MTTR)とは何か?解説
平均復旧時間(MTTR)とは、失敗の後に正常な稼働を復旧するまでにかかる平均時間であり、システムにもpipelineにも共通する中核的な信頼性メトリクスです。
失敗は避けられません。回復力のあるシステムを際立たせるのは、どれだけ速く復旧できるかです。MTTRはまさにそれを測定します。CIにおいて、それは実践的な問いに答えます。pipelineが赤くなったとき、再び緑になって作業のブロックを解除するまでにどれだけかかるのか、という問いです。
MTTRの定義
MTTRは、失敗が発生してからサービスが復旧するまでの平均経過時間であり、多数のインシデントにわたって測定されます。MTTRが低ければ、システムは素早く立ち直ります。MTTRが高ければ、失敗が長期にわたる混乱を引き起こします。これはソフトウェアデリバリーパフォーマンスに関するDORAの4つのメトリクスの1つです。
CIの文脈におけるMTTR
pipelineにおいて、復旧時間はbuildがfailした瞬間から、緑のbuildがチームのブロックを解除する瞬間までにわたります。その時計には、検知、調査、修正またはリトライ、そしてpipelineの再実行が含まれます。これらの各段階が、時間を削るための機会です。
MTTRを押し上げるもの
- 診断が難しい失敗(難解、tracebackがない、断続的)。
- 人間が気づくのを待つ、手動のトリアージと再実行。
- 修正後の再実行に長い時間がかかる遅いpipeline。
- transientな失敗が本物と誤分類され、人々を行き止まりの追跡に送り込むこと。
自動化がMTTRを下げる方法
最も速い復旧とは、人間を必要としない復旧です。本物のtransientな失敗を自動的にリトライすることで、その復旧時間は数分の人間の注意から数秒の自動再実行へと縮まり、それがそのクラス全体の失敗のMTTRを直接的に下げます。
Latchkeyの視点
transientおよびメカニカルな失敗について、Latchkeyの自己修復managed runnerは復旧時間を人間の関与ゼロへと導きます。runnerが失敗を検知して自動的にリトライするため、一度きりの不具合があなたのbuildをfailさせることはなく、人間が対応するインシデントとしてMTTRに入ることも決してありません。
重要なポイント
- MTTRは、失敗の後にサービスを復旧するまでの平均時間です。
- CIでは、検知、調査、修正またはリトライ、そして再実行にわたります。
- DORAのデリバリーパフォーマンスに関する4つのメトリクスの1つです。
- transientな失敗の自動リトライは、その復旧時間を大幅に削減します。