可用度(availability)
想像一家店。顧客在意的事很單純:我走過去時,它有沒有開、能不能服務我?可用度就是那個比例——系統處於正常、隨時能做事的時間占比。我們會聽到「四個九」或「五個九」,是 99.99% 或 99.999% 時間可用的簡稱。差距聽起來很小,影響卻極大:99.9% 允許一年將近九小時的停機,而 99.999% 只允許約五分鐘。
標準公式把可用度繫在兩個時間上。若 MTBF 是平均故障間隔(它通常能撐多久),MTTR 是平均修復時間(每次停機多久),那麼可用度 = MTBF /(MTBF + MTTR)。關鍵的洞見就藏在明面上:你可以靠更少故障(更大的 MTBF)或更快復原(更小的 MTTR)來提高可用度。一個常故障但一秒內就自癒的系統,仍可以極度高可用,這就是為什麼快速自動切換與迅速重啟是如此強大的工具。
要誠實看待可用度承諾了什麼、沒承諾什麼。高可用不代表永遠不壞——它代表壞得罕見或短暫。它也完全沒說答案是否正確:一個在線卻回傳錯誤結果的系統,可用度高、可靠性(dependability)卻很差(見 dependability)。而且當系統互相依賴時,「九」會相乘:一個由兩個各 99.9% 可用、且兩者都不可或缺的元件組成的服務,整體只有約 99.8% 可用。真實世界的高可用是靠冗餘設計出來的,好讓單一故障不至於拖垮全局。
一台伺服器平均每 1,000 小時故障一次(MTBF = 1,000 小時),每次重啟要 1 小時(MTTR = 1 小時)。它的可用度是 1000 /(1000 + 1)= 0.999,即 99.9%——一年約 8.8 小時停機。把修復縮到 6 分鐘(0.1 小時),可用度就躍升到 1000 / 1000.1 = 99.99%。
更快的修復(更小的 MTTR)和更少的故障一樣,都能切實提高可用度。
可用度不等於正確性。一台「在線」卻回傳錯誤答案的機器,在可用度圖表上看起來完美,在可靠性上卻糟糕透頂;切勿把上線率當成結果正確的保證。