五月天黄色电影天堂网站_亚洲亚洲色爽免影院_亚洲国产欧美日韩另类_a免费高清无码电影

知識分享

DevOps開發(fā)運維 和 SRE 有什么不同,每個意味著什么?

發(fā)布時間:2020-09-03 點擊數(shù):3188

DevOps開發(fā)運維培訓


DevOps 和 SRE 似乎是同一枚硬幣的兩個面。他們都旨在彌合開發(fā)團隊和運維團隊之間的鴻溝,都想要提高軟件部署的效率和軟件運行的可靠性。

在大多數(shù)公司中,我們可以看到開發(fā)團隊和運維團隊的職責和能力會有重疊。那么 DevOps 和 SRE 有什么不同,每個意味著什么?讓我們來看看。


【開發(fā)運維可靠性

在實施 DevOps 開發(fā)運維之前,開發(fā)和運維團隊是兩個獨立的團隊,每個團隊都有自己的目標。這些團隊之間的差異和溝通缺乏,通常會影響產(chǎn)品,從而最終影響用戶體驗和公司效益。


為了更好地溝通和構建更好的產(chǎn)品,DevOps 已成為每個公司中最關鍵的職位之一。


DevOps 的定義是“一種軟件工程文化和實踐,旨在統(tǒng)一開發(fā)和運維” 。這個術語最初是由 Andrew Shafer 和 Patrick Debois 于2008年創(chuàng)造的,雖然花了幾年時間才成為一個通用概念,但如今,幾乎每個企業(yè)都在使用 DevOps。


Site Reliability Engineer(SRE) 的概念自2003年以來一直存在,比 DevOps 還要古老。它是由創(chuàng)建 Google 的本·特雷諾(Ben Treynor)創(chuàng)造的。根據(jù) Treynor 所說,SRE 是“軟件開發(fā)工程師開始承擔運維人員的任務”

像 DevOps 一樣,SRE 也會整合開發(fā)團隊和運維團隊,幫助他們熟悉另一個團隊的工作和任務,同時使得整個應用程序生命周期具有可見性。

DevOps 和 SRE 都倡導自動化和監(jiān)視,其目標都是減少從開發(fā)到部署生產(chǎn)中的時間,同時又不影響代碼或產(chǎn)品的質量。

Google 指出,SRE 和 DevOps 彼此之間并沒有太大區(qū)別:“在軟件開發(fā)和運維方面,他們不是競爭關系,而是旨在打破組織障礙,使得更快地交付更好的軟件的親密朋友。”


【DevOps和SRE之間的差異

如前所述,DevOps 的概念就是將開發(fā)與運維結合起來,定義系統(tǒng)的行為,并了解需要做些什么來彌合開發(fā)團隊和運維團隊之間的“鴻溝”。DevOps 的理論是關于使開發(fā)團隊和運維團隊合而為一需要做些什么。根據(jù) Google 的說法,這就是 DevOps 和 SRE 之間的主要區(qū)別所在。DevOps 只是關心需要做什么,但 SRE 卻談到了如何可以做到。SRE 是通過使用正確的方法,工具等將理論部分擴展為有效的工作流程。這還涉及在每個人之間分擔責任,并使每個人都具有相同的目標和愿景。為了進一步說明兩者之間的區(qū)別,Google 發(fā)布了一系列視頻和帖子,介紹了DevOps和SRE的不同之處。其中兩位 Google 員工(Seth Vargo和Liz Fong-Jones)撰寫的一篇文章中,他們解釋了 SRE

“體現(xiàn)了 DevOps 認證培訓的理念,更加注重通過軟件工程師和運維人員的工作來衡量和實現(xiàn)可靠性?!?/span>

Seth Vargo 和 Liz Fong-Jones 通過以下5個方面解釋了 DevOps 和 SRE 之間的異同:


【減少組織項目獨立

通常組織結構復雜的的大型企業(yè),有許多團隊是獨立工作。每個團隊都將產(chǎn)品推向不同的方向,沒有與公司的其他成員進行交流,因此,他們無法從整體上了解產(chǎn)品全局。這可能會在部署中的引發(fā)問題。

DevOps 的工作是減少孤島,并確保不同團隊最終目標一致。通過共同的愿景將團隊組織起來。

SRE 不再談論公司中有多少獨立項目,而是在談論如何讓所有人參與。這是通過使用整個公司相同的工具和技術來完成的,作為回報,這有助于在每個人之間共享所有權。


【接受故障

盡管 DevOps 的概念是在故障出現(xiàn)之前進行預防,但是不幸的是,我們無法避免故障。DevOps 通過將故障視為必然發(fā)生的事情。

在SRE中,通過制定一個公式來統(tǒng)計故障。換句話說,SRE希望沒有太多錯誤或失敗。

該公式,用兩個關鍵標識符來衡量:服務水平指標( Service Level Indicators ,即SLIs)和服務水平目標( Service Level Objectives ,即SLOs)。

SLIs 通過計算請求延遲,每秒請求的吞吐量、失敗次數(shù)來衡量每個請求的失敗。SLOs 源表示SLI在一定時間內(nèi)的成功。


【實施逐進式變革

越來越多的公司希望能夠頻繁發(fā)布,不斷更新迭代自己的產(chǎn)品,并使團隊成員時刻關注新技術和相關技術。

DevOps 的目標也是如此,但要以漸進和可處理的方式進行。DevOps 和 SRE 都希望快速發(fā)展,SRE 強調在這樣做的同時降低故障成本。


【工具化和自動化

如前所述,自動化是 DevOps 和 SRE 的主要重點之一。DevOps和SRE都鼓勵盡可能增加工具和實現(xiàn)自動化,通過消除人為操作為開發(fā)人員和運維降低出錯率。


【衡量一切

自動化工作流程需要不斷監(jiān)控。DevOps 和 SRE 團隊都需要確保他們朝著正確的方向發(fā)展,并通過衡量一切來做到這一點。

這里的主要區(qū)別在于,SRE圍繞”運維是軟件問題( operations are a software problem)“的概念展開,從而使他們定義了一些可用性度量方法。

SRE 還確保公司中的每個人知道如何衡量可靠性,以及在出現(xiàn)故障時該怎么做。


【可靠意味著什么

上面,我們討論了責任劃分,接受失敗以及衡量一切?,F(xiàn)在,我們需要一種方法來確保一切都確實能夠正常運行并且可靠。換句話說,應該有一個統(tǒng)一的方法來測量每個級別的可靠性。

SRE通過 SLIs 和 SLOs 來衡量,DevOps團隊會衡量失敗率以及一段時間內(nèi)的成功率,并且兩者通常都是使用不同的工具和方法來進行的。可靠性不僅與基礎架構有關,而且也與應用程序質量,性能、安全性息息相關。

問題可能在應用程序的不同方面發(fā)生,并且當發(fā)生故障時,我們需要擁有可靠的數(shù)據(jù),來了解問題發(fā)生的原因。如果我們將數(shù)據(jù)細分,包括:


  • 堆棧信息
  • 變量狀態(tài)
  • JVM狀態(tài):線程,環(huán)境變量
  • 相關日志語句(包括生產(chǎn)中的DEBUG和TRACE)
  • 事件分析(頻率,失敗率,部署,應用程序)


由于這些數(shù)據(jù)是至關重要的信息,因此我們必須確保它是可靠且可操作的


【總結

SRE,有明確的定義,并提出了一系列直接的期望。然而,DevOps 更像是一種“自由精神”,其定義和觀點因組織而異。但是,DevOps 和 SRE 團隊并沒有太大區(qū)別。兩者都有助于整合開發(fā)人員和運維團隊,同時承擔相似的責任,并專注于實現(xiàn)自動化和可靠性。最重要的是,一切都與數(shù)據(jù)有關。你需要數(shù)據(jù)信息來衡量成功和失敗,以及如何在整個應用程序中獲得持續(xù)的可靠性。

譯者王延飛

來源:本文轉自公眾號 K8S 中文社區(qū)