什麼是可靠性工程?
網站可靠性工程 (SRE) 可讓軟體開發人員在生產環境中持續掌握其應用程式的日常運作。 其目標是要讓需要持續交付的開發小組與負責維護生產環境可靠性的營運小組,能縮小兩者間的差異。 網站可靠性工程可將生產環境可靠性的責任轉移給開發小組的 SRE。
網站可靠性工程師通常會有半數以上的時間耗費在維護應用程式可靠性的日常工作上,其餘時間則用來開發軟體。
軟體可靠性工程師的主要技能,是他們對應用程式有深入的了解。 其中包括程式碼的知識、應用程式的執行方式、其設定方式,及其調整方式。
網站可靠性工程師的一般職責包括:
- 主動監視和檢查應用程式效能。
- 處理待命和緊急支援。
- 確定軟體具有良好的記錄和診斷功能。
- 建立和維護可運作的 Runbook。
- 協助將已提升的支援票證分級。
- 處理功能要求、瑕疵和其他開發工作。
- 參與擘劃整體產品藍圖。
- 執行即時網站評論,並擷取系統中斷的意見反應。
網站可靠性工程與 DevOps 的比較
DevOps 會在營運人員與開發小組之間建立良好的工作關係。 DevOps 可消弭兩者間的孤立和差異,而產生更健全、可靠的產品。
組織需要有管理生產環境的途徑,而 SRE 和 DevOps 都可提供解決之道。 在先前的課程模組中我們已了解,DevOps 的意見反應系統可找出問題,並對開發人員發出警示,好讓他們解決問題。 採用 SRE 時,開發小組人員將每天尋找網站可靠性的問題,而此人可能也是負責解決這些問題的人。 DevOps 小組若非絕對必要通常會選擇讓生產環境保持不變,而 SRE 則可能會進行變更。
網站可靠性工程技能
所需的技能類型會隨著應用程式、其部署的方式和位置,及其監視方式而有所不同。 例如,使用無伺服器技術的組織,將不需要具備 Windows 或 Linux 系統管理深度知識的人員。 但這些技能對於使用伺服器進行部署的小組來說則至關重要。
良好 SRE 的其他重要技能主要在於應用程式監視和診斷。 SRE 應具有應用程式效能管理工具 (例如 Application Insights) 的相關經驗。 他們也應了解應用程式記錄的最佳做法和例外狀況處理方式。