DevOps和SRE有什么不同,每个意味着什么
點(diǎn)擊上方“朱小廝的博客”,選擇“設(shè)為星標(biāo)”
后臺(tái)回復(fù)"加群",加入新技術(shù)
DevOps和SRE似乎是同一枚硬幣的兩個(gè)面。他們都旨在彌合開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)之間的鴻溝,都想要提高軟件部署的效率和軟件運(yùn)行的可靠性。
在大多數(shù)公司中,我們可以看到開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)的職責(zé)和能力會(huì)有重疊。那么DevOps和SRE有什么不同,每個(gè)意味著什么?讓我們來(lái)看看。
開(kāi)發(fā),運(yùn)維和可靠性
在實(shí)施DevOps之前,開(kāi)發(fā)和運(yùn)維團(tuán)隊(duì)是兩個(gè)獨(dú)立的團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)都有自己的目標(biāo)。這些團(tuán)隊(duì)之間的差異和溝通缺乏,通常會(huì)影響產(chǎn)品,從而最終影響用戶體驗(yàn)和公司效益。
為了更好地溝通和構(gòu)建更好的產(chǎn)品,DevOps已成為每個(gè)公司中最關(guān)鍵的職位之一。
DevOps的定義是“一種軟件工程文化和實(shí)踐,旨在統(tǒng)一開(kāi)發(fā)和運(yùn)維” 。這個(gè)術(shù)語(yǔ)最初是由Andrew Shafer和Patrick Debois于2008年創(chuàng)造的,雖然花了幾年時(shí)間才成為一個(gè)通用概念,但如今,幾乎每個(gè)企業(yè)都在使用DevOps。
Site Reliability Engineer(SRE)的概念自2003年以來(lái)一直存在,比DevOps還要古老。它是由創(chuàng)建Google的本·特雷諾(Ben Treynor)創(chuàng)造的。根據(jù)Treynor所說(shuō),SRE是“軟件開(kāi)發(fā)工程師開(kāi)始承擔(dān)運(yùn)維人員的任務(wù)”
像DevOps一樣,SRE也會(huì)整合開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì),幫助他們熟悉另一個(gè)團(tuán)隊(duì)的工作和任務(wù),同時(shí)使得整個(gè)應(yīng)用程序生命周期具有可見(jiàn)性。
DevOps和SRE都倡導(dǎo)自動(dòng)化和監(jiān)視,其目標(biāo)都是減少?gòu)拈_(kāi)發(fā)到部署生產(chǎn)中的時(shí)間,同時(shí)又不影響代碼或產(chǎn)品的質(zhì)量。
Google指出,SRE和DevOps彼此之間并沒(méi)有太大區(qū)別:“在軟件開(kāi)發(fā)和運(yùn)維方面,他們不是競(jìng)爭(zhēng)關(guān)系,而是旨在打破組織障礙,使得更快地交付更好的軟件的親密朋友。”
DevOps和SRE之間的差異
如前所述,DevOps的概念就是將開(kāi)發(fā)與運(yùn)維結(jié)合起來(lái),定義系統(tǒng)的行為,并了解需要做些什么來(lái)彌合開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)之間的“鴻溝”。DevOps的理論是關(guān)于使開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)合而為一需要做些什么。
根據(jù)Google的說(shuō)法,這就是DevOps和SRE之間的主要區(qū)別所在。DevOps只是關(guān)心需要做什么,但SRE卻談到了如何可以做到。SRE是通過(guò)使用正確的方法,工具等將理論部分?jǐn)U展為有效的工作流程。這還涉及在每個(gè)人之間分擔(dān)責(zé)任,并使每個(gè)人都具有相同的目標(biāo)和愿景。
為了進(jìn)一步說(shuō)明兩者之間的區(qū)別,Google發(fā)布了一系列視頻和帖子,介紹了DevOps和SRE的不同之處。其中兩位Google員工(Seth Vargo和Liz Fong-Jones)撰寫(xiě)的一篇文章中,他們解釋了SRE
“體現(xiàn)了DevOps的理念,更加注重通過(guò)軟件工程師和運(yùn)維人員的工作來(lái)衡量和實(shí)現(xiàn)可靠性。”
Seth Vargo和Liz Fong-Jones通過(guò)以下5個(gè)方面解釋了DevOps和SRE之間的異同:
1. 減少組織項(xiàng)目獨(dú)立
通常組織結(jié)構(gòu)復(fù)雜的的大型企業(yè),有許多團(tuán)隊(duì)是獨(dú)立工作。每個(gè)團(tuán)隊(duì)都將產(chǎn)品推向不同的方向,沒(méi)有與公司的其他成員進(jìn)行交流,因此,他們無(wú)法從整體上了解產(chǎn)品全局。這可能會(huì)在部署中的引發(fā)問(wèn)題。
DevOps的工作是減少孤島,并確保不同團(tuán)隊(duì)最終目標(biāo)一致。通過(guò)共同的愿景將團(tuán)隊(duì)組織起來(lái)。
SRE不再談?wù)摴局杏卸嗌侏?dú)立項(xiàng)目,而是在談?wù)撊绾巫屗腥藚⑴c。這是通過(guò)使用整個(gè)公司相同的工具和技術(shù)來(lái)完成的,作為回報(bào),這有助于在每個(gè)人之間共享所有權(quán)。
2. 接受故障
盡管DevOps的概念是在故障出現(xiàn)之前進(jìn)行預(yù)防,但是不幸的是,我們無(wú)法避免故障。DevOps通過(guò)將故障視為必然發(fā)生的事情。
在SRE中,通過(guò)制定一個(gè)公式來(lái)統(tǒng)計(jì)故障。換句話說(shuō),SRE希望沒(méi)有太多錯(cuò)誤或失敗。
該公式,用兩個(gè)關(guān)鍵標(biāo)識(shí)符來(lái)衡量:服務(wù)水平指標(biāo)( Service Level Indicators ,即SLIs)和服務(wù)水平目標(biāo)( Service Level Objectives ,即SLOs)。
SLIs 通過(guò)計(jì)算請(qǐng)求延遲,每秒請(qǐng)求的吞吐量、失敗次數(shù)來(lái)衡量每個(gè)請(qǐng)求的失敗。SLOs 源表示SLI在一定時(shí)間內(nèi)的成功。
3. 實(shí)施漸進(jìn)式變革
越來(lái)越多的公司希望能夠頻繁發(fā)布,不斷更新迭代自己的產(chǎn)品,并使團(tuán)隊(duì)成員時(shí)刻關(guān)注新技術(shù)和相關(guān)技術(shù)。
DevOps的目標(biāo)也是如此,但要以漸進(jìn)和可處理的方式進(jìn)行。DevOps和SRE都希望快速發(fā)展,SRE強(qiáng)調(diào)在這樣做的同時(shí)降低故障成本。
4. 工具化和自動(dòng)化
如前所述,自動(dòng)化是DevOps和SRE的主要重點(diǎn)之一。DevOps和SRE都鼓勵(lì)盡可能增加工具和實(shí)現(xiàn)自動(dòng)化,通過(guò)消除人為操作為開(kāi)發(fā)人員和運(yùn)維降低出錯(cuò)率。
5. 衡量一切
自動(dòng)化工作流程需要不斷監(jiān)控。DevOps和SRE團(tuán)隊(duì)都需要確保他們朝著正確的方向發(fā)展,并通過(guò)衡量一切來(lái)做到這一點(diǎn)。
這里的主要區(qū)別在于,SRE圍繞”運(yùn)維是軟件問(wèn)題( operations are a software problem)“的概念展開(kāi),從而使他們定義了一些可用性度量方法。
SRE還確保公司中的每個(gè)人知道如何衡量可靠性,以及在出現(xiàn)故障時(shí)該怎么做。
可靠意味著什么?
上面,我們討論了責(zé)任劃分,接受失敗以及衡量一切。現(xiàn)在,我們需要一種方法來(lái)確保一切都確實(shí)能夠正常運(yùn)行并且可靠。換句話說(shuō),應(yīng)該有一個(gè)統(tǒng)一的方法來(lái)測(cè)量每個(gè)級(jí)別的可靠性。
SRE通過(guò) SLIs 和 SLOs 來(lái)衡量,DevOps團(tuán)隊(duì)會(huì)衡量失敗率以及一段時(shí)間內(nèi)的成功率,并且兩者通常都是使用不同的工具和方法來(lái)進(jìn)行的。可靠性不僅與基礎(chǔ)架構(gòu)有關(guān),而且也與應(yīng)用程序質(zhì)量,性能、安全性息息相關(guān)。
問(wèn)題可能在應(yīng)用程序的不同方面發(fā)生,并且當(dāng)發(fā)生故障時(shí),我們需要擁有可靠的數(shù)據(jù),來(lái)了解問(wèn)題發(fā)生的原因。如果我們將數(shù)據(jù)細(xì)分,包括:
- 堆棧信息 
- 變量狀態(tài) 
- JVM狀態(tài):線程,環(huán)境變量 
- 相關(guān)日志語(yǔ)句(包括生產(chǎn)中的DEBUG和TRACE) 
- 事件分析(頻率,失敗率,部署,應(yīng)用程序) 
由于這些數(shù)據(jù)是至關(guān)重要的信息,因此我們必須確保它是可靠且可操作的
總結(jié)
SRE,有明確的定義,并提出了一系列直接的期望。然而,DevOps更像是一種“自由精神”,其定義和觀點(diǎn)因組織而異。
但是,DevOps和SRE團(tuán)隊(duì)并沒(méi)有太大區(qū)別。兩者都有助于整合開(kāi)發(fā)人員和運(yùn)維團(tuán)隊(duì),同時(shí)承擔(dān)相似的責(zé)任,并專(zhuān)注于實(shí)現(xiàn)自動(dòng)化和可靠性。
最重要的是,一切都與數(shù)據(jù)有關(guān)。你需要數(shù)據(jù)信息來(lái)衡量成功和失敗,以及如何在整個(gè)應(yīng)用程序中獲得持續(xù)的可靠性。
英文原文鏈接:?https://dzone.com/articles/devops-or-sre-differences-similarities-and-which-r
想知道更多?掃描下面的二維碼關(guān)注我
后臺(tái)回復(fù)”加群“獲取公眾號(hào)專(zhuān)屬群聊入口
當(dāng)當(dāng)618圖書(shū)優(yōu)惠活動(dòng),每滿100-50,我這里還有一批“實(shí)付滿200再減30”的優(yōu)惠碼TEGNC6?,囤書(shū)薅羊毛再走一波~~(使用時(shí)間:5月18~6月1日,使用渠道:當(dāng)當(dāng)小程序或當(dāng)當(dāng)APP)
朕已閱?
總結(jié)
以上是生活随笔為你收集整理的DevOps和SRE有什么不同,每个意味着什么的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 40个Java多线程问题详解复习
- 下一篇: Apache Kafka 不需要管理员:
