# SRE 經驗分享 - 從事故分析、精準監控到自動化維運 - 謝政廷 (Duran) ###### tags: `2023` {%hackmd @sre-conf/H1pCafrG3 %} 心得 ~~驗屍經驗分享~~ ~~避免被call起來尿尿指南~~ ## 事故分析 ### 事故三種類型-效益 #### 使用者報案 > 有可能代表監控不夠 #### 監控與警告 > 稍微成熟的產品,已經可以在user發現前就收到通知 #### 團隊預先察覺 > 成熟的監控與警告機制才有較高的機率預先察覺事故發生 ### 事故階段 - 盡可能不要採用沒測試過的修復計畫與步驟 - 在相依複雜的系統環境可能導致服務中斷時間更長 - 不要往極不可能的方向調查 - 不要想太多,優先考慮最簡單的跡象` ### 驗屍工作:理解文化事故,找出原因,檢視是否有更加解決方案避免再次發生,「非常」耗成本 - 事故描述 - 根本原因 - 解決方案 - 正式文件 - 不責難文化 - 識別與預防 #### 何時進行事故分析 - 使用者體驗受影響 (SLO) - 不穩定的功能 - 無法使用服務 - 使用者 - 資料遺失 - 指派任務 ### 事故分析階段 - 不要單獨/隨時對外回報調查進度 - 資訊不完整,錯誤用詞,無法重現可能導致錯誤訊息傳遞,確認資訊與文件一致再公布 #### 檢討報告 日期資訊等 / 採取作為 / 時間軸 / 執行摘要 / 問題摘要 / 從中學習 * 後續追蹤,以避免下次發生相同情況 - Ex. 一個月後要做什麼事情?三個月後要做什麼? - 能不能建立監控指標 - 不能的話要做什麼防範措施 #### 後續檢討工作 1. 建立標準解決流程 2. 檢視事故回應與監控指標 3. 主動測試 4. 案例分享:將經驗分享出去 >查案中執行的Script,Query 盡可能留下來 - 事件結束後,必須回顧看事件聯繫紀錄與步驟,以確保過程沒有發生任何問題 - 開讀書會or群組分享事件內容 ### 事故分析分享 #### 建立標準解決流程 ##### 文件 - 簡單易懂的用詞 - 實用:實作步驟、指令、截圖 - 共同編輯與評論(持續維護) ##### 團隊參與並持續演練 - 測試環境模擬 - 根據文件實作 - 持續確認是否符合需求 ##### 檢視監控指標 - 能否完整解決問題 - 能否被監控 - 能否建立預警規則 - 能否自動修復 ##### 檢視事故回應 - 事故判斷是否正確 - 能否在第一線、第二線就解決 - 能否快速且正確聯絡受影響的團隊 #### 主動測試 - 範圍擴大 - 跨團隊測試 - 邀請使用者 - 更多實務測試案例 - 累積操作流程與經驗 - 事故發生時有更多解決方案 #### 案例分享 鼓勵積極參與 - 讀書會 - SRE 工作群組或會議 - 回報技術更新、issues...etc - Ex. mongodb更新,新增了什麼樣的新功能? - 建立 V-Team > 社群方式經營是個不錯的方式 ### 不咎責文化 - 高層支持 - 鼓勵面對錯誤 - 建設性批評 - 確保流程改善 **犯錯的人不是惡意的,解決問題比較重要** - 其實有點(ㄏㄣˇ)難 - 完全不咎責可能導致無法正常溝通與績效難以管理 - 團隊的人都要有一定的心理建設來面對批評 - 團隊成員要先對錯誤有心理建設,但還是要講 ## 監控指標 [Google SRE - The Four Golden Signals](https://sre.google/sre-book/monitoring-distributed-systems/#xref_monitoring_golden-signals) - ERROR 系統錯誤內容與發生頻率 - Saturation 系統各項資源負載 - Traffic 系統容量需求 - Latency 服務請求所需時間 - 正確的監控指標必須經過長時間觀察與測試 - 能透過監控預防事故發生或是事故後執行自動化維運是相當困難的 > 太依賴模板反而會使監控包含過多雜訊 ### 目標明確的指標 - 說明指標含義(每個產品的指標不同,某指標一直都穩定可以不用列) - 數值異常時可能的影響或事故 - 保留實用的指標 - 好的監控指標來自事故分析,很明確但通常不容易被發現 - 多數情況不會呈現只有單一指標,建立良好除錯指標可以更快診斷問題所在 - 事故並非呈現在單一指標,很多事故無法明確監控 - 驗屍工作只有疑似原因 ## 自動化維運 ### 自動化維運目的與前提 SRE工作不應投資超過50%在瑣事上,建立自動化或半自動化維運相當重要,但是有以下前提: - 維運資料標準化 - CI/CD流程標準化 - 使用一致的工具 - 消除無效率的操作與管理 - 減少人為錯誤發生 - 有效降低成本 - 減少聯繫與等待時間 ### 自動化維運要點 - 減少瑣事 - 使用正確的工具 - 識別高價值流程 - 檢視團隊技能 不是每個團隊成員都有技能做自動化流程 #### 明確指標與消除誤報 - 多數情況下,事件發生時不是呈現在單一指標,建立良好除錯指標可以更快診斷問題所在 --- --- ====== 聊天室 ===== 程式法醫 簡報好快@@手要跟不上了 好多人在打還是好難追
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up