一文講透研發(fā),SRE,運(yùn)維,DevOps 的區(qū)別
很多同學(xué),特別是剛畢業(yè)的新人,搞不清楚研發(fā),SRE 和運(yùn)維的區(qū)別,正好最近看到一篇文章,講解的很清楚,分享給大家。
轉(zhuǎn)載信息如下:
作者:Bytebass
鏈接:https://juejin.cn/post/7130867073609121822
研發(fā),SRE,運(yùn)維是工種,而 DevOps 是體系。如果拿足球來(lái)打比方,研發(fā),SRE,運(yùn)維對(duì)應(yīng)的就是前鋒,中場(chǎng),后衛(wèi)這樣的位置,而 DevOps 則是諸如 4-3-3 這樣的陣型。
研發(fā)
也叫研發(fā)工程師,工程師,Software Engineer (SWE),Software Developer 或者簡(jiǎn)稱(chēng) Developer (Dev)。主要職責(zé)是寫(xiě)代碼,實(shí)現(xiàn)軟件業(yè)務(wù)功能。比如打車(chē)功能就是研發(fā)工程師用代碼實(shí)現(xiàn)的。
研發(fā)主要和代碼打交道。
運(yùn)維
Operations (Ops), Production Engineer (PE)。主要負(fù)責(zé)機(jī)房管理,裝機(jī),網(wǎng)絡(luò),監(jiān)控報(bào)警,故障應(yīng)急。
早期運(yùn)維很大比例的工作是和物理機(jī)器設(shè)備打交道,需要大量的手動(dòng)操作,操作風(fēng)險(xiǎn)也很高,后來(lái)逐漸引入軟件或者自己寫(xiě)一些腳本,代碼來(lái)自動(dòng)化工作。
近 10 多年隨著云服務(wù)逐漸取代物理機(jī),傳統(tǒng)運(yùn)維的職能被大幅度縮減,成為了一個(gè)逐漸要消亡的工種。
SRE
Site Reliability Engineer (SRE),一般不翻譯 (線上穩(wěn)定性保障工程師?)。這是由 Google 在 2003 年提出來(lái)的。
這個(gè)工種誕生的背景有這么幾個(gè):
像 Google 這樣大規(guī)模線上服務(wù),既復(fù)雜,服務(wù)穩(wěn)定性要求也高。 研發(fā)通常更關(guān)注把東西做出來(lái)上線,但對(duì)于后續(xù)線上的維護(hù)少一個(gè)心眼。而且往往為了盡早上線,會(huì)忽略上線后的穩(wěn)定性問(wèn)題。 傳統(tǒng)運(yùn)維需要轉(zhuǎn)型。
1 和 2 促使需要一個(gè)專(zhuān)門(mén)的工種,而 3 則提供了 SRE 的穩(wěn)定來(lái)源。因?yàn)?SRE 是在研發(fā)和運(yùn)維之后出現(xiàn)的工種,所以第一批的 SRE 就是從那兩個(gè)工種里轉(zhuǎn)型而來(lái)。又因?yàn)?SRE 的很大一部分工作還是保障業(yè)務(wù)穩(wěn)定性,所以從運(yùn)維轉(zhuǎn)型而來(lái)的占大多數(shù)。
簡(jiǎn)單來(lái)說(shuō),SRE 是傳統(tǒng)運(yùn)維的升級(jí)版,區(qū)別于傳統(tǒng)運(yùn)維的地方:
不再負(fù)責(zé)和物理設(shè)備打交道,這部分交給云服務(wù)了。 通過(guò)體系化的手段來(lái)保障業(yè)務(wù)穩(wěn)定性,比如構(gòu)建自動(dòng)化工具,和研發(fā)團(tuán)隊(duì)一起制定 SLO (Service Level Objective),讓雙方有可以一起遵守的契約,來(lái)保證服務(wù)的健康度。 工程研發(fā)能力。SRE 也可以說(shuō)是具備研發(fā)能力的運(yùn)維,有些 SRE 還具備很強(qiáng)的研發(fā)能力,比如監(jiān)控軟件 Prometheus 的作者就曾是 Google 的 SRE。

上圖描繪了研發(fā) (Dev),SRE,運(yùn)維 (Ops) 的交叉關(guān)系。研發(fā)和運(yùn)維基本上是沒(méi)有交集的,而 SRE 就像前面說(shuō)的是具備研發(fā)能力的運(yùn)維,但整體還是更偏運(yùn)維一點(diǎn)。
DevOps
DevOps 是一種體系,前面提到研發(fā) Dev 和運(yùn)維 Ops 這兩個(gè)工種是沒(méi)有交集的,DevOps 就是要把這兩個(gè)工種融合在一起,更確切的講,是要讓 Dev 去承擔(dān) Ops 的工作。
在 DevOps 的體系里,是沒(méi)有傳統(tǒng)運(yùn)維這個(gè)角色的,運(yùn)維的職能可能由研發(fā)和 SRE 共同分擔(dān),也有可能由研發(fā)獨(dú)自承擔(dān),連 SRE 角色都沒(méi)有。后一種情況下,研發(fā)等于變成了全干工程師。
總結(jié)
當(dāng)年 SRE,DevOps 的概念一出來(lái),不少傳統(tǒng)運(yùn)維/研發(fā)團(tuán)隊(duì)就像抓到根救命稻草,馬上披上 SRE,DevOps 馬甲,但做的事情其實(shí)一點(diǎn)沒(méi)變。就像現(xiàn)在許多公司雖然把 KPI 改成 OKR ,但績(jī)效考核方式還是一模一樣,所以搞的大家云里霧里。
最后再小結(jié)一下這里面容易混淆的幾個(gè)點(diǎn):
搞不清楚 SRE 和運(yùn)維工種之間的區(qū)別。簡(jiǎn)單理解,SRE 是會(huì)寫(xiě)代碼的運(yùn)維,是傳統(tǒng)運(yùn)維的升級(jí)版。 搞不清楚 DevOps 是體系還是工種。這個(gè)取決于上下文,DevOps 起初代表的是一套體系,融合研發(fā)和運(yùn)維的職能。這個(gè)體系下可能研發(fā)和 SRE 同時(shí)存在,也可能只有研發(fā)存在。后一種情況就也會(huì)用體系的名字,也就是 DevOps 來(lái)表示工種,所謂的 DevOps 工程師。畢竟如果一個(gè)足球陣型里模糊了前鋒,中場(chǎng),后衛(wèi)這些位置邊界,那陣型名字就可以叫自由陣,所有球員都被稱(chēng)作自由人也很合理。 當(dāng) DevOps 作為工種理解時(shí),搞不清楚和 SRE 的區(qū)別。簡(jiǎn)單理解,DevOps 是做運(yùn)維的研發(fā),SRE 是做研發(fā)的運(yùn)維。
以上就是本文的全部?jī)?nèi)容,如果覺(jué)得還不錯(cuò)的話歡迎點(diǎn)贊,轉(zhuǎn)發(fā)和關(guān)注,感謝支持。
推薦閱讀:
