如何管理和維護各種系統,以確保正常運行並適應不斷變化的環境?
沒有系統可以獨立存在,每個系統都存在於更大的生態系統中,並受到周圍環境和其他系統的影響。
就好比居住的空間總會受到家人、室友、鄰居的好壞而影響生活品質,該怎麼衡量與取捨?
資源管理
道生一,一生二,二生三,三生萬物
事物都相互關聯並依賴於彼此,系統間互動是不可避免的,因此必須適應和應對這些變化。
舉例來說許多我們日常生活中依賴的系統,例如冰箱和冷氣,都需要穩定的電力供應才能正常運作。
如果缺乏必要的資源,系統將無法達到它們的預期功能,這就強調了資源管理的重要性。
- 流程成本: 目標是減少流程,每多一道流程就增加出錯的機率
- 理解成本: 目標是可讀性高的程式碼
- 修改成本: 目標是可維護性高的程式碼
- 執行成本: 目標是降低時間與空間複雜度
- 測試成本: 目標是增加自動化的比例,降低人工
- 技術成本: 目標是減少專案的入門門檻
監控
環境會隨著時間改變,也因此會影響系統的運作流程和產出,靜止的系統並不存在,存在的是平衡。
在技術和工程領域 Entropy (熵) 的概念也非常重要,Entropy 表示系統的無序度並且會趨向於最大亂度,因此系統管理需要防止過度的混亂,以確保穩定性和效能。
系統通常處於不斷變化的狀態,因此需要不斷監控和管理系統應對這種變化以保持系統平衡。
監控上需要關注時間順序、流程順序和容錯空間,以確保系統的可靠性和穩定性
- 時間順序: 事件發生的順序
- 流程順序: 涉及流程的步驟和執行順序
- 容錯空間: 是指系統中的容錯機制,用於處理錯誤和故障
透過商業模型理解變化去定義正常值的上下界範圍,可以更好地識別系統問題並採取相應的措施。
服務水準指標與目標
在 Site Reliability Engineering (SRE) 領域通常透過 Service Level Indicator (SLI) 和 Service Level Objective (SLO) 兩個指標來評估我們的系統,並透過指標管理系統和維護系統以確保其正常運行和適應變化。
Service Level Indicator
Service Level Indicator (SLI) 是用來測量實際性能的數據
SLI 通常是基於數據和指標的量化測量,例如服務的響應時間、錯誤率、可用性等,用來定義服務的實際性能,並提供了關於服務表現的客觀數據,一種衡量服務性能的具體指標或度量標準。
- 每個請求都在 500ms 內可以回應
- 發生 HTTP Response Code 500 的次數
Service Level Objective
Service Level Objective (SLO) 是設定的性能目標
SLO 通常基於 SLI 設定可量化的目標用來衡量服務的期望性能水準,定義了一個服務在特定條件下應該達到的效能,例如某個服務的響應時間應該在多少毫秒以內。
在系統中重要的是容錯和高可用性,例如系統應該在 99.999% 的時間內可用,以確保最小的中斷時間。
Service Level Agreement
Service Level Agreement (SLA) 是一種正式的合約或協議
在企業和服務提供方面透過服務水準協議 (SLA),用於確定服務提供者應遵守的服務水平標準,通常基於 SLO 規定性能、可用性和支援方面的承諾,但更具有法律約束力。
喜歡這篇文章,請幫忙拍拍手喔 🤣