如何管理照三餐改變的系統與環境?
管理不斷變遷的系統,核心在於掌握 Entropy (熵) 與 SRE (Site Reliability Engineering) 的平衡準則。軟體系統並非靜止存在,而是持續趨向無序與最大亂度;因此,維持穩定運行的關鍵在於透過 監控 (Monitoring) 識別「時間、流程與容錯空間」的變化。實務上,團隊應定義量化數據 SLI (服務水準指標),並設定具備容錯餘地的 SLO (服務水準目標)。這套機制能幫助開發者在資源有限(電力、算力、流程成本)的情況下,預測並應對如家人、室友、鄰居般的外部環境干擾,確保服務在 99.9% 以上的時間內維持高可用性與商業價值。
如何管理和維護各種系統,以確保正常運行並適應不斷變化的環境?
沒有系統可以獨立存在,每個系統都存在於更大的生態系統中,並受到周圍環境和其他系統的影響。就好比居住的空間總會受到家人、室友、鄰居的好壞而影響生活品質,該怎麼衡量與取捨?
資源管理
道生一,一生二,二生三,三生萬物。
事物都相互關聯並依賴於彼此,系統間互動是不可避免的,因此必須適應和應對這些變化。舉例來說許多我們日常生活中依賴的系統,例如冰箱和冷氣,都需要穩定的電力供應才能正常運作。
如果缺乏必要的資源,系統將無法達到它們的預期功能,這就強調了資源管理的重要性。
- 流程成本: 目標是減少流程,每多一道流程就增加出錯的機率。
- 理解成本: 目標是可讀性高的程式碼。
- 修改成本: 目標是可維護性高的程式碼。
- 執行成本: 目標是降低時間與空間複雜度。
- 測試成本: 目標是增加自動化的比例,降低人工。
- 技術成本: 目標是減少專案的入門門檻。
監控:預防 Entropy 的蔓延
環境會隨著時間改變,也因此會影響系統的運作流程和產出,靜止的系統並不存在,存在的是平衡。
在技術和工程領域 Entropy (熵) 的概念也非常重要,Entropy 表示系統的無序度並且會趨向於最大亂度,因此系統管理需要防止過度的混亂,以確保穩定性和效能。
系統通常處於不斷變化的狀態,因此需要不斷監控和管理系統應對這種變化以保持系統平衡。監控上需要關注時間順序、流程順序和容錯空間,以確保系統的可靠性和穩定性:
- 時間順序: 事件發生的順序。
- 流程順序: 涉及流程的步驟和執行順序。
- 容錯空間: 是指系統中的容錯機制,用於處理錯誤和故障。
透過商業模型理解變化去定義正常值的上下界範圍,可以更好地識別系統問題並採取相應的措施。
服務水準指標與目標 (SRE)
在 Site Reliability Engineering (SRE) 領域通常透過 SLI 和 SLO 兩個指標來評估我們的系統,並透過指標管理系統和維護系統以確保其正常運行和適應變化。
Service Level Indicator (SLI)
SLI 是用來測量實際性能的數據。
SLI 通常是基於數據和指標的量化測量,例如服務的響應時間、錯誤率、可用性等,提供了關於服務表現的客觀數據。常見範例:
- 每個請求都在 500ms 內可以回應。
- 發生 HTTP Response Code 500 的次數。
Service Level Objective (SLO)
SLO 是設定的性能目標。
SLO 通常基於 SLI 設定可量化的目標,用來衡量服務的期望性能水準。定義了一個服務在特定條件下應該達到的效能。在系統中重要的是容錯和高可用性,例如系統應該在 99.999% 的時間內可用,以確保最小的中斷時間。
Service Level Agreement (SLA)
SLA 是一種正式的合約或協議。
在企業方面透過服務水準協議 (SLA),用於確定服務提供者應遵守的服務水平標準,通常基於 SLO 規定性能與支援方面的承諾,但更具有法律約束力。
FAQ:系統監控與 SRE 常見問題
Q1:SLO 為什麼不建議設定為 100%?
A:在 SRE 哲學中,「100% 是錯誤的目標」。因為追求 100% 的成本極高且會扼殺創新速度(不敢進行任何變動)。設定如 99.9% 的 SLO 產生的 0.1% 空間稱為 「錯誤預算 (Error Budget)」,團隊可以利用這預算來進行實驗或部署新功能,只要預算沒扣完,系統都是健康的。
Q2:前端開發者也需要關心 SLI/SLO 嗎?
A:絕對需要。 前端的 SLI 可能包含:首屏載入時間 (FCP)、核心網頁指標 (LCP)、或是 API 調用的失敗率。透過監控用戶端的實際表現(RUM, Real User Monitoring),前端開發者能確保使用者體驗符合商業預期。
Q3:如果系統的 Entropy (熵) 持續增長該怎麼辦?
A:這就是需要「技術重構」與「自動化」介入的時刻。當系統維護變得極其痛苦(無序度過高),應投入資源清理技術債並強化監控告警。記住,不介入管理的系統,其混亂度只會隨著功能增加而呈指數成長。
喜歡這篇文章,請幫忙拍拍手喔 🤣