新炬首架梁铭图:从70万字SRE神作提炼出7千字精华与君共勉
梁銘圖
DBAplus社群(dbaplus)
讀完需要
20
分鐘速讀僅需 5 分鐘
作者介紹
梁銘圖,新炬網(wǎng)絡(luò)首席架構(gòu)師,10年以上數(shù)據(jù)庫(kù)運(yùn)維、數(shù)據(jù)分析、數(shù)據(jù)庫(kù)設(shè)計(jì)以及系統(tǒng)規(guī)劃建設(shè)經(jīng)驗(yàn),在數(shù)據(jù)架構(gòu)管理以及數(shù)據(jù)資產(chǎn)管理方面有深入研究。
讀《SRE Google運(yùn)維解密》是我首次比較系統(tǒng)地了解和學(xué)習(xí)Google內(nèi)部SRE運(yùn)作的指導(dǎo)思想、實(shí)踐以及相關(guān)問(wèn)題,最近又花了一些時(shí)間,仔細(xì)閱讀了關(guān)于SRE的第二本書籍《SRE生存指南》。
《SRE?Google運(yùn)維解密》與《SRE生存指南》
SRE首先是一套方法論,它從傳統(tǒng)運(yùn)維中與穩(wěn)定性相關(guān)的工作內(nèi)容提煉出來(lái)進(jìn)行升華,構(gòu)建了SRE的方法論體系。冗余和容災(zāi)、容量規(guī)劃、系統(tǒng)自動(dòng)保護(hù)、失敗預(yù)案、監(jiān)控能力、發(fā)布與變更管理、故障應(yīng)急處理等構(gòu)成了SRE領(lǐng)域的藍(lán)圖,并不斷地快速迭代著。
方法論的落地實(shí)施離不開(kāi)相關(guān)組織和個(gè)人,傳統(tǒng)的運(yùn)維工程師在SRE方法論的熏陶下在系統(tǒng)可用性方面的技能得到了極大的提高,其中一部分傳統(tǒng)運(yùn)維工程師“進(jìn)化”成了技術(shù)含金量極高的SRE工程師,他們聚合在一起,構(gòu)成了專職的SRE團(tuán)隊(duì)。
同樣,方法論的落地還需要有一系列配套的技術(shù)產(chǎn)品和工具來(lái)支撐,與SRE相關(guān)的技術(shù)體系在近幾年也得到迅速發(fā)展,特別是隨著AI技術(shù)的發(fā)展、演進(jìn),兩者結(jié)合產(chǎn)生了奇妙的“化學(xué)反應(yīng)”,使系統(tǒng)可用性保障的效率和性能都獲得了極大的提升。
書中的一些思路讓我對(duì)Google SRE這個(gè)龐大的運(yùn)維體系有了全新的認(rèn)識(shí),里面許多的內(nèi)容令人印象深刻,例如“Mikey金字塔”、“監(jiān)控是研究一個(gè)系統(tǒng)運(yùn)維的基礎(chǔ)”、“故障事后回顧”、“測(cè)試表明缺陷的存在,而不是不存在”等等觀點(diǎn),對(duì)長(zhǎng)期從事于運(yùn)維這個(gè)行當(dāng)?shù)娜藖?lái)說(shuō)應(yīng)該會(huì)有不少啟發(fā)。
下文是我結(jié)合書中的理念和我們?nèi)粘_\(yùn)維實(shí)踐作出的一些解讀,整理并供大家參考。
Mikey 金字塔
? ?
Mikey金字塔是由美國(guó)數(shù)字服務(wù)公司的Mikey Dickerson設(shè)計(jì)的。層次結(jié)構(gòu)是為了說(shuō)明,當(dāng)嘗試提高系統(tǒng)可靠性時(shí)需要按部就班,在到達(dá)更高級(jí)別之前滿足每個(gè)低別級(jí)的要求。
Mikey金字塔
Mikey金字塔可以說(shuō)是本書作者總結(jié)SRE運(yùn)維體系的靈魂,自下而上分為監(jiān)控、事故響應(yīng)、事后回顧、測(cè)試與發(fā)布、容量規(guī)劃、構(gòu)建工具、用戶體驗(yàn)等七層。每一層都建立在前一層的基礎(chǔ)之上,每一層都被溝通這個(gè)基本要求所包圍。
從這個(gè)框架內(nèi)容,我個(gè)人認(rèn)為SRE運(yùn)維所遵守幾個(gè)基本原則:
1)以業(yè)務(wù)連續(xù)性為目標(biāo)
SRE的根本出發(fā)點(diǎn)和目標(biāo)就是業(yè)務(wù)連續(xù)性。由于軟件做不到100%完全可靠,一方面,我們基礎(chǔ)設(shè)施做不到完美,各部分出故障是常態(tài),這會(huì)影響到應(yīng)用可用性;另一方面,我們的軟件是人編寫的,所以Bug不可避免,Bug出現(xiàn)也會(huì)引起異常停機(jī)。SRE做到的是盡可能快的發(fā)現(xiàn)和處理故障,并找到可能發(fā)生的故障,在預(yù)算范圍內(nèi)以有用的方式優(yōu)化應(yīng)用、基礎(chǔ)設(shè)施,滿足用戶體驗(yàn)的需求。
2)從技術(shù)到業(yè)務(wù)
從監(jiān)控、事故響應(yīng)、事后回顧、測(cè)試與發(fā)布、容量規(guī)劃、開(kāi)發(fā)到用戶體驗(yàn)這七層的遞進(jìn),可以看出SRE運(yùn)維不只是單純的技術(shù)棧(主機(jī)、存儲(chǔ)、基礎(chǔ)軟件設(shè)施等)的設(shè)備運(yùn)維,SRE還逐步延伸業(yè)務(wù)運(yùn)維領(lǐng)域,管理應(yīng)用發(fā)布、業(yè)務(wù)需求以及用戶對(duì)系統(tǒng)體驗(yàn)的總體期望。這種從技術(shù)棧到業(yè)務(wù)棧的遞進(jìn),體現(xiàn)了SRE運(yùn)維體系對(duì)傳統(tǒng)運(yùn)維體系演進(jìn)和拓展。
3)高度自動(dòng)化和工具化
SRE本身是一個(gè)軟件工程師以軟件工程的方法解決運(yùn)維問(wèn)題的體系,因此就自身而言,SRE極度鄙視重復(fù)性的運(yùn)維工作,更傾向于使用代碼的方式去應(yīng)對(duì)各種重復(fù)性的運(yùn)維操作。因此SRE運(yùn)維體系是一個(gè)將自動(dòng)化和工具化提高到戰(zhàn)略高度的運(yùn)維體系模型,正如書中所言:“SRE的誕生是因?yàn)檐浖こ處熡|及了運(yùn)維。目標(biāo)是將50%的時(shí)間用于編寫代碼,30%時(shí)間用于與人打交道、20%時(shí)間用于應(yīng)對(duì)緊急情況。”
4)預(yù)防與事故應(yīng)對(duì)
盡管Mikey金字塔七層模型中仍然有監(jiān)控、事件響度和事件回顧等層次,與當(dāng)前傳統(tǒng)應(yīng)對(duì)型運(yùn)維體系有近似的地方。但是從整體上,SRE整個(gè)運(yùn)維體系非常強(qiáng)調(diào)預(yù)防的重要性。通過(guò)事件回顧、測(cè)試與發(fā)布、容量規(guī)劃、開(kāi)發(fā)等層次的工作來(lái)持續(xù)優(yōu)化應(yīng)用,提升系統(tǒng)的可靠性。“預(yù)防勝于治療”這句話,在IT系統(tǒng)建設(shè)和運(yùn)維領(lǐng)域同樣適用。
5)平衡風(fēng)險(xiǎn)
SRE運(yùn)維體系首先認(rèn)定新業(yè)務(wù)需求和新軟件版本的發(fā)布無(wú)論如何總會(huì)引入bug;與此同時(shí),較長(zhǎng)的開(kāi)發(fā)周期與更嚴(yán)密的測(cè)試會(huì)發(fā)現(xiàn)并修正bug,但是亦會(huì)延遲業(yè)務(wù)需求實(shí)現(xiàn)以及新版本發(fā)布的時(shí)間。快速實(shí)現(xiàn)業(yè)務(wù)需求與由于bug引起宕機(jī)的風(fēng)險(xiǎn)之間需要得到平衡。SRE通過(guò)制定合理的SLO以及錯(cuò)誤預(yù)算,嘗試在系統(tǒng)風(fēng)險(xiǎn)與業(yè)務(wù)快速迭代之間實(shí)現(xiàn)可量化的平衡。
1
? ?
監(jiān)控
第一層是監(jiān)控,它確保你洞察系統(tǒng),跟蹤系統(tǒng)的健康狀態(tài)、可用性以及系統(tǒng)內(nèi)部發(fā)生的事情。監(jiān)控兩個(gè)關(guān)鍵點(diǎn):首先,需要確定質(zhì)量標(biāo)準(zhǔn)是什么,并確保系統(tǒng)持續(xù)逼近或保持在質(zhì)量標(biāo)準(zhǔn)極限范圍內(nèi)。其次,需要系統(tǒng)地關(guān)注這項(xiàng)工作—而不應(yīng)該只是隨機(jī)地查看一下系統(tǒng)。監(jiān)控不僅僅是工具,因?yàn)樗残枰獪贤ā?/p>
毫無(wú)疑問(wèn),系統(tǒng)監(jiān)控是整個(gè)運(yùn)維體系的基礎(chǔ),它是最基本的運(yùn)維工作。在自動(dòng)化監(jiān)控工具沒(méi)有完全普及的年代,人們已經(jīng)用紙筆記錄著計(jì)算機(jī)上讀數(shù)和指標(biāo)。隨著IT規(guī)模的不斷擴(kuò)展,人們開(kāi)始建設(shè)自動(dòng)化的監(jiān)控系統(tǒng)。如今,一個(gè)企業(yè)級(jí)的監(jiān)控系統(tǒng)我認(rèn)為至少應(yīng)該包括如下幾個(gè)特征:
1)完備指標(biāo)采集,可以對(duì)接企業(yè)內(nèi)大部分的設(shè)備與技術(shù)棧相應(yīng)的監(jiān)控指標(biāo);同時(shí),支持常見(jiàn)設(shè)備的監(jiān)控指標(biāo)體系,可以快速接入監(jiān)控設(shè)備和指標(biāo),避免所有設(shè)備監(jiān)控都是從頭構(gòu)建。
2)日志采集能力,除了傳統(tǒng)的指標(biāo)數(shù)據(jù)采集外,針對(duì)于目前顯得越來(lái)越重要的日志數(shù)據(jù),監(jiān)控工具也需要支持常見(jiàn)日志采集、切割、結(jié)構(gòu)化以及入庫(kù)分析能力。
3)海量設(shè)備支持,企業(yè)IT系統(tǒng)數(shù)量和規(guī)模越來(lái)越大,因此監(jiān)控系統(tǒng)比以前需要監(jiān)控海量設(shè)備監(jiān)控。
4)監(jiān)控?cái)?shù)據(jù)存儲(chǔ)和分析,監(jiān)控?cái)?shù)據(jù)是運(yùn)維分析、運(yùn)維自動(dòng)化和智能化的基礎(chǔ),因此海量監(jiān)控?cái)?shù)據(jù)存儲(chǔ)以及基于監(jiān)控?cái)?shù)據(jù)的可視化分析是一個(gè)監(jiān)控系統(tǒng)的基本能力。
新炬網(wǎng)絡(luò)統(tǒng)一運(yùn)維監(jiān)控
監(jiān)控是整個(gè)運(yùn)維體系的基礎(chǔ),它需要提供整個(gè)運(yùn)維體系的數(shù)據(jù)化支持。因此,一個(gè)企業(yè)級(jí)的監(jiān)控系統(tǒng)更應(yīng)該是平臺(tái)化的。一方面可以通過(guò)配置或者開(kāi)發(fā)實(shí)現(xiàn)更多 運(yùn)維指標(biāo)的接入;另一方面,亦可對(duì)接更多的專業(yè)運(yùn)維工具,整合并打通多元的運(yùn)維數(shù)據(jù),為更多運(yùn)維場(chǎng)景提供數(shù)據(jù)服務(wù)。從整體上,監(jiān)控為企業(yè)運(yùn)維提供了一個(gè)數(shù)據(jù)基礎(chǔ),讓我們對(duì)事故響應(yīng)以及容量預(yù)測(cè)等方面更多使用數(shù)據(jù)而非憑借以往經(jīng)驗(yàn)和拍腦袋做出決策。
2
? ?
事故響應(yīng)
第二層是事故響應(yīng)。如果有什么東西出了故障,該如何提醒大家并做出回應(yīng)?工具可以幫助解決這個(gè)問(wèn)題,國(guó)為它可以定義提醒人類的規(guī)則。事故響應(yīng)是建立在使用監(jiān)控構(gòu)建的數(shù)據(jù)之上,并借助反饋循環(huán),來(lái)幫助我們加強(qiáng)對(duì)服務(wù)的監(jiān)控。
事故響應(yīng)通常包括以下幾個(gè)動(dòng)作:
關(guān)注,注意到有些東西不對(duì)勁
交流,告訴別人哪些東西不對(duì)勁
恢復(fù),糾正不對(duì)勁的東西
事故響應(yīng)往往始于簡(jiǎn)單的一句告警信息或一個(gè)報(bào)障電話。因此,在監(jiān)控系統(tǒng)的基礎(chǔ)上如何實(shí)現(xiàn)更有效率的告警和告警處理是故障響應(yīng)和處理的重中之重。工具可以幫助解決這個(gè)問(wèn)題,因?yàn)樗梢远x提醒人類的規(guī)則。而大多數(shù)的事故響應(yīng)都是關(guān)于定義處理策略和提供培訓(xùn)的,以便人們?cè)谑盏骄瘓?bào)時(shí)知道該怎么做。
在長(zhǎng)期的運(yùn)維工作中,我認(rèn)為有效的告警意味著:告警及時(shí)性,系統(tǒng)有問(wèn)題需要及時(shí)通過(guò)告警信息告知運(yùn)維處理人員及時(shí)處理告警;告警準(zhǔn)確性,只要有告警信息系統(tǒng)必然出現(xiàn)問(wèn)題。這意味著,錯(cuò)誤報(bào)警等同于有問(wèn)題但沒(méi)有報(bào)出來(lái)。因 為過(guò)多過(guò)頻繁甚至誤報(bào)的告警,讓運(yùn)維人員的注意力迷失告警海洋當(dāng)中。抑制和消除無(wú)效的告警,讓運(yùn)維人員不被告警風(fēng)暴所吞沒(méi),也是告警管理中重點(diǎn)建設(shè)的內(nèi)容。
從日常運(yùn)維實(shí)踐中,我們往往可以通過(guò)整合到監(jiān)控平臺(tái)中的各種監(jiān)控?cái)?shù)據(jù),應(yīng)用趨勢(shì)預(yù)測(cè)、短周期檢測(cè)、間歇性恢復(fù)、基線判斷、重復(fù)壓縮等算法和手段實(shí)現(xiàn)告警壓縮收斂,強(qiáng)化告警的有效性。
告警壓縮與收斂
同時(shí),面向一線使用人員的場(chǎng)景,我們又往往根據(jù)綜合同一個(gè)系統(tǒng)或設(shè)備的多個(gè)監(jiān)控指標(biāo)進(jìn)行綜合性建模和分析,匯總成一個(gè)健康度的分值,給予一線運(yùn)維人員系統(tǒng)的基于健康度的系統(tǒng)分層評(píng)價(jià)體系,真實(shí)、直觀反映系統(tǒng)運(yùn)行狀態(tài),實(shí)現(xiàn)問(wèn)題快速定界。
系統(tǒng)健康度指標(biāo)
最后,對(duì)于常見(jiàn)告警信息,我們也往往會(huì)對(duì)接一些配置化的自動(dòng)化處理動(dòng)作,例如,一些特殊的應(yīng)急處理手段(某個(gè)文件系統(tǒng)快滿了,清理掉當(dāng)中沒(méi)有價(jià)值的文件)或者一些關(guān)鍵故障信息采集(出現(xiàn)死鎖的數(shù)據(jù)庫(kù)里面,自動(dòng)采集引起死鎖的進(jìn)程信息)作供運(yùn)維人員進(jìn)一步分析和確認(rèn)使用。
3
? ?
事后回顧
第三層是事后回顧。一旦發(fā)生服務(wù)中斷,那么如何確保問(wèn)題不會(huì)再次發(fā)生?為了讓大家團(tuán)結(jié)協(xié)作,我們希望建立一種無(wú)指責(zé)、透明的事后文化。個(gè)人不應(yīng)該害怕事故,而是確信如果事故發(fā)生,團(tuán)隊(duì)將會(huì)響應(yīng)和改進(jìn)系統(tǒng)。
我認(rèn)為SRE的一個(gè)關(guān)鍵共識(shí)正是承認(rèn)了系統(tǒng)的不完美性,追求永不停機(jī)的系統(tǒng)是不現(xiàn)實(shí)的。基于不完美系統(tǒng),我們無(wú)可避免要面對(duì)和經(jīng)歷系統(tǒng)故障與失敗。所以我們重要的并非找到為這個(gè)故障責(zé)任的這個(gè)人或者那個(gè)人,而是更應(yīng)該創(chuàng)根問(wèn)底地復(fù)盤這個(gè)故障和失敗的根本原因是什么,以及如何避免再次出現(xiàn)相同的故障。系統(tǒng)可靠性是整個(gè)團(tuán)隊(duì)共同奮斗的方向,從失敗中快速恢復(fù)并吸取教訓(xùn),每個(gè)人放心地提出問(wèn)題,應(yīng)對(duì)停機(jī),并努力改進(jìn)系統(tǒng)。
事故是我們可以從中學(xué)習(xí)的東西,而不是讓人害怕和羞恥的事情!
在日常運(yùn)維過(guò)程中,出現(xiàn)故障等事故對(duì)于我們而言其實(shí)是一個(gè)很好的復(fù)盤學(xué)習(xí)機(jī)會(huì)。通過(guò)歷史監(jiān)控?cái)?shù)據(jù),分析事故其中的根本原因,制定后續(xù)應(yīng)對(duì)策略,并且通過(guò)運(yùn)維平臺(tái)將這些應(yīng)對(duì)策略編輯成標(biāo)準(zhǔn)化、可重用、自動(dòng)化的運(yùn)維應(yīng)用場(chǎng)景,為后續(xù)相同問(wèn)題的處理提供標(biāo)準(zhǔn)且快捷的解決方案。這正是事后回顧這個(gè)過(guò)程最真實(shí)的價(jià)值體現(xiàn)。
此外,事故響應(yīng)建立在使用監(jiān)控構(gòu)建的數(shù)據(jù)之上,并借助反饋循環(huán),來(lái)幫助我們加強(qiáng)對(duì)服務(wù)的監(jiān)控。這向我們展示了什么是重要的。因?yàn)槿绻麤](méi)有得到警報(bào),而是有人告訴我們服務(wù)沒(méi)有正常工作,那么我們的監(jiān)控就是不到位的。
4
? ?
測(cè)試與發(fā)布
第四層是測(cè)試和發(fā)布軟件。這個(gè)層級(jí)是Mikey金字塔中第一個(gè)專注于預(yù)防而不是事后處理的層級(jí)。預(yù)防是指嘗試限制發(fā)生的事故數(shù)量,并確保在發(fā)布新代碼時(shí)基礎(chǔ)架構(gòu)和服務(wù)能夠保持穩(wěn)定。
在《SRE Google運(yùn)維解密》,我首次接觸了基于服務(wù)水平目標(biāo)(SLO)而制定的錯(cuò)誤預(yù)算(Error Budget)。《SRE生存指南》本書則是通過(guò)測(cè)試與發(fā)布這個(gè)章節(jié)提供了一個(gè)更為具像化的案例。
作為一個(gè)長(zhǎng)期從事運(yùn)維工作的人,可能內(nèi)心中最為恐懼的莫過(guò)于新應(yīng)用版本發(fā)布。因?yàn)槌擞布途W(wǎng)絡(luò)設(shè)備損壞這個(gè)屬于天災(zāi)級(jí)別的概率事件外,新應(yīng)用版本發(fā)布的第二天通常是停機(jī)與事故的高危期。以電信運(yùn)營(yíng)商行業(yè)為例,在一些系統(tǒng)穩(wěn)定性要求特別高的日子如春節(jié)、國(guó)慶、奧運(yùn)會(huì)等重大節(jié)日或者特別時(shí)期,往往有所謂封網(wǎng)的行為,其實(shí)質(zhì)就是通過(guò)拒絕非緊急Bug和業(yè)務(wù)功能上線來(lái)提升一段特殊時(shí)期內(nèi)的系統(tǒng)可靠性。正如書中所說(shuō),測(cè)試是在成本和風(fēng)險(xiǎn)之間找到適當(dāng)?shù)钠胶饣顒?dòng)。如果過(guò)于冒險(xiǎn),你們可能就會(huì)疲于應(yīng)付系統(tǒng)失敗;反過(guò)來(lái)說(shuō),如果你太保守,你就不能足夠快地發(fā)布新東西,讓企業(yè)在市場(chǎng)上生存下來(lái)。
在錯(cuò)誤預(yù)算比較多(即在一段時(shí)間內(nèi)故障導(dǎo)致系統(tǒng)停機(jī)時(shí)長(zhǎng)較少)的情況下,可以適當(dāng)減少測(cè)試資源并放寬系統(tǒng)上線的測(cè)試和條件,讓業(yè)務(wù)可以有更多的功能上線,以保持業(yè)務(wù)的敏態(tài);在錯(cuò)誤預(yù)算比較少(即在一段時(shí)間內(nèi)故障導(dǎo)致系統(tǒng)停機(jī)時(shí)長(zhǎng)較多)的情況下,則要增加測(cè)試資源并收緊系統(tǒng)上線的測(cè)試,讓系統(tǒng)的潛在風(fēng)險(xiǎn)得到更多有效的釋放,避免系統(tǒng)停機(jī)保持系統(tǒng)的穩(wěn)態(tài)。這種敏態(tài)與穩(wěn)態(tài)之間的平衡,需要整個(gè)運(yùn)維與開(kāi)發(fā)團(tuán)隊(duì)來(lái)共同承擔(dān)。
除了測(cè)試外,應(yīng)用發(fā)布也是一項(xiàng)運(yùn)維團(tuán)隊(duì)通常要承擔(dān)的責(zé)任。SRE的一個(gè)原則是將一切可以重復(fù)性勞動(dòng)代碼化和工具化;此外,應(yīng)用發(fā)布的復(fù)雜程度往往與系統(tǒng)的復(fù)雜程度成正比。因此在應(yīng)用系統(tǒng)上規(guī)模企業(yè),往往已經(jīng)著手基于自動(dòng)化框架構(gòu)建自動(dòng)化的應(yīng)用發(fā)布過(guò)程。
新炬網(wǎng)絡(luò)基于自動(dòng)化框架的應(yīng)用發(fā)布
通過(guò)自動(dòng)化發(fā)布工具,我們可以構(gòu)建流水線實(shí)現(xiàn)部署的過(guò)程中所有的操作(如編譯打包、測(cè)試發(fā)布、生產(chǎn)準(zhǔn)備、告警屏蔽、服務(wù)停止、數(shù)據(jù)庫(kù)執(zhí)行、應(yīng)用部署、服務(wù)重啟等)全部自動(dòng)化,無(wú)需人工手工干預(yù)解決以往手工發(fā)布存在問(wèn)題:
整個(gè)過(guò)程都需要人員參與,占用大量的時(shí)間,效率低下
上線、更新、回滾速度慢
規(guī)范化低,存在一定的管理混亂,人為誤操作的機(jī)率增大
5
? ?
容量規(guī)劃
第五層是容量規(guī)劃。關(guān)于預(yù)測(cè)未來(lái)和發(fā)現(xiàn)系統(tǒng)極限的。容量規(guī)劃也是為了確保系統(tǒng)可以隨著時(shí)間的推移得到完善和增強(qiáng)。規(guī)劃的主要目標(biāo)是管理風(fēng)險(xiǎn)和期望。對(duì)于容量規(guī)劃,涉及到將容量擴(kuò)展到整個(gè)業(yè)務(wù)。所關(guān)注的期望是人們?cè)诳吹綐I(yè)務(wù)增長(zhǎng)時(shí)期望服務(wù)如何響應(yīng)。風(fēng)險(xiǎn)是在額外的基礎(chǔ)設(shè)施上花費(fèi)時(shí)間和金錢來(lái)處理這個(gè)問(wèn)題。
容量規(guī)劃首先是對(duì)未來(lái)預(yù)測(cè)性的分析與判斷,其預(yù)測(cè)的基礎(chǔ)正是海量的運(yùn)維數(shù)據(jù)。因此,容量規(guī)劃除了有相應(yīng)的架構(gòu)和規(guī)劃團(tuán)隊(duì)外,一個(gè)全面的運(yùn)維數(shù)據(jù)中心是實(shí)現(xiàn)系統(tǒng)容量規(guī)劃的必須設(shè)施。
容量趨勢(shì)分析和預(yù)警
它將綜合地從各種運(yùn)維監(jiān)控、流程管理等數(shù)據(jù)源中收集、整理、清洗并結(jié)構(gòu)化地存儲(chǔ)各種運(yùn)維數(shù)據(jù),將這些來(lái)自于各種工具的運(yùn)維數(shù)據(jù)打通融合并且構(gòu)建各種數(shù)據(jù)主題。應(yīng)用這些數(shù)據(jù)主題的數(shù)據(jù)用于幫助運(yùn)維人員對(duì)問(wèn)題進(jìn)行評(píng)估,包括:
當(dāng)前的容量是多少
何時(shí)達(dá)到容量極限
應(yīng)該如何更改容量
執(zhí)行容量規(guī)劃
運(yùn)維平臺(tái)除了可以提供必要的數(shù)據(jù)支持外,還需要提供必要的數(shù)據(jù)可視化支持能力。運(yùn)維數(shù)據(jù)可視化提供了一些必要的能力保障運(yùn)維人員可以更好地利用其中的運(yùn)維數(shù)據(jù)評(píng)估容量。
運(yùn)維數(shù)據(jù)可視化分析
首先,運(yùn)維平臺(tái)需要有極強(qiáng)的數(shù)據(jù)檢索能力。運(yùn)維平臺(tái)存儲(chǔ)著海量的運(yùn)維數(shù)據(jù),運(yùn)維人員為了嘗試建立和驗(yàn)證一個(gè)探索性場(chǎng)景的時(shí)候,往往多次反復(fù)檢索和查詢特定數(shù)據(jù)。如果運(yùn)維數(shù)據(jù)分析平臺(tái)的數(shù)據(jù)查詢很慢或者查詢角度很少的情況下,運(yùn)維人員建立場(chǎng)景的時(shí)間就會(huì)拖得很長(zhǎng)甚至進(jìn)行不下去。因此,運(yùn)維人員可通過(guò)平臺(tái)可以實(shí)現(xiàn)關(guān)鍵字、統(tǒng)計(jì)函數(shù)、單條件、多條件、模糊多維度查找功能,以及實(shí)現(xiàn)海量數(shù)據(jù)秒級(jí)查詢,才能更有效幫助運(yùn)維人員更便捷分析數(shù)據(jù)。
其二,平臺(tái)需要強(qiáng)大的數(shù)據(jù)可視化能力。人們常說(shuō)“千言萬(wàn)語(yǔ)不及一圖”,運(yùn)維人員經(jīng)常會(huì)通過(guò)各系統(tǒng)的運(yùn)維數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析并生成各類實(shí)時(shí)報(bào)表,對(duì)各類運(yùn)維數(shù)據(jù)(如應(yīng)用日志、交易日志、系統(tǒng)日志)進(jìn)行多維度、多角度深入分析、預(yù)測(cè)及可視化展現(xiàn),將他們分析的預(yù)測(cè)結(jié)果和經(jīng)驗(yàn)向他人表達(dá)和推廣。
6
? ?
構(gòu)建工具
第六層是開(kāi)發(fā)新工具和服務(wù)。SRE不僅涉及運(yùn)營(yíng),還涉及軟件開(kāi)發(fā)。SRE工程師將花費(fèi)大約一半的時(shí)間來(lái)開(kāi)發(fā)新的工具和服務(wù)。這些工具中的一部分將用于自動(dòng) 化一些手工任務(wù),而其他工具將用于改進(jìn)Mikey金字塔的其余部分。通過(guò)編寫代碼把自己和其他人從重復(fù)的工作中解放出來(lái)。如果我們不需要人類來(lái)完成任務(wù),那么就編寫代碼,這樣人類就不需要參與其中了。
SRE從內(nèi)心上鄙視重復(fù)性的工作,將從原有的人工加被動(dòng)響應(yīng),轉(zhuǎn)變?yōu)楦咝А⒏鼮樽詣?dòng)化的運(yùn)維體系。事實(shí)上,在我們負(fù)責(zé)運(yùn)維的客戶中,IT系統(tǒng)規(guī)模的增速已經(jīng)遠(yuǎn)遠(yuǎn)超越由于運(yùn)維團(tuán)隊(duì)規(guī)模的增長(zhǎng)。例如,一些電信運(yùn)營(yíng)商企業(yè)連每天早上大規(guī)模營(yíng)業(yè)前對(duì)所有IT系統(tǒng)的設(shè)備進(jìn)行一次常規(guī)狀態(tài)檢查都難以維持。為解決這個(gè)矛盾,專門部署并開(kāi)發(fā)了我們的自動(dòng)化監(jiān)控和運(yùn)維工具,將這些每天重復(fù)性的大量機(jī)械性操作交由機(jī)器實(shí)現(xiàn)。只需要定義好相關(guān)的巡檢模板,機(jī)器就會(huì)十年如一日地按照我們定義的規(guī)范進(jìn)行各種巡檢操作。如巡檢結(jié)果中出現(xiàn)任何異常,運(yùn)維人員的手機(jī)就會(huì)出現(xiàn)該問(wèn)題的告警短信,通知相關(guān)運(yùn)維人員處理。
新炬網(wǎng)絡(luò)自動(dòng)化運(yùn)維框架
構(gòu)建自動(dòng)化運(yùn)維工具,其優(yōu)勢(shì)在于:
1)讓機(jī)器管理機(jī)器,將大量重復(fù)、機(jī)械的運(yùn)維工作交給機(jī)器執(zhí)行,有效地降低運(yùn)維人力資源的投入,也讓運(yùn)維人員的精力得以釋放并投向更為重要的領(lǐng)域。
2)運(yùn)維操作的標(biāo)準(zhǔn)化,將原來(lái)許多復(fù)雜、易錯(cuò)的手工操作實(shí)現(xiàn)統(tǒng)一運(yùn)維操作入口,實(shí)現(xiàn)運(yùn)維操作白屏化,提升運(yùn)維操作的可管理性;同時(shí),減少由于運(yùn)維人員情緒帶來(lái)手工誤操作,避免“從刪庫(kù)到跑路”這樣的悲劇的發(fā)生。
3)運(yùn)維經(jīng)驗(yàn)?zāi)芰Φ膫鞒?#xff0c;運(yùn)維自動(dòng)化工具將原來(lái)許多運(yùn)維團(tuán)隊(duì)積累的經(jīng)驗(yàn)以代碼方式總結(jié)為各種運(yùn)維工具,實(shí)現(xiàn)自動(dòng)化和白屏化的運(yùn)維操作。運(yùn)維團(tuán)隊(duì)的后來(lái)者,可以有效地繼承、重復(fù)使用并優(yōu)化它們。這種代碼化的工作傳承,將個(gè)人能力轉(zhuǎn)變?yōu)閳F(tuán)隊(duì)能力,并減少人員流動(dòng)帶來(lái)對(duì)工作的影響。
構(gòu)建自動(dòng)化運(yùn)維體系就必須以運(yùn)維場(chǎng)景為基礎(chǔ),這些運(yùn)維場(chǎng)景是在本企業(yè)內(nèi)反復(fù)迭代和打造,是企業(yè)中最常用的運(yùn)維場(chǎng)景。例如上文提到的自動(dòng)化巡檢、軟件安裝部署、應(yīng)用發(fā)布交付、資產(chǎn)管理、告警自動(dòng)處理、故障分析、資源開(kāi)通等。所以,自動(dòng)化運(yùn)維應(yīng)支持多種不同類型的自動(dòng)化作業(yè)配置能力,通過(guò)簡(jiǎn)單的腳本開(kāi)發(fā)、場(chǎng)景配置和可視化定制流程實(shí)現(xiàn)更多運(yùn)維場(chǎng)景的實(shí)現(xiàn)。
7
? ?
用戶體驗(yàn)
最后一層是用戶體驗(yàn),即確保用戶獲得良好的體驗(yàn)。與用戶研究人員合作,以及確保良好的用戶體驗(yàn)。這與SRE有兩種關(guān)系。首先,我們需要支持我們所支持的系統(tǒng)的用戶體驗(yàn)。例如,確保應(yīng)用程序具有響應(yīng)性和可用性,可以讓用戶獲得一致的體驗(yàn)。其次,我們的工具需要提供良好的體驗(yàn)。良好的體驗(yàn)意味著我們構(gòu)建和支持的服務(wù)的用戶愿意使用它們。
用戶體驗(yàn)的管理是SRE的最高層次實(shí)現(xiàn),它實(shí)際上正是運(yùn)維的最終目標(biāo)。此前的層次,無(wú)論是監(jiān)控、事故響應(yīng)、回顧、測(cè)試與發(fā)布、容量規(guī)劃以及構(gòu)建自動(dòng)化工具,無(wú)非都是為了提供更好的系統(tǒng)用戶業(yè)務(wù)體驗(yàn)而服務(wù)的。因此,我們?cè)谶\(yùn)維的過(guò)程中無(wú)不需要注意關(guān)注系統(tǒng)的用戶體驗(yàn)。例如,在實(shí)際運(yùn)維工作中,我們往往可以通過(guò)應(yīng)用日志、監(jiān)控?cái)?shù)據(jù)、業(yè)務(wù)拔測(cè)等業(yè)務(wù)相關(guān)的用戶體驗(yàn)信息。在運(yùn)維數(shù)據(jù)平臺(tái)中,通過(guò)這些用戶體驗(yàn)監(jiān)測(cè)數(shù)據(jù)之間的關(guān)聯(lián)和串聯(lián),重現(xiàn)用戶的最終業(yè)務(wù)調(diào)用鏈路以及各應(yīng)用環(huán)節(jié)對(duì)性能數(shù)據(jù)的關(guān)系。最終形成從業(yè)務(wù)用戶體驗(yàn)數(shù)據(jù)入手,逐步實(shí)現(xiàn)系統(tǒng)運(yùn)行狀態(tài)數(shù)據(jù)、設(shè)備運(yùn)行狀態(tài)數(shù)據(jù)鏈路的打通,讓運(yùn)維體系實(shí)現(xiàn)以最終用戶體驗(yàn)為中心的目標(biāo)。
這些用戶體驗(yàn)的信息,對(duì)于運(yùn)維團(tuán)隊(duì)掌握客戶整體的用戶體驗(yàn)情況、系統(tǒng)可用性的監(jiān)測(cè)以及系統(tǒng)針對(duì)性的優(yōu)化提供著無(wú)可替代的作用。
8
? ?
寫在最后
SRE是Google這類典型國(guó)外互聯(lián)網(wǎng)企業(yè)的運(yùn)維體系建設(shè)理念。我認(rèn)為與傳統(tǒng)以設(shè)備為中心的運(yùn)維體系不同,SRE運(yùn)維體系更為強(qiáng)調(diào)以用戶的體驗(yàn)為核心,以自動(dòng)化和運(yùn)維數(shù)據(jù)為手段,實(shí)現(xiàn)應(yīng)用業(yè)務(wù)連續(xù)性保障。與其說(shuō)是系統(tǒng)運(yùn)維,不如說(shuō)是系統(tǒng)運(yùn)營(yíng)體系或會(huì)更為適當(dāng)。
當(dāng)然,不同的企業(yè)會(huì)有其自身不同的文化、制度和背景,SRE這套運(yùn)維體系不能生搬硬套。但是里面提到的很多理念和方法,還是很值得我們借鑒的。如果大家有機(jī)會(huì)詳細(xì)閱讀本書,亦希望能分享一下你們的見(jiàn)解。
廣而告之
隨著人工智能的興起,運(yùn)維迎來(lái)了新的契機(jī),想破解運(yùn)維轉(zhuǎn)型困局,讓Gdevops全球敏捷運(yùn)維峰會(huì)北京站給你新思路:
《浙江移動(dòng)AIOps實(shí)踐》浙江移動(dòng)云計(jì)算中心NOC及AIOps負(fù)責(zé)人 潘宇虹
《數(shù)據(jù)智能時(shí)代:構(gòu)建能力開(kāi)放的運(yùn)營(yíng)商大數(shù)據(jù)DataOps體系》中國(guó)聯(lián)通大數(shù)據(jù)基礎(chǔ)平臺(tái)負(fù)責(zé)人/資深架構(gòu)師 尹正軍
《云時(shí)代下,傳統(tǒng)行業(yè)的運(yùn)維轉(zhuǎn)型,如何破局?》新炬網(wǎng)絡(luò)董事/副總經(jīng)理 程永新
《銀行日志監(jiān)控系統(tǒng)優(yōu)化手記》中國(guó)銀行DevOps負(fù)責(zé)人 付大亮和中國(guó)銀行 高級(jí)軟件工程師 李曉寧
《民生銀行智能運(yùn)維平臺(tái)實(shí)踐之路》民生銀行智能運(yùn)維平臺(tái)負(fù)責(zé)人/應(yīng)用運(yùn)維專家 張舒?zhèn)?/p>
《建設(shè)敏捷型消費(fèi)金融中臺(tái)及云原生下的DevOps實(shí)踐》中郵消費(fèi)金融總經(jīng)理助理 李遠(yuǎn)鑫
讓我們?cè)谛录夹g(shù)的沖擊下站穩(wěn)腳跟,攀登運(yùn)維高峰!那么2020年9月11日,我們?cè)?strong>北京不見(jiàn)不散。
9
? ?
推薦閱讀
中生代技術(shù)社區(qū)提供內(nèi)推服務(wù),對(duì)應(yīng)BAT,網(wǎng)易,頭條等大廠對(duì)接到用人部門,
有需求請(qǐng)?zhí)砑尤汉匣锶?strong>大白的微信
申請(qǐng)備注(姓名+公司+技術(shù)方向)才能通過(guò)哦!
? ?END ? ?? #接力技術(shù),鏈接價(jià)值#總結(jié)
以上是生活随笔為你收集整理的新炬首架梁铭图:从70万字SRE神作提炼出7千字精华与君共勉的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: nyoj 61 传纸条(一) (双线动归
- 下一篇: Jeecg-boot 2.4.6+ 多租