「系統沒壞就沒事情吧?」
沒有 Incident 的日子,DevOps / SRE 仍有很多工作要做:Automation、Capacity Planning、Monitoring Improvement、Cost Optimization、Security、Disaster Recovery、Architecture、Performance、Deployment Improvement、Developer Platform、Documentation 和 Postmortem。
有些工作,平常不容易被注意到
自動備份、自動 Rollback、Health Check、Auto Scaling、Alerting、Deployment Automation,做好之後可能減少需要人工處理的狀況。旁人看到服務穩定運行,未必看得到背後做了哪些事。
這些都是 Reliability Engineering 的工作。Google SRE 對 toil 的定義,就是把那些與服務運行直接相關、重複、手動、可被自動化的工作視為應該逐步消除的負擔,並希望 SRE 把大量時間投入工程專案。
工程時間不能全被日常維運吃掉
SRE 不需要一整天坐著等 Pager。Google 的 SRE 模型明確限制 Operational Work 的比例,強調至少有一半時間應投入 Engineering Work。
沒有 Incident 時,正好可以處理那些會減少下次人工救火的工程工作。
碎碎念(經驗談)
會覺得很閒,大概不是工程師的角色才會覺得只要系統沒出事是不是就很閒?
但是其實大錯特錯!就像開發工程師面對系統的Bug要修復會依照嚴重等級與緊急程度,DevOps / SRE 工程師也有很多事是依照不同優先順序安排的。
相反的,其實很多事情是安排到希望能夠像火影忍者「鳴人」一樣有影分身之術!
舉凡面對開發團隊的自動化Pipeline建置、各環境系統建構與維護、健康度監控、成本最佳化、災難復原計劃與演練、效能調校等等…
面對企業數量眾多的系統,每一個系統都需要弄一套各自的規則,若再乘上每一個系統有不同的環境…