いまいち違いが分かっていなかったのでメモ。結論からいうと、用いる指標が異なる。
Availability(可用性)は稼働率を指標として用いる。
稼働率 = (経過時間 - ダウンタイムの合計時間) / 経過時間
これに対して、Reliability(信頼性)は MTBF(平均故障間隔)、または MTTR(平均修復時間)を指標として用いる。
MTBF (Mean Time Between Failures) = (経過時間 - ダウンタイムの合計時間) / インシデント数
MTTR (Mean Time To Repair) = ダウンタイムの合計時間 / インシデント数
Availability の方はシステムが利用可能な時間の話で、Reliability の方はどれくらい壊れやすいか、壊れたときにどれくらい早く対応できるかという信頼性の話をしている。
例を使って考えてみる。
- システムAは100日間のうち、1度インシデントが発生して、1日ダウンした
- システムBは100日間のうち、2度インシデントが発生して、それぞれ半日ずつダウンした
このとき、Availabilityで見るとAもBも99%で同じになる。
しかし、Reliabilityで見ると異なる。MTBFはAが99日、Bが49.5日となって、Aの方が壊れにくいシステムであることが分かる。逆にMTTRはAが1日、Bが0.5日となっていて、Bの方がトラブルがあったときに早く回復できるシステムであることが分かる。
個人的な意見だが、インシデント回数はコントロールできない外部要因に依存するので、エンジニア的には MTTR の小さなシステム(壊れてもすぐに回復するシステム)を設計するのが良いのではと思う。また、新機能の開発を控えればMTBFは大きくなるので、MTBFの増加に力を入れてしまうと、積極的な新機能の開発が行われにくくなってしまってよくないのではという気がする。
稼働率とMTBF, MTTRには以下の関係が成り立つ。
稼働率 = MTBF / (MTBF + MTTR)
0 件のコメント:
コメントを投稿