DevOps vs SRE:一個是介面,一個是實作
· tech
📑 目錄
前一篇講完 SRE 是什麼,順手補一個超常被問、但其實是假問題的比較:「DevOps 和 SRE 有什麼不同?要選哪個?」之所以是假問題,是因為兩者根本不在同一層。Google 用一句很工程師的話破了題:class SRE implements interface DevOps。
一個是介面,一個是實作
這句話翻成白話:DevOps 是一個「介面」——它定義了「該做什麼」的原則,但沒規定「怎麼做」;SRE 是 Google 對這個介面的一個「實作」——給出了具體、有主張的做法。
把原則翻成做法:一條條對照
SRE 真正的貢獻,是把 DevOps 那些正確、但抽象的原則,翻成一條條可以照做、可以量測的具體規則。這個系列前面講的每一招,幾乎都能對回一條 DevOps 原則:
所以「vs」是假問題
看懂上面,就知道「DevOps vs SRE」問錯了:你可以「奉行 DevOps」而採用別的實作(SRE 只是 Google 給的、最成體系的一種);SRE 也不是要取代 DevOps,而是把它落地。名詞上的混亂多半來自兩件事:「SRE」常同時指一種方法論和一種職稱/團隊;「DevOps」則常被誤用成「一個會寫 CI/CD 的工程師」或某個工具鏈——但它的本質從來是文化,不是職缺。把層次分清,爭論就消失了。
反思
「A vs B」有時根本是層次搞錯
「DevOps vs SRE」讓我學到一個看待技術爭論的角度:很多「A vs B」的辯論,其實 A 和 B 不在同一維度——一個是哲學、一個是做法,一個是介面規範、一個是具體實作。問「要選哪個」就像問「要選物件導向還是 Java」。我現在遇到這種比較,會先退一步問:這兩個東西,是同一層的替代品,還是不同層的關係? 分清「原則 vs 做法」「目標 vs 手段」,一大半假對立會自己瓦解——這個習慣在技術選型、甚至在讀任何論戰時都很好用。
好方法論的價值,是把抽象原則翻成可執行的規則
DevOps 說「減少 silo」——很對,但怎麼做? SRE 說:給 dev 和 ops 同一個 error budget,逼他們用同一把尺決策。DevOps 說「接受失敗」——SRE 說:blameless postmortem。SRE 最讓我佩服的,不是它講了什麼新哲學(它沒有),而是它把 DevOps 那些正確但飄在空中的原則,一條條翻成了可以照做、可以量測、可以檢核的具體制度。抽象的信念人人會講,能落地成規則的才真正改變行為。 這也是我判斷一套方法論值不值得學的標準:它有沒有把「你應該…」變成「你可以這樣做,並這樣量它有沒有做到」。
別為名詞打架,看你有沒有拿到好處
我看過太多團隊糾結「我們算 DevOps 團隊還是 SRE 團隊」「這個職缺該叫哪個」——但這些都是名詞。真正該問的是那些實質的好處有沒有拿到:silo 有沒有變少?失敗能不能被安全地攤開來談(blameless)?變更是不是又快又可逆?量測(SLO)是不是真的在驅動決策?拿到這些,叫什麼名字都行;沒拿到,名片印得再漂亮也是空的。工具和方法論是為結果服務的,別把手段當成目的——這句話,套在 DevOps、SRE、甚至任何新潮的技術名詞上,都一樣成立。