--- tags: Other --- # SLI, SLO, SLA ## Service Level Indicator **服務水準指標**,用於確定服務是否在可接受範圍內的指標。例如,頁面加載時間的 SLI 可能是「第 95 百分位的載入網頁及所有底層 API 調用」。 SLI 是經過仔細定義的測量指標,它根據不同系統特點確定要測量什麼。 常見的測量指標有以下幾個方面: ### 效能 - 響應時間 latency - 吞吐量 throughput - 請求量 qps - 實效性 freshness(? ### 可用性 - 執行時間 uptime - 故障時間 / 頻率 - 可靠性 ### 質量 - 準確性 accuracy - 正確性 correctness - 完整性 completeness - 覆蓋率 coverage - 相關性 relevance(? ### 內部指標 - 佇列長度 queue length - 記憶體佔用 RAM usage ### 因素人 - 響應時間 time to response - 修復時間 time to fix - 修復率 fraction fixed ## Service Level Objectives **服務等級目標**,使用 SLI 和標的目標定義。其中一種 SLO 範例是「之前的 SLI 延遲時間必須低於 400 毫秒」。 SLO 指定了服務所提供功能的一種期望狀態。用 SLI 來描述,監控測量 SLIs,對比檢測到的 SLIs 值是否達到目標。 沒有達標不會怎麼樣。 - Don't pick a target based on current performance. - Keep it simple. - Avoid absolutes. - Have as few SLOs as possible. - Perfection can wait. ## Service Level Agreement **服務水準協議**,是無法達成 SLO 時所需遵循的步驟和補救措施。其中一種 SLA 範例是「暫停任何新開發,直到達成 SLO 為止」。 是一個涉及雙方的合約,雙方必須都要同意並遵守這個合約。若未達標會有懲罰(錢)。 SLA = SLO + 後果 ## 負載和效能測試 - **負載和效能測試達到峰值流量的 100% 或更高**。 - **測試從正常流量到峰值流量的速度**。測試從正常流量快速擴充到峰值的能力。系統的某些部分可能需要一些時間回應,以載入信號。 - **在負載下測試客戶流程**。對系統進行全面測試,以確保客戶體驗在峰值期間仍然有效。 - **考慮減載,以避免連鎖性故障**。實作減載,犧牲比較不重要的體驗,以防止最重要的客戶流程失敗。 - **測試不同的負載組合**。 ## 參考資料 - [黑色星期五生產準備就緒 / Google Cloud](https://cloud.google.com/solutions/black-friday-production-readiness?hl=zh-tw)