正常運(yùn)行時(shí)間與可用性:如何衡量和提高可靠性
在衡量應(yīng)用程序的可靠性時(shí),我們通常使用正常運(yùn)行時(shí)間。正常運(yùn)行時(shí)間是指服務(wù)正常運(yùn)行的時(shí)間。它通常以百分比表示。但是,為了改善用戶體驗(yàn),必須關(guān)注可用性,包括用戶體驗(yàn)組件。
在本文中,我將闡明可用性和正常運(yùn)行時(shí)間之間的區(qū)別,并指出衡量可靠性的正確方法。
想要了解如何通過提高系統(tǒng)的可觀察性來提高其可靠性?請(qǐng)閱讀我的文章“ SRE:如何通過提高系統(tǒng)的可觀察性來提高其可靠性” 。
什么是正常運(yùn)行時(shí)間?
正常運(yùn)行時(shí)間是指應(yīng)用程序在一段時(shí)間內(nèi)正常運(yùn)行的時(shí)間。這很簡(jiǎn)單。例如,如果您的應(yīng)用程序在過去 30 天內(nèi)沒有任何中斷,則可用性為 100%。如果有一天中斷,則正常運(yùn)行時(shí)間為 96.67%。正常運(yùn)行時(shí)間通常表示為應(yīng)用程序正常運(yùn)行時(shí)間的百分比。
什么是可用性?
可用性是指應(yīng)用程序正常運(yùn)行以服務(wù)用戶的時(shí)間百分比。請(qǐng)注意,要準(zhǔn)確衡量可用性,我們必須包括用戶體驗(yàn)組件。
許多組織只是使用正常運(yùn)行時(shí)間來指代可用性。在這種情況下,計(jì)算可用性的公式如下:

您還可以使用考慮平均故障時(shí)間 (MTTF) 和平均修復(fù)時(shí)間 (MTTR) 的公式來衡量可用性。該公式如下。

MTTF 是指故障發(fā)生前經(jīng)過的平均時(shí)間。MTTR 是指系統(tǒng)在發(fā)生故障后恢復(fù)完全運(yùn)行的平均時(shí)間。
從該公式中,您可以輕松得出幾個(gè)觀察結(jié)果:
首先,MTTR 越短,可用性越好,因?yàn)?MTTR 是分母。這就是為什么擁有必要的故障排除工具(包括可靠的端到端可觀察性系統(tǒng))對(duì)于更高的可用性至關(guān)重要。
其次,停機(jī)次數(shù)越少(故障頻率越低),可用性就越高。例如,如果您的服務(wù)每天發(fā)生 5 分鐘故障,則您的可用性可以按以下方式計(jì)算:
平均無故障時(shí)間= 24 小時(shí)
平均修復(fù)時(shí)間= 5 分鐘
可用性= 24 / ( 24 + 5/60) = 99.65%
但是,如果您的應(yīng)用程序每月出現(xiàn)一次持續(xù) 5 分鐘的故障:
MTTF = 30 天 = 30 X 24 = 720 小時(shí)
平均修復(fù)時(shí)間= 5 分鐘
可用性= 720 / ( 720 + 5/60 ) = 99.99%
現(xiàn)在您可以認(rèn)識(shí)到減少停機(jī)頻率和縮短維修時(shí)間的重要性。
可用性表
下表顯示了在給定可用性目標(biāo)的一段時(shí)間內(nèi)您的應(yīng)用程序不可用的時(shí)間量。

例如,對(duì)于 99.99% 的可用性(我對(duì)關(guān)鍵任務(wù) Web 應(yīng)用程序的建議),應(yīng)用程序每年最多可以有 52.6 分鐘的停機(jī)時(shí)間。
準(zhǔn)確測(cè)量 MTTF 和 MTTR 可能具有挑戰(zhàn)性。實(shí)際上,可以使用一組結(jié)合用戶體驗(yàn)的明確定義的 SLO(服務(wù)級(jí)別目標(biāo))來測(cè)量可靠性。現(xiàn)在,讓我們看看您需要測(cè)量什么來提高應(yīng)用程序的可靠性。
我應(yīng)該衡量哪些指標(biāo)?
在可以使用監(jiān)控工具測(cè)量的眾多指標(biāo)中,我們應(yīng)該謹(jǐn)慎選擇那些直接影響用戶體驗(yàn)的指標(biāo)。例如,雖然測(cè)量服務(wù)器的 CPU 利用率可以提供有價(jià)值的故障排除信息,但它不會(huì)揭示用戶正在經(jīng)歷什么。更好的衡量指標(biāo)是用戶體驗(yàn)到的延遲(響應(yīng)時(shí)間)。
在站點(diǎn)可靠性工程中,我們用來推導(dǎo)服務(wù)級(jí)別目標(biāo) (SLO) 的測(cè)量指標(biāo)稱為服務(wù)級(jí)別指標(biāo) (SLI)。我將根據(jù)以下應(yīng)用類型提供良好 SLI 的建議:
SLI(服務(wù)水平指標(biāo))建議
1. Web 應(yīng)用程序
這些應(yīng)用程序具有 Web 瀏覽器界面,用戶可以與之交互。Web 應(yīng)用程序可能依賴一個(gè)或多個(gè)后端服務(wù)。Web 應(yīng)用程序的一個(gè)示例是人們可以購(gòu)買商品的在線電子商務(wù)網(wǎng)站。此類應(yīng)用程序的 SLI 為:
在 Web 服務(wù)器或負(fù)載均衡器上測(cè)量的成功完成的 HTTP 請(qǐng)求數(shù)(HTTP 狀態(tài)代碼 200 系列)
在 Web 服務(wù)器或負(fù)載均衡器上測(cè)量的Web 請(qǐng)求的延遲(響應(yīng))時(shí)間(以毫秒為單位)
特定功能的響應(yīng)時(shí)間(以毫秒為單位)。例如,將商品添加到購(gòu)物車、完成購(gòu)買、登錄應(yīng)用程序等。
2. API
這些通常是通過 API 提供特定功能的微服務(wù)。例如,身份驗(yàn)證服務(wù)可以對(duì)通過 Web 瀏覽器登錄的用戶進(jìn)行身份驗(yàn)證。此類工作負(fù)載的 SLI 與 Web 應(yīng)用程序的 SLI 類似。
在負(fù)載均衡器或 API 網(wǎng)關(guān)處測(cè)量的HTTP 500 錯(cuò)誤(內(nèi)部服務(wù)器錯(cuò)誤)的數(shù)量
在負(fù)載均衡器或 API 網(wǎng)關(guān)處測(cè)量的成功完成的 HTTP 請(qǐng)求數(shù)(HTTP 狀態(tài)代碼 200 系列)
在負(fù)載均衡器或 API 網(wǎng)關(guān)處測(cè)量的API 請(qǐng)求的延遲(響應(yīng))時(shí)間(以毫秒為單位)
3. 后端應(yīng)用程序
這些是處理數(shù)據(jù)的后端應(yīng)用程序。一個(gè)典型的例子是文件傳輸應(yīng)用程序,它在系統(tǒng)之間(通常是兩家公司之間)移動(dòng)文件。這里推薦的 SLI 是:
每天文件傳輸失敗的次數(shù)
每個(gè)文件的失敗記錄百分比。如果適用,請(qǐng)考慮對(duì)失敗類型進(jìn)行分類。例如,失敗可能是由于數(shù)據(jù)格式錯(cuò)誤、目標(biāo)不正確、數(shù)據(jù)驗(yàn)證檢查等造成的。
數(shù)據(jù)的平均處理時(shí)間和 P95 處理時(shí)間(第 95 個(gè)百分位數(shù))
4.桌面應(yīng)用程序
這些是運(yùn)行在用戶桌面上的胖客戶端應(yīng)用程序。它們通常連接到后端系統(tǒng)來訪問數(shù)據(jù)。這里推薦的 SLI 是:
應(yīng)用程序啟動(dòng)時(shí)間: 以毫秒為單位
特定功能的延遲: 例如文件上傳功能。
客戶端錯(cuò)誤的數(shù)量
緩存命中率:以百分比衡量
5.大數(shù)據(jù)處理
這些后端應(yīng)用程序處理大量數(shù)據(jù)(每天數(shù) TB),可能用于機(jī)器學(xué)習(xí)用例。它們也可以是解析、過濾和傳輸數(shù)據(jù)的數(shù)據(jù)管道。以下是這些類型應(yīng)用程序的 SLI:
數(shù)據(jù)丟失,以記錄的百分比衡量
重試失敗的次數(shù)
數(shù)據(jù)解析失敗
隊(duì)列填充率(表示消息/記錄開始排隊(duì))
6. 監(jiān)控平臺(tái)
這些是監(jiān)控應(yīng)用程序的可觀察性平臺(tái)。當(dāng)然,我們需要測(cè)量這些系統(tǒng)的可靠性,以確保它們?cè)谛枰獣r(shí)可用。以下是推薦的 SLI:
可用性:以用戶可以查看指標(biāo)并成功執(zhí)行查詢的時(shí)間百分比來衡量
搜索和儀表板加載的響應(yīng)時(shí)間: 您應(yīng)該使用合成探測(cè)器來測(cè)量它,以便將其與已知的響應(yīng)時(shí)間進(jìn)行比較。
數(shù)據(jù)新鮮度: 指標(biāo)被納入平臺(tái)的速度
數(shù)據(jù)準(zhǔn)確性: 同樣,合成探測(cè)器可以幫助測(cè)量數(shù)據(jù)提取和檢索的準(zhǔn)確性。
結(jié)論
可靠性是任何成功應(yīng)用的關(guān)鍵屬性。要保持高水平的可靠性,必須始終測(cè)量正確的指標(biāo)。雖然簡(jiǎn)單的正常運(yùn)行時(shí)間指標(biāo)可以提供一些可靠性的感覺,但要準(zhǔn)確測(cè)量可靠性,必須測(cè)量直接影響用戶體驗(yàn)的指標(biāo)。為此,您必須定義與您的應(yīng)用程序類型及其服務(wù)的特定功能相匹配的服務(wù)級(jí)別目標(biāo)和服務(wù)級(jí)別指標(biāo)。

請(qǐng)先 登錄后發(fā)表評(píng)論 ~