> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/zh-hant/2022/w23-a-stability-metric-that-accurately-describes-customer-impact.md).

# W23-一種可以準確描述客戶影響的穩定性指標

### **背景**

為什麼想到了穩定性指標這個話&#x984C;**？**&#x662F;因為最近發生的幾件事情疊加在一起促成了這樣一段思考。其一是我在準備愚公的容災工作；其二是可用性提升是今年團隊的O2，我需要輔助忠澤去做一些規劃；其三是Jerry前段時間推薦的一門和數據思維相關的課程，給了我不少啟發。

### **一些基礎概念**

我們經常會講服務要高可用、高可靠、高穩定，從廣義上看，會理解為有一個類似成功率的指標去衡量就夠了。但從狹義上看，可用性、可靠性、穩定性這三個概念並不等價。

**Availability，可用性。**&#x6307;在某個考察時間，系統能夠正常運行的時間佔比。**描述的是能不能用。**

**Reliability，可靠性。**&#x6307;系統在給定的時間間隔和給定條件下，系統可以無故障持續運行的概率。**描述的是對不對。**

**Stability，穩定性。**&#x6307;軟件在一個運行週期內、在一定的壓力條件下，在持續操作時間內出錯的概率，性能劣化趨勢等。對於前端來講，運行時是非中心化的，離散在各個終端的。所以，**穩定性描述的是，在不同機型和網絡條件下，軟件好不好用。**

它們之間的關係可以這樣理解，可靠性差一定程度上是會影響可用性，但反過來不一定成立。可用是可靠的前提，穩定是可靠的進一步提升。

接下來簡單介紹下期望這個概念。這個部分來自前邊提到的數據思維課，裡邊有一個用期望解釋墨菲定律的例子，是一個很好的應用。

期望的定義是，對可能出現的結果以概率為權做加權平均。期望值完全是由概率分佈決定。在大數定律下，次數足夠多後會達到我們預設的期望值。由此可見，期望是一個事前預測值。需要注意的是，我們常講的平均值是一個事後的統計值。在英文中它們也各有所代，期望值是Mean，平均值是Average。

### **現有的可用性指標計算方案**

軟件交付規格中的SLA就是一組期望值。

行業內有一個對可用性的通用定義，Availability = MTTF / (MTTF + MTTR)。

MTTF，即Mean Time To Failure。平均失效前時間，系統平均能夠正常運行多長時間，才發生一次故障。MTTF越長，系統越可靠。

MTTR，即Mean Time To Repair。平均修復時間，是指可修復系統的平均修復時間，就是從出現故障到修復完成的這段時間。MTTR越短，系統可維護性越好。

公司內對可用性做了更為具體的定義。詳細定義了修復時間，時間是通過故障損失數據轉化為時間來計算的。

計算公式為：Availability = ( 525600 - sum( min {1440 \* loss, ( t2 - t1 ) })) / 525600。

525600代表525600分鐘/年。1440代表1440分鐘/天。loss代表日訂單損失佔比，如果是非交易類業務，也可以選擇瀏覽量損失，或者增加的客訴量。t2-t1代表故障時長。

### **X指標的計算方案**

我嘗試找到一個指標，可以更為準確地描述對客戶的影響。因為還沒有想到很好的名字，就姑且叫它X指標吧。

如果我們把對客戶影響的期望值定義為M（Mean），把客戶影響發生的概率定義為P（Probability），把客戶影響的程度定義為D（Degree），那麼應該有M = P \* D。為了方便閱讀，這裡以交易類業務為例進行說明。在交易類業務中，P = 故障時長 / 全年時間，D = 損失單量 / 全年單量。

那麼X指標的計算方式可以如下：

( 1 - sqrt ( (損失單量 / 全年單量) \* (故障時長 / 全年時間) ) \* 100%

如何將這個指標落到生產當中，還需要一些純熟的思考。
