# DevOps 與 SRE 關係 ## 何謂 DevOps? 可以理解成是一種軟體開發的理念,打破開發者跟運營者跟組織其他之間溝通的障礙,可以把 DevOps 分成五個關鍵理念: * Reduce Organizationa Silos * 減少組織的隔閡,通過打破團隊之間的障礙,增加更多的溝通與合作 * Accept Failure as Normal * 接受失敗是正常的,我們不能期望系統是完美的 * Implement Gradual Change * 實施漸進式變革,與其一次大更新,不如小量多次的更新,更容易審查,若發生錯誤也可縮短我們修復的時間 * Leverage Tooling & Automation * 利用工具及自動化 * Measure EveryThing * 將前面四點量化,當能把上述條件量化成指標,我們就能提早確保計畫是否可行 ## 何謂 SRE (Site Reliability Engineering)? 如果 DevOps 是一種理念,那麼 SRE 就是實踐理念的規範方法,用個宅宅術語: ``` class SRE implements DevOps ``` 對於 DevOps 提倡的五個關鍵理念, SRE 也提出具體的作法如下: * Share ownership * 在整個開發週期中,與開發團隊使用相同的工具以及一起分享系統的管理權 * SLOs & Blameless PMs * 對於新的版本,建立一套可以量化指標去衡量「意外」、「失效」 * Reduce costs of failure * 鼓勵團隊透過降低排除故障的成本,來達成快速交付的目的,不需一次做到最好,而是逐漸改變 * Automate this year's job away * 鼓勵團隊把的工作自動化,把精力放在中長期的系統改善,短期的工作可交給 AI 或自動化處理 * Measure toil and reliability * 相信維運是軟體工程的範疇,規範關於可用性、運行時間、停機時間....等量化指標