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