---
# System prepended metadata

title: 'SLI, SLO, SLA'
tags: [Other]

---

---
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)