新聞中心
SRE與DevOps是敵是友?未來將由誰來主導(dǎo)?
云計算 Site Reliability Engineering (SRE) 和 DevOps 是目前相當(dāng)熱門的開發(fā)與運維文化,有著很高的相似程度。SRE是什么?它與DevOps有什么關(guān)系?本文將對兩者之間的異同點進(jìn)行簡單的討論。

前言
Site Reliability Engineering (SRE) 和 DevOps 是目前相當(dāng)熱門的開發(fā)與運維文化,有著很高的相似程度。SRE是什么?它與DevOps有什么關(guān)系?本文將對兩者之間的異同點進(jìn)行簡單的討論。
SRE產(chǎn)生背景
Google公司在發(fā)展過程中,同樣也遇到了運維人員與開發(fā)人員目標(biāo)矛盾的問題,開發(fā)人員專注于創(chuàng)建新功能并推向生產(chǎn),運維人員卻試圖保證生產(chǎn)穩(wěn)定性。為了緩解這兩個部門的矛盾,Google的一位工程副總裁Ben Treynor考慮出了一種新的解決方案。招募及內(nèi)部轉(zhuǎn)崗具有研發(fā)背景的軟件工程師后不再獨立屬于系統(tǒng)管理員團(tuán)隊或者ops團(tuán)隊,而是獨立設(shè)計創(chuàng)造軟件系統(tǒng)來維護(hù)系統(tǒng)運行以及替代傳統(tǒng)模型中的人工操作,實現(xiàn)解決方案自動化。
站點可靠性工程(SRE)崗位隨即應(yīng)運而生。SRE工程師負(fù)責(zé)生產(chǎn)環(huán)境的穩(wěn)定性,但同時又致力于新功能和運維改進(jìn)。Google認(rèn)為SRE團(tuán)隊?wèi)?yīng)由50%的軟件工程師和50%的系統(tǒng)管理員組成。軟件工程師通過軟件來實現(xiàn)歷史上手工解決的問題,并且與開發(fā)人員輕松集成,促進(jìn)代碼質(zhì)量改進(jìn)和自動化測試等。團(tuán)隊目的是幫助Google生產(chǎn)環(huán)境服務(wù)運行更穩(wěn)定、健壯、可靠。
DevOps和SRE區(qū)別
SREs VS DevOps
DevOps的概念就是將開發(fā)與運維結(jié)合起來,定義系統(tǒng)的行為,并了解需要做些什么來彌補(bǔ)兩個團(tuán)隊之間的“鴻溝”。這個概念背后的理論是關(guān)于使兩個團(tuán)隊合而為一需要做些什么。但SRE卻談到了"如何"做到。它是通過使用正確的工作方法,工具等將理論部分?jǐn)U展到有效的工作流程。這還涉及到在每個人之間分擔(dān)責(zé)任,并使每個人都具有相同的目標(biāo)和愿景。
我們通過DevOps的5個原則來對比下DevOps和SRE的區(qū)別:
減少部門間的孤島
大型企業(yè)中通常都會有比較復(fù)雜的組織架構(gòu),很多團(tuán)隊之間都是獨立工作,各自發(fā)布各自的產(chǎn)品,并沒有與公司其他部門溝通交流,因此,部門之間了解不夠,不能從整體上把控全局。
DevOps的工作是減少這些鴻溝,并確保團(tuán)隊中不存在與公司其他部門不符的團(tuán)隊。他們以共同的愿景將團(tuán)隊最小化并橋接到一個小組中。
SRE不再關(guān)注公司中有多少鴻溝,而是在談?wù)撊绾巫屗腥藚⑴c討論。這是通過使用整個公司相同的工具和技術(shù)來完成的,例如公司中臺。
故障接受程度
SRE故障標(biāo)識符
盡管DevOps的概念是在故障發(fā)生之前進(jìn)行處理和應(yīng)對,但是現(xiàn)實情況千變?nèi)f化,我們無法完全避免故障發(fā)生。DevOps通過將故障視為必然發(fā)生的事情來接受這一點,通過事后復(fù)盤等方式總結(jié)經(jīng)驗來幫助團(tuán)隊學(xué)習(xí)和成長。
在SRE看來,故障雖然不可避免,但是可以通過制定一個公式來平衡事故與新版本之間的關(guān)系來實現(xiàn)此目標(biāo)。換句話說,SRE希望確保沒有太多故障或失敗,即使這些失敗的經(jīng)驗是我們學(xué)習(xí)成長的途徑。
SRE通過兩個關(guān)鍵標(biāo)識符來衡量該公式:服務(wù)水平指標(biāo)(SLI)和服務(wù)水平目標(biāo)(SLO)。SLI是隨時間變化的指標(biāo),例如請求延遲,每秒請求的吞吐量或每個請求的失敗。這些通常會隨時間匯總,然后轉(zhuǎn)換為比率,平均值或受閾值限制的百分位數(shù)。SLO源自此閾值,百分比或數(shù)量,表示SLI在一段時間內(nèi)(例如“過去30天”或“本季度”)內(nèi)SLI累積成功的目標(biāo)。
在Google,區(qū)分SLO和服務(wù)水平協(xié)議(SLA),這是服務(wù)商對使用者的可靠性保證。SLA中的可用性SLO通常比內(nèi)部可用性SLO寬松。
實施漸進(jìn)式改革
企業(yè)希望經(jīng)常發(fā)布產(chǎn)品,不斷更新產(chǎn)品,并且讓團(tuán)隊人員可以持續(xù)關(guān)注新技術(shù)。
DevOps和SRE都是針對此目標(biāo)的,但是是以漸進(jìn)的方式處理的。DevOps和SRE都希望快速發(fā)展,Google指出SRE強(qiáng)調(diào)在這樣做的同時降低故障成本。
工具和自動化
職責(zé)不同導(dǎo)致兩個職位工作內(nèi)容也不盡相同,從而導(dǎo)致工具也略微不同。
DevOps工作內(nèi)容是主要為開發(fā)鏈路服務(wù),一個DevOps團(tuán)隊通常會提供一串工具鏈,這其中會包括:開發(fā)工具、版本管理工具、CI持續(xù)交付工具、CD持續(xù)發(fā)布工具、報警工具、故障處理。
而SRE團(tuán)隊則關(guān)注更為關(guān)注變更、故障、性能、容量相關(guān)問題,會涉及具體業(yè)務(wù),產(chǎn)出工具鏈會有:容量測量工具、Logging 日志工具、Tracing 調(diào)用鏈路跟蹤工具、Metrics 性能度量工具、監(jiān)控報警工具等。
但是目的是一樣的,都是希望通過消除手動操作來為開發(fā)人員和運維人員提供價值。
結(jié)果度量
DevOps和SRE團(tuán)隊都需要確保他們朝著正確的方向發(fā)展,DevOps度量結(jié)果偏向自動化實現(xiàn)程度及項目交付的速度,SRE度量結(jié)果更加偏向于可靠性與穩(wěn)定性。
SRE關(guān)鍵詞是「高擴(kuò)展性」「高可用性」。高擴(kuò)展性是指當(dāng)服務(wù)用戶數(shù)量暴增時,應(yīng)用系統(tǒng)以及支撐其服務(wù)(服務(wù)器資源、網(wǎng)絡(luò)系統(tǒng)、數(shù)據(jù)庫資源)可以在不調(diào)整系統(tǒng)結(jié)構(gòu),不強(qiáng)化機(jī)器本身性能 ,僅僅增加實例數(shù)量方式進(jìn)行擴(kuò)容。高可用性是指,應(yīng)用架構(gòu)中任何環(huán)節(jié)出現(xiàn)不可用時,比如應(yīng)用服務(wù)、網(wǎng)關(guān)、數(shù)據(jù)庫 等系統(tǒng)掛掉,整個系統(tǒng)可以在可短時間內(nèi)恢復(fù)并重新提供服務(wù)。
DevOps和SRE關(guān)系
DevOps和SRE都接受一種理念,即為了改進(jìn),變更是必要的。
合作是DevOps工作的核心,有效共享和合作是SRE發(fā)揮作用的必要條件。與DevOps一樣,SRE也具有跨組織共享的強(qiáng)大價值,這樣更容易打破團(tuán)隊之間的鴻溝。
生產(chǎn)服務(wù)器故障發(fā)生時,SRE和DevOps都應(yīng)該進(jìn)行各自的事故復(fù)盤,目的為了消除無意義的爭論與甩鍋以及知識沉淀。
使用正確的工具至關(guān)重要,工具在一定程度上決定了工作效率。
結(jié)果度量是DevOps和SRE如何工作的關(guān)鍵。對于SRE, SLOs (服務(wù)質(zhì)量目標(biāo)) 決定著是否改善和優(yōu)化服務(wù)。當(dāng)然,如果沒有度量以及在產(chǎn)品、基礎(chǔ)設(shè)施/SRE和業(yè)務(wù)之間的跨團(tuán)隊合作,就不可能有SLOs。對于DevOps,結(jié)果度量行為通常用于理解流程的輸出是什么,反饋周期的持續(xù)時間是什么等等。
DevOps或SRE是一種整體行為,愿景就是用一種特定的工作方式共同協(xié)作,促使整個團(tuán)隊運營的更好。
DevOps和SRE在其日常工作中存在非常大的重疊。正如托爾斯泰說過的:有效的操作方法都是相似的,而失敗的方法都有各自的失敗之處。
結(jié)論
在IT運維整體領(lǐng)域的許多方面,雖然兩者多多少少有些不同,但實際DevOps和SRE在實踐和理念上都非常接近。兩者都有助于合并開發(fā)人員和運維人員,同時承擔(dān)相似的責(zé)任,并專注于實現(xiàn)自動化和可靠性。實施任何一個都是一個較長的過程,而不是一個快速解決方案。DevOps關(guān)注的范圍更廣,因此很難將每一步都規(guī)范成一個具體的流程,但正是因為廣泛的關(guān)注,前期遇到的阻力可能會跟小。SRE將大部分時間花費在技術(shù)和流程方面的職責(zé)上,與其他團(tuán)隊合作,提供適當(dāng)?shù)谋O(jiān)控、事件響應(yīng)和管理,共同實現(xiàn)可靠性的目標(biāo)。
歸根到底,無論是DevOps還是SRE,都面臨著同樣的目標(biāo)與愿景:讓生產(chǎn)環(huán)境變得更好---不管被稱為什么!
文章題目:SRE與DevOps是敵是友?未來將由誰來主導(dǎo)?
文章來源:http://m.5511xx.com/article/copiceo.html


咨詢
建站咨詢
