如何基于谷歌SRE理論卸伞,建設(shè)企業(yè)IT應(yīng)用系統(tǒng)穩(wěn)定性能力锉屈?

摘要

在當(dāng)今數(shù)字化轉(zhuǎn)型步伐不斷加快的時(shí)代,IT應(yīng)用系統(tǒng)的穩(wěn)定運(yùn)行成為了企業(yè)的業(yè)務(wù)正常運(yùn)轉(zhuǎn)的重要基礎(chǔ)遂黍,因此,運(yùn)維管理體系的構(gòu)建也從圍繞著數(shù)據(jù)中心轉(zhuǎn)向圍繞著應(yīng)用系統(tǒng)方向铃彰,首個(gè)專(zhuān)門(mén)面向應(yīng)用運(yùn)維的理論體系——SRE,由Google發(fā)布后牙捉,受到了越來(lái)越多的企業(yè)的青睞敬飒,很多國(guó)內(nèi)企業(yè)已經(jīng)紛紛效仿Google建立SRE團(tuán)隊(duì),旨在為各個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)提供更好的穩(wěn)定性保障能力带到,為業(yè)務(wù)保駕護(hù)航揽惹。

企業(yè)轉(zhuǎn)型與快速發(fā)展帶來(lái)的業(yè)務(wù)異構(gòu)化必然導(dǎo)致了IT環(huán)境的多樣化異構(gòu)化税迷,在不同業(yè)務(wù)架構(gòu)和應(yīng)用架構(gòu)下,IT踐行SRE理念慕嚷、建設(shè)一個(gè)先進(jìn)的穩(wěn)定性平臺(tái)也必然是一個(gè)循序漸進(jìn)的過(guò)程毕泌,本文主要參考SRE中的部分核心理論,從運(yùn)維標(biāo)準(zhǔn)化和技術(shù)工具層面闡述如何建設(shè)穩(wěn)定性能力挠说。

?關(guān)于SRE和穩(wěn)定性

SRE的理論很多人都已經(jīng)比較熟悉愿题,最早是Google的一本書(shū)《Site Reliability Engineering: How Google Runs Production Systems》分享了他們?nèi)绾螛?gòu)建、部署和運(yùn)維監(jiān)控他們龐大的軟件系統(tǒng)杆兵。

SRE提出的目標(biāo):

只要是軟件琐脏,就可能存在bug或者各種運(yùn)行上的問(wèn)題。而SRE就是聚焦于的軟件系統(tǒng)的穩(wěn)定性運(yùn)行吹艇。

SRE提出的管理體系:

SRE提出了要有服務(wù)質(zhì)量目標(biāo)(SLO)昂拂、on-call輪值、變更和事故管理路克、故障復(fù)盤(pán)养交、應(yīng)急響應(yīng)機(jī)制等一系列的管理手段碎连。

SRE提出的組織體系:

SRE強(qiáng)調(diào)以軟件工程的方式來(lái)解決這些穩(wěn)定性問(wèn)題驮履,SRE團(tuán)隊(duì)中所有的人都具有軟件開(kāi)發(fā)能力,其中50% ~ 60%是純軟件工程師倒戏,40% ~ 50%既具備軟件開(kāi)發(fā)技能恐似,又具備運(yùn)維技術(shù)(PS:如果運(yùn)維能有這樣的人員配比,感覺(jué)“永不宕機(jī)”指日可待)葛闷。

SRE提出的技術(shù)體系:

人員能力目標(biāo)太難達(dá)到双藕,我們還是從“事”的角度出發(fā)吧。Google認(rèn)為SRE的職責(zé)在于負(fù)責(zé)軟件系統(tǒng)的可用性扣泊、時(shí)延嘶摊、性能、效率等孵、變更管理俯萌、監(jiān)控、應(yīng)急響應(yīng)和容量管理相關(guān)的工作咐熙。

前面提到,在企業(yè)IT環(huán)境異構(gòu)化的情況下返弹,穩(wěn)定性能力建設(shè)絕不是一個(gè)簡(jiǎn)單的話(huà)題爪飘,它需要標(biāo)準(zhǔn)化、流程化默终、數(shù)據(jù)化犁罩,需要將ITOM的配置、監(jiān)控含滴、自動(dòng)化丐巫、流程等能力融合,需要我們結(jié)合多年的運(yùn)維經(jīng)驗(yàn)和不斷涌現(xiàn)的各種運(yùn)維技術(shù)來(lái)逐步構(gòu)建鸦做、升華谓着。

穩(wěn)定性能力建設(shè)的基礎(chǔ)

首先,標(biāo)準(zhǔn)化先行治筒。

運(yùn)維界現(xiàn)在在大談AIOps耸袜,但我們知道,除了關(guān)鍵的AI算法能力外堤框,有質(zhì)量的數(shù)據(jù)也是AI的基礎(chǔ)蜈抓。對(duì)于運(yùn)維來(lái)說(shuō)也是如此,高質(zhì)量的運(yùn)維數(shù)據(jù)是AIOps落地的基礎(chǔ)委可,高質(zhì)量的運(yùn)維數(shù)據(jù)不會(huì)憑空出現(xiàn)腊嗡,需要IT標(biāo)準(zhǔn)化。同樣燕少,穩(wěn)定性的踐行,要求我們實(shí)現(xiàn)一定程度的標(biāo)準(zhǔn)化虎眨。

對(duì)于大部分企業(yè)來(lái)說(shuō)镶摘,由于處于數(shù)字化轉(zhuǎn)型高速發(fā)展的階段凄敢,并且由于歷史的原因湿痢,業(yè)務(wù)應(yīng)用架構(gòu)短期內(nèi)很難以實(shí)現(xiàn)標(biāo)準(zhǔn)化,異構(gòu)化一定是一種常態(tài)拒逮,那運(yùn)維在標(biāo)準(zhǔn)化訴求面前是否就束手無(wú)策了呢滩援,其實(shí)未必塔嬉,我們?nèi)匀豢梢哉业搅硪粭l標(biāo)準(zhǔn)化的道路,就是把我們的運(yùn)維基礎(chǔ)能力抽象恩袱、標(biāo)準(zhǔn)化胶哲,來(lái)適配各種不同的業(yè)務(wù)架構(gòu)。

01?CMDB標(biāo)準(zhǔn)化? ? ? ??

CMDB標(biāo)準(zhǔn)化有以下兩個(gè)基本原則:

應(yīng)用為中心建設(shè)CMDB澈吨,并且標(biāo)準(zhǔn)應(yīng)用部署拓?fù)淠P停鐦I(yè)務(wù)-環(huán)境-子系統(tǒng)-集群-模塊(參考下圖)技竟,讓其能支撐傳統(tǒng)屈藐、分布式、云原生等各種應(yīng)用架構(gòu)搓扯。

配置消費(fèi)(發(fā)布锨推、監(jiān)控公壤、自動(dòng)化等)角度出發(fā),在CMDB中標(biāo)準(zhǔn)化應(yīng)用系統(tǒng)及其相關(guān)資源的模型信息沾鳄,如應(yīng)用進(jìn)程确憨、API、網(wǎng)站吞歼、應(yīng)用調(diào)用關(guān)系塔猾,應(yīng)用關(guān)聯(lián)的數(shù)據(jù)庫(kù)丈甸,容器工作負(fù)載、容器集群和命名空間配置模型等等(參考下圖)

除了上述兩點(diǎn)之外叶骨,在運(yùn)維新時(shí)代祈匙,要做好一個(gè)CMDB天揖,不僅僅是工具跪帝,還需要配套的標(biāo)準(zhǔn)規(guī)范、組織斑唬、流程恕刘,這里不進(jìn)行一一贅述。

02?監(jiān)控標(biāo)準(zhǔn)化? ? ? ??

在以業(yè)務(wù)系統(tǒng)穩(wěn)定性為目標(biāo)的前提下抒倚,我們對(duì)監(jiān)控提出了新的要求:

監(jiān)控對(duì)象標(biāo)準(zhǔn)化

監(jiān)控系統(tǒng)需要與以應(yīng)用為中心的CMDB打通托呕,監(jiān)控系統(tǒng)中的監(jiān)控對(duì)象來(lái)自于CMDB中標(biāo)準(zhǔn)化管理的應(yīng)用資源對(duì)象,從而具備以應(yīng)用視角的監(jiān)控展現(xiàn)和分析能力馅扣。

監(jiān)控指標(biāo)標(biāo)準(zhǔn)化

每個(gè)應(yīng)用系統(tǒng)所提供的業(yè)務(wù)功能各不相同着降,應(yīng)用系統(tǒng)的架構(gòu)和資源組成也多種多樣鹊碍,但我們?nèi)钥梢孕枰獜母鱾€(gè)層次食绿、各個(gè)維度來(lái)抽象出一套相對(duì)通用的應(yīng)用系統(tǒng)可觀測(cè)性指標(biāo)(見(jiàn)下圖)。

03?能力標(biāo)準(zhǔn)化? ? ? ??

經(jīng)過(guò)抽象之后耀销,自動(dòng)化運(yùn)維的底層能力主要包括以下幾種:

命令通道能力

提供基于os之上的各種命令執(zhí)行通道熊尉,如shell掌腰、bat、perl催植、sql等等。

文件通道能力

提供快速的文件傳輸能力伦忠。

數(shù)據(jù)通道能力

提供標(biāo)準(zhǔn)的數(shù)據(jù)采集框架支持各種類(lèi)型數(shù)據(jù)采集稿辙,如日志、系統(tǒng)性能邻储、數(shù)據(jù)庫(kù)、腳本和自定義協(xié)議采集等冬耿。

API通道能力

提供統(tǒng)一的API Gateway來(lái)管理和對(duì)接各個(gè)業(yè)務(wù)系統(tǒng)或運(yùn)維系統(tǒng)的接口亦镶。

持續(xù)拓展能力

其他自定義協(xié)議對(duì)接袱瓮。

04?運(yùn)維場(chǎng)景標(biāo)準(zhǔn)化? ? ? ??

要實(shí)現(xiàn)穩(wěn)定性的目標(biāo),還需要不斷積累各種標(biāo)準(zhǔn)化運(yùn)維場(chǎng)景能力绊起,如故障分析場(chǎng)景虱歪、故障自愈場(chǎng)景、應(yīng)急處置場(chǎng)景笋鄙。

其次怪瓶,標(biāo)準(zhǔn)化之后,我們還需要考慮流程化找岖,比如CMDB的配置入庫(kù)流程许布,監(jiān)控告警的處理閉環(huán)流程绎晃,發(fā)布變更流程帖旨,故障處理流程、故障復(fù)盤(pán)及知識(shí)庫(kù)沉淀的流程等等解阅。

最后泌霍,數(shù)據(jù)化則是穩(wěn)定性踐行的關(guān)鍵基礎(chǔ)朱转,舉個(gè)故障分析定位的例子,一個(gè)故障可能是配置變更或軟件版本更新導(dǎo)致怪与,可能是依賴(lài)的外部服務(wù)故障導(dǎo)致缅疟,可能是自身的數(shù)據(jù)庫(kù)、進(jìn)程或代碼運(yùn)行問(wèn)題導(dǎo)致存淫,定位問(wèn)題的過(guò)程,一定要能夠整合這些配置括授、流程荚虚、監(jiān)控等數(shù)據(jù)版述,才能實(shí)現(xiàn)一定程度的故障分析定位自動(dòng)化。這里額外提一下院水,在當(dāng)前企業(yè)架構(gòu)多樣化的情況下简十,基于AI的告警收斂和關(guān)聯(lián)螟蝙,只是故障分析中的一個(gè)能力組成民傻,而不是理想主義者所期望的,基于AI去分析海量告警信息就能直接實(shí)現(xiàn)根因定位牵署。

如何建設(shè)穩(wěn)定性平臺(tái)

基于SRE的理論,應(yīng)用運(yùn)維應(yīng)該打造自己的穩(wěn)定性保障平臺(tái)青责〔绷ィ“穩(wěn)定性”仍然是一個(gè)比較泛的概念暇检,因此我們可以從它的反面——“故障”來(lái)切入。

結(jié)合ITIL中事故管理和問(wèn)題管理的理論构蹬,應(yīng)用運(yùn)維構(gòu)建故障分析和處置平臺(tái)能力怎燥,可以參照以下故障管理的閉環(huán)進(jìn)行開(kāi)展:

01?故障預(yù)防階段? ? ? ??

1.????需要基于標(biāo)準(zhǔn)化的CMDB和監(jiān)控告警系統(tǒng)構(gòu)建容量分析體系铐姚,以提前預(yù)測(cè)發(fā)現(xiàn)應(yīng)用性能瓶頸肛捍,避免故障發(fā)生(見(jiàn)下圖)

2.????積累標(biāo)準(zhǔn)化的和應(yīng)用個(gè)性化的應(yīng)急處置自動(dòng)化預(yù)案依许,以便于應(yīng)用在發(fā)生故障時(shí)可以快速恢復(fù)

3.????根據(jù)應(yīng)用高可用架構(gòu)標(biāo)準(zhǔn)缀蹄,自動(dòng)評(píng)估各個(gè)應(yīng)用系統(tǒng)的架構(gòu)可用性能力

4.????針對(duì)關(guān)鍵的業(yè)務(wù)系統(tǒng),構(gòu)建混沌工程來(lái)檢驗(yàn)業(yè)務(wù)系統(tǒng)對(duì)故障的自動(dòng)屏蔽和消除能力蛀醉,并不斷積累通用的混沌工具場(chǎng)景

02?故障發(fā)現(xiàn)階段? ? ? ??

1.????從Metric拯刁、Logging逝段、Tracing三種方式實(shí)現(xiàn)應(yīng)用系統(tǒng)的全方位監(jiān)控和告警

2.????基于自動(dòng)化的能力實(shí)現(xiàn)應(yīng)用系統(tǒng)組件和業(yè)務(wù)功能的主動(dòng)健康檢查

3. ???基于單指標(biāo)異常檢測(cè)的算法實(shí)現(xiàn)一定程度的故障預(yù)測(cè)能力。

03?故障分析和定位階段? ? ? ??

要實(shí)現(xiàn)故障的分析定位亿驾,首先账嚎,我們得對(duì)應(yīng)用系統(tǒng)故障源有清晰和全面的了解。根據(jù)多個(gè)行業(yè)及客戶(hù)的調(diào)研數(shù)據(jù)乏悄,應(yīng)用系統(tǒng)的故障一般會(huì)有以下幾種來(lái)源:

A恳不、?基礎(chǔ)設(shè)施可用性問(wèn)題

包括域名不可達(dá)、網(wǎng)絡(luò)設(shè)備或主機(jī)故障规求、主機(jī)磁盤(pán)空間爆滿(mǎn)阻肿、進(jìn)程卡死或停止等沮尿。

B、?基礎(chǔ)設(shè)施性能問(wèn)題

包括數(shù)據(jù)庫(kù)赴邻、中間件姥敛、消息隊(duì)列瞎暑、負(fù)載均衡、操作系統(tǒng)等遇到性能瓶頸等墨榄。

C渠概、?應(yīng)用調(diào)用鏈問(wèn)題

由一個(gè)服務(wù)引發(fā)了另一個(gè)服務(wù)的異常嫂拴。

D、??代碼異常問(wèn)題

業(yè)務(wù)邏輯設(shè)計(jì)或代碼隱藏缺陷引發(fā)的可用性或性能問(wèn)題猪狈,或由于變更更新引發(fā)的應(yīng)用故障雇庙。

在標(biāo)準(zhǔn)化的CMDB灶伊、監(jiān)控和流程等運(yùn)維體系的基礎(chǔ)上聘萨,我們希望故障分析和定位系統(tǒng),能夠結(jié)合以上這些運(yùn)維經(jīng)驗(yàn)幫我們排查和定位問(wèn)題:

從應(yīng)用視角進(jìn)行基本可用性分析

從應(yīng)用視角進(jìn)行基礎(chǔ)資源問(wèn)題分析

基礎(chǔ)資源問(wèn)題分析展示

從應(yīng)用視角進(jìn)行用戶(hù)體驗(yàn)問(wèn)題分析

從應(yīng)用角度進(jìn)行應(yīng)用性能問(wèn)題分析

應(yīng)用運(yùn)行日志告警展示

故障影響分析能力

基于CMDB中應(yīng)用調(diào)用關(guān)系翘贮、資源關(guān)聯(lián)關(guān)系提供故障傳播鏈,展示故障上游受影響組件和下游可能的故障源組件锨能。

容量分析能力

根據(jù)容量分析能力判斷當(dāng)前資源容量是否能夠支撐業(yè)務(wù)訪(fǎng)問(wèn)量或交易量芍耘。

近期變更前后關(guān)鍵指標(biāo)對(duì)比分析

獲取近期變更數(shù)據(jù)齿穗,展示和對(duì)比變更前后應(yīng)用系統(tǒng)關(guān)鍵的可用性和性能指標(biāo)數(shù)據(jù)。并結(jié)合故障時(shí)間點(diǎn)進(jìn)行關(guān)聯(lián)分析跺株。

故障匯總與定位看板

匯總展示關(guān)鍵指標(biāo)告警及分析結(jié)果乒省。

04?故障處理階段? ? ? ??

提供應(yīng)用快速啟停能力

提供災(zāi)備切換自動(dòng)化能力

根據(jù)應(yīng)用架構(gòu)特征袖扛,提供快速的限流降級(jí)蛆封、服務(wù)熔斷的微服務(wù)自動(dòng)化運(yùn)維能力

最后,在故障復(fù)盤(pán)階段盏筐,除了分析相關(guān)的RPO/MTTR/SLA等指標(biāo)琢融,還需要通過(guò)流程等手段沉淀新故障場(chǎng)景到知識(shí)庫(kù)中簿寂,以不斷提升故障分析和處置能力常遂。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市泊碑,隨后出現(xiàn)的幾起案子馒过,更是在濱河造成了極大的恐慌腹忽,老刑警劉巖砚作,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窘奏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡葫录,警方通過(guò)查閱死者的電腦和手機(jī)着裹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)米同,“玉大人骇扇,你說(shuō)我怎么就攤上這事∶媪福” “怎么了少孝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)熬苍。 經(jīng)常有香客問(wèn)我,道長(zhǎng)婿脸,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任褪迟,我火速辦了婚禮味赃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘城榛。我一直安慰自己狠持,他們只是感情好喘垂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著章贞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪里覆。 梳的紋絲不亂的頭發(fā)上喧枷,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天车荔,我揣著相機(jī)與錄音,去河邊找鬼珠增。 笑死蒂教,一個(gè)胖子當(dāng)著我的面吹牛凝垛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播届氢,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼寂祥!你這毒婦竟也來(lái)了丸凭?” 一聲冷哼從身側(cè)響起惜犀,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎莉御,沒(méi)想到半個(gè)月后牍颈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體煮岁,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年碰缔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了金抡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榛瓮。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粹懒,靈堂內(nèi)的尸體忽然破棺而出凫乖,到底是詐尸還是另有隱情,我是刑警寧澤导街,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布付呕,位于F島的核電站徽职,受9級(jí)特大地震影響姆钉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜毯辅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胀莹。 院中可真熱鬧,春花似錦荆秦、人聲如沸步绸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)漾月。三九已至梁肿,卻和暖如春钮热,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仆潮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人篡石。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓械馆,卻偏偏與公主長(zhǎng)得像霹崎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子派诬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容