Google Cloud:從SRE到Anthos DevOps的工具與實(shí)踐

來(lái)源: Google Cloud
作者:Google Cloud
時(shí)間:2021-02-26
18167
系統(tǒng)可靠性工程(Site Reliability Engineering),簡(jiǎn)稱SRE,是在Google實(shí)踐了有15年以上的DevOps工程實(shí)現(xiàn)。

寫在前面

系統(tǒng)可靠性工程(Site Reliability Engineering),簡(jiǎn)稱SRE,是在Google實(shí)踐了有15年以上的DevOps工程實(shí)現(xiàn)。

“DevOps是一種重視「軟件開(kāi)發(fā)人員(Dev)」和「IT運(yùn)維技術(shù)人員(Ops)」之間溝通合作的文化、運(yùn)動(dòng)或慣例。透過(guò)自動(dòng)化「軟件交付」和「架構(gòu)變更」的流程,來(lái)使得構(gòu)建、測(cè)試、發(fā)布軟件能夠更加地快捷、頻繁和可靠?!?-- 維基百科對(duì)DevOps的定義。而Google定義SRE是DevOps的一種實(shí)現(xiàn)(軟件工程意義上的實(shí)現(xiàn),implement),SRE滿足了DevOps的五個(gè)核心要求:

1.     減低組織隔閡,特別的,指開(kāi)發(fā)部門和運(yùn)維部門的隔閡

○      SRE工程師與開(kāi)發(fā)人員共擔(dān)責(zé)任

○      SRE工程師和開(kāi)發(fā)人員使用同樣的工具

2.     接受“系統(tǒng)失效是常態(tài)”這一事實(shí)

○      SRE擁抱風(fēng)險(xiǎn)

○      SRE用服務(wù)等級(jí)指標(biāo)(SLI)和服務(wù)等級(jí)目標(biāo)(SLO)來(lái)量化系統(tǒng)失效和可用性

○      SRE要求“不指責(zé)(Blameless)”的故障分析(Postmortem)

3.     實(shí)現(xiàn)漸次發(fā)布

○      SRE鼓勵(lì)開(kāi)發(fā)者和產(chǎn)品經(jīng)理通過(guò)提高發(fā)布頻率的方式來(lái)減少發(fā)布帶來(lái)的失效

4.     大規(guī)模使用工具和自動(dòng)化

○      SRE的工作之一就是開(kāi)發(fā)自動(dòng)化工具

5.     度量一切

○      SRE有一整套度量系統(tǒng)的方法

○      從根源上,SRE認(rèn)為運(yùn)維是一個(gè)軟件開(kāi)發(fā)問(wèn)題

Anthos是Google Cloud開(kāi)發(fā)的基于Kubernetes的現(xiàn)代化應(yīng)用平臺(tái)。起初,Google的工程師開(kāi)發(fā)了Borg來(lái)幫助SRE工程師們運(yùn)維數(shù)以萬(wàn)計(jì)的服務(wù)器。2014年Google發(fā)布了Kubernetes,并稱之為開(kāi)源版本的Borg。自此,Google不斷地將SRE的經(jīng)驗(yàn)通過(guò)Kubernetes向外輸出,這些輸出的集大成即為Anthos平臺(tái)。

從本篇開(kāi)始,我們將通過(guò)一系列文章,講述SRE的實(shí)踐以及運(yùn)用Anthos簡(jiǎn)化SRE的落地過(guò)程。并且希望能回答企業(yè)IT運(yùn)維中兩個(gè)直擊靈魂的問(wèn)題:

●      我的系統(tǒng)到底可靠性如何

●      開(kāi)發(fā)要發(fā)新版本,到底是保我的可靠性是讓他們發(fā)新版本

SRE的實(shí)踐(一)

SRE圍繞可用性進(jìn)行運(yùn)維,從業(yè)務(wù)需求的角度來(lái)感知可用性并管理可用性是SRE實(shí)踐的重要部分。所以SRE天生就對(duì)系統(tǒng)可靠性有全面的掌握。SRE同時(shí)認(rèn)為,更新系統(tǒng)帶來(lái)的風(fēng)險(xiǎn)是可控的,而使用一個(gè)已經(jīng)無(wú)人維護(hù)的依賴組件帶來(lái)的風(fēng)險(xiǎn)是不可控的,因此,通過(guò)持續(xù)的更新才能保證系統(tǒng)的可用性。

雖然已經(jīng)有很多文章和書(shū)籍對(duì)SRE進(jìn)行了論述,但作為本系列文章的開(kāi)端,我們還是想先從實(shí)踐的角度,講一講我們?cè)谧鯯RE的咨詢過(guò)程中發(fā)現(xiàn)的問(wèn)題以及得到的經(jīng)驗(yàn)。

改變

我們發(fā)現(xiàn),SRE的落地往往會(huì)在這三個(gè)方面對(duì)現(xiàn)有的IT運(yùn)維部門提出改變:

●      從組織上,SRE需要建立一個(gè)有開(kāi)發(fā)能力的運(yùn)維團(tuán)隊(duì),這個(gè)團(tuán)隊(duì)的多數(shù)精力都應(yīng)該放在開(kāi)發(fā)上,用開(kāi)發(fā)的運(yùn)維工具來(lái)實(shí)現(xiàn)運(yùn)維。剩下的精力應(yīng)在響應(yīng)運(yùn)維事件(On-call)和幫助業(yè)務(wù)開(kāi)發(fā)人員評(píng)審軟件架構(gòu)之間分配。這三部分的時(shí)間分配常常為5:2:3

●      從流程上,SRE的運(yùn)維以服務(wù)等級(jí)目標(biāo)(SLO)為導(dǎo)向。SRE認(rèn)為100%的可靠性是不存在的,承認(rèn)系統(tǒng)存在失效的風(fēng)險(xiǎn)然后量化和管理風(fēng)險(xiǎn)才是SRE的工作目標(biāo)。在與其他部門對(duì)接時(shí),定義并協(xié)商SLO是討論的重點(diǎn);于日常工作時(shí),管理和使用錯(cuò)誤預(yù)算(在一個(gè)時(shí)間段內(nèi),可以發(fā)生故障并且不影響SLO達(dá)成的時(shí)間)則是工作核心

●      在運(yùn)維工具上,需要有工具來(lái)收集數(shù)據(jù)來(lái)實(shí)現(xiàn)“度量”從而滿足SLO的量化計(jì)算,也需要有工具來(lái)實(shí)現(xiàn)自動(dòng)化?,F(xiàn)有的工具往往需要改造以適應(yīng)SRE,選擇一個(gè)合適的起點(diǎn)可以事半功倍

另外,“不指責(zé)”文化也與企業(yè)中現(xiàn)有的“背鍋/甩鍋”文化不太兼容。當(dāng)我的同事聽(tīng)說(shuō)我要參加一個(gè)給傳統(tǒng)企業(yè)做的SRE咨詢項(xiàng)目時(shí),告訴我,如果能讓客戶接受“不指責(zé)”的文化,就可以算做成功了。

流程

SRE圍繞SLO展開(kāi)工作。SRE認(rèn)為100%的可靠性是不存在的,量化風(fēng)險(xiǎn)并管理風(fēng)險(xiǎn)才是正確的目標(biāo)。實(shí)際工作時(shí),SRE會(huì)將SLO轉(zhuǎn)化更易管理的指標(biāo):錯(cuò)誤預(yù)算,如下公式

100% - SLO=錯(cuò)誤預(yù)算

SRE會(huì)監(jiān)控度量系統(tǒng)實(shí)際正常運(yùn)行的時(shí)間,只要正常運(yùn)行的時(shí)間高于目標(biāo),或者說(shuō)錯(cuò)誤預(yù)算還有剩余,SRE就可以做一些可能影響可用性的操作,如發(fā)布新版本等。

如下圖所示,在不同的SLO目標(biāo)下,錯(cuò)誤預(yù)算也有很大的區(qū)別:

ia_500000002.png

更進(jìn)一步,當(dāng)SRE工程師們可以對(duì)錯(cuò)誤率進(jìn)行控制時(shí),他們將可以獲得更大的錯(cuò)誤允許時(shí)間。

SLO是SRE與其他部門對(duì)接時(shí)協(xié)商確定的。一個(gè)常見(jiàn)的爭(zhēng)論是"我們不接受任何的宕機(jī)時(shí)間”或者是“我們要確保100%在線”。但是當(dāng)討論深入的時(shí)候,卻發(fā)現(xiàn)這些100%在線,是指去掉例行維護(hù)時(shí)間之后的在線時(shí)間,更進(jìn)一步,如果被討論的系統(tǒng)是建設(shè)有高可用(HA)的設(shè)施的,HA切換所花的時(shí)間,也會(huì)算作在線時(shí)間。然而在SRE看來(lái),這些例行維護(hù)時(shí)間和HA切換時(shí)間都應(yīng)該被計(jì)入錯(cuò)誤預(yù)算。

當(dāng)轉(zhuǎn)為SLO模式后,運(yùn)維人員可以更靈活的使用這些錯(cuò)誤預(yù)算,并且可以更合理的規(guī)劃和設(shè)計(jì)發(fā)布流程,最終實(shí)現(xiàn)在不改變SLO的前提下,增加發(fā)布頻率。舉例來(lái)說(shuō),灰度發(fā)布可以把錯(cuò)誤率控制在一個(gè)很小的程度,如果在發(fā)布過(guò)程中,監(jiān)控錯(cuò)誤預(yù)算的消耗,并在錯(cuò)誤預(yù)算消耗到一定程度時(shí),暫停發(fā)布或者中止發(fā)布,就可以實(shí)現(xiàn)以可控的錯(cuò)誤預(yù)算消耗來(lái)完成發(fā)布這一目標(biāo),從而實(shí)現(xiàn)更多的版本發(fā)布。更進(jìn)一步,如果把上面的 “發(fā)布-監(jiān)控-控制” 的過(guò)程進(jìn)行自動(dòng)化,則可以實(shí)現(xiàn)無(wú)人值守的自動(dòng)發(fā)布,解除開(kāi)發(fā)人員和運(yùn)維人員之間的隔閡,提高生產(chǎn)效率。在之后的文章中,我們也會(huì)講述一個(gè)自動(dòng)化發(fā)布的案例,本篇按下不表。

對(duì)于企業(yè)管理者來(lái)說(shuō),全面部署SLO模式,還能幫助管理者對(duì)IT系統(tǒng)整體的健康狀態(tài)有一個(gè)更全面精確的認(rèn)識(shí)。進(jìn)一步,通過(guò)識(shí)別薄弱環(huán)節(jié),管理者會(huì)更清楚的知道如何投入資源以獲得更好的健康狀況。

SLO的確定

當(dāng)我們講確定SLO的時(shí)候,其實(shí)是在講兩個(gè)問(wèn)題:首先,用什么指標(biāo)來(lái)定義我們的SLO,然后,這個(gè)SLO應(yīng)該定義為多少,即錯(cuò)誤預(yù)算有多少。

讓我們先來(lái)看看跟SRE有關(guān)的幾個(gè)術(shù)語(yǔ):

●      CUJ –  核心用戶旅程

●      SLI - 服務(wù)等級(jí)指標(biāo)

●      SLO - 服務(wù)等級(jí)目標(biāo)

●      SLA - 服務(wù)等級(jí)協(xié)議

這些定義有些抽象,我們用一個(gè)實(shí)際的例子來(lái)解釋,以內(nèi)存緩存服務(wù)為例,提供數(shù)據(jù)的讀寫即構(gòu)成其CUJ,針對(duì)這兩個(gè)CUJ,它們的操作成功率和操作延遲,我們就獲得了四個(gè)SLI,針對(duì)這幾個(gè)SLI,我們就有討論SLO的依據(jù)。SLO和SLA之間的區(qū)別在于,SLO應(yīng)用于企業(yè)內(nèi)部部門之間,而SLA是企業(yè)與其客戶簽訂的協(xié)議,因此SLA會(huì)引入罰則。所以SLA從數(shù)值上往往低于SLO。

ia_500000003.png

而當(dāng)我們要確定內(nèi)存緩存服務(wù)的SLO時(shí),我們知道網(wǎng)站應(yīng)用的用戶不會(huì)直接訪問(wèn)內(nèi)存緩存,用戶只感受到網(wǎng)站本身的可用性:操作是否成功,操作是不是很慢:

ia_500000004.png

通過(guò)這種方式,應(yīng)用的SRE工程師和內(nèi)存緩存服務(wù)的SRE工程師就可以分別確定自己的SLO需求和對(duì)對(duì)方的SLO的期望,從而協(xié)商出各自的SLO。

小結(jié)

本篇介紹了在SRE實(shí)踐過(guò)程中對(duì)運(yùn)維部門的改變,以及從流程的上如何建立SRE體系核心的SLO協(xié)商。在以后的文章中,我們會(huì)討論SRE在組織上如何改變運(yùn)維,以及SRE對(duì)工具提出的要求。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于Google Cloud,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
進(jìn)軍高增長(zhǎng)市場(chǎng),公司繼續(xù)保持兩位數(shù)增長(zhǎng),谷歌為何應(yīng)該逢低買入?
進(jìn)軍高增長(zhǎng)市場(chǎng),公司繼續(xù)保持兩位數(shù)增長(zhǎng),谷歌為何應(yīng)該逢低買入?
出色的財(cái)務(wù)表現(xiàn)是其堅(jiān)實(shí)基本面的一大亮點(diǎn)。
Google Cloud
投融資
2025-01-222025-01-22
新版GKE可管理最多6.5萬(wàn)集群節(jié)點(diǎn),超越AWS、Azure 10倍
新版GKE可管理最多6.5萬(wàn)集群節(jié)點(diǎn),超越AWS、Azure 10倍
Google Cloud公布最新Google Kubernetes Engine版本,號(hào)稱可支持最高達(dá)65,000個(gè)節(jié)點(diǎn)的服務(wù)器集群,以執(zhí)行超大型AI模型。
Google Cloud
云服務(wù)
云計(jì)算
2024-11-152024-11-15
Google Cloud細(xì)說(shuō)AI變現(xiàn)途徑:用戶一年暴增10倍
Google Cloud細(xì)說(shuō)AI變現(xiàn)途徑:用戶一年暴增10倍
Google云計(jì)算平臺(tái)(Google Cloud)首席執(zhí)行官Thomas Kurian在高盛舉行的會(huì)議上,說(shuō)明了該公司究竟是通過(guò)哪些途徑將AI變現(xiàn)。
Google Cloud
谷歌云
云計(jì)算
2024-09-132024-09-13
云計(jì)算平臺(tái)GCP的服務(wù)存在權(quán)限提升漏洞,未經(jīng)授權(quán)的攻擊者可借此訪問(wèn)敏感數(shù)據(jù)
云計(jì)算平臺(tái)GCP的服務(wù)存在權(quán)限提升漏洞,未經(jīng)授權(quán)的攻擊者可借此訪問(wèn)敏感數(shù)據(jù)
7月24日安全企業(yè)Tenable披露影響Google Cloud Platform(GCP)的權(quán)限提升漏洞ConfusedFunction,這項(xiàng)弱點(diǎn)發(fā)生在名為Cloud Functions的無(wú)服務(wù)器運(yùn)算服務(wù),以及稱作Cloud Build的CICD渠道服務(wù)。
Google Cloud
谷歌云
云計(jì)算
2024-07-272024-07-27
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家