近年來(lái),可觀測(cè)性熱度節(jié)節(jié)攀升,企業(yè)在可觀測(cè)性實(shí)踐過程中常常也伴隨著一系列棘手的問題:
接下來(lái)我們就跟隨嘉為科技AIOps產(chǎn)品負(fù)責(zé)人宋蘊(yùn)真的腳步,步步深入,深度剖析可觀測(cè)性,全面深度挖掘探索企業(yè)運(yùn)維可觀測(cè)體系的建設(shè)之路。
*注:以下內(nèi)容整理自:嘉為科技AIOps產(chǎn)品負(fù)責(zé)人 宋蘊(yùn)真 于 嘉為藍(lán)鯨2022研運(yùn)一體創(chuàng)新峰會(huì)的精彩分享——《運(yùn)維可觀測(cè)體系化建設(shè)之路》。
01. 正本清源——可觀測(cè)與相關(guān)易混淆概念
1)監(jiān)控VS可觀測(cè)性
談及可觀測(cè)性,就不得不提一個(gè)經(jīng)常會(huì)被混淆的概念,也就是監(jiān)控。在我們以往的實(shí)踐過程中,通常遇到最多的問題就是:企業(yè)現(xiàn)在已經(jīng)建設(shè)了許多監(jiān)控工具了,可觀測(cè)的體系建設(shè)能夠帶來(lái)什么價(jià)值?
首先需要明確:監(jiān)控是一種可觀測(cè)的實(shí)現(xiàn)手段,而可觀測(cè)性本身不止于監(jiān)控。
對(duì)于運(yùn)維來(lái)說(shuō),在發(fā)現(xiàn)問題時(shí),傳統(tǒng)監(jiān)控通通僅能指向問題發(fā)生的對(duì)象,將告警發(fā)送給用戶,此時(shí)依靠運(yùn)維人員的歷史處理經(jīng)驗(yàn)來(lái)進(jìn)行下一步動(dòng)作。往往這種處理方式經(jīng)由經(jīng)驗(yàn)豐富的運(yùn)維人員處理,能夠得心應(yīng)手,但是當(dāng)運(yùn)維人員缺乏處理經(jīng)驗(yàn)時(shí),我們僅僅只能夠發(fā)現(xiàn)問題的表層,而無(wú)法得知問題的根源,造成運(yùn)維在解決問題時(shí),猶如開“盲盒”一般,毫無(wú)頭緒的境況。
監(jiān)控使用者更偏向于具備豐富經(jīng)驗(yàn)的傳統(tǒng)運(yùn)維老手,舉個(gè)例子來(lái)說(shuō),就如同老中醫(yī)通過把脈能夠大體判斷病癥,同樣的,運(yùn)維老手從儀表盤就大概能夠判斷出問題的程序或機(jī)器。但這種方式非常依賴于過往的經(jīng)驗(yàn),以及運(yùn)維人員對(duì)這套系統(tǒng)的熟悉度。
而對(duì)于可觀測(cè)來(lái)說(shuō),它更像是西醫(yī)的概念,就好比去醫(yī)院進(jìn)行體檢時(shí),通過很多全面的檢查,醫(yī)生就能夠比較精確的指向病因根源??捎^測(cè)性讓我們通過更加復(fù)合的手段,讓不具有很多運(yùn)維經(jīng)驗(yàn)或者對(duì)系統(tǒng)并不熟悉的人也能夠很好的完成運(yùn)維工作。
2)可視化VS可觀測(cè)性
第二個(gè)容易混淆的概念,往往出現(xiàn)在初步接觸可觀測(cè)領(lǐng)域,即可視化和可觀測(cè)性的混淆。本身這兩個(gè)概念都比較大,在此我們也僅僅只淺談可觀測(cè)里面的可視化。
在可觀測(cè)中的可視化就是將觀測(cè)數(shù)據(jù)進(jìn)行展現(xiàn)的手段,而在更大的領(lǐng)域,有的企業(yè)會(huì)去做數(shù)字孿生,將各種對(duì)象以數(shù)字化方式進(jìn)行投射或展示。
可觀測(cè)更關(guān)注的點(diǎn)并不在可視化上,更多時(shí)候只是將可視化作為呈現(xiàn)數(shù)據(jù)的手段,除了呈現(xiàn)數(shù)據(jù),可觀測(cè)還包括數(shù)據(jù)的收集、存儲(chǔ)、分析等,最終整合后組織成一個(gè)良好的產(chǎn)品形態(tài),輔助運(yùn)維人員進(jìn)行排障。
02. 以史為鏡——可觀測(cè)發(fā)展進(jìn)程
1)可觀測(cè)性的發(fā)展
以史為鏡,縱觀可觀測(cè)性的整個(gè)發(fā)展歷程。企業(yè)在選用或采購(gòu)產(chǎn)品時(shí),通常也會(huì)去了解產(chǎn)品發(fā)展的來(lái)龍去脈,那么可觀測(cè)的發(fā)展是怎樣的呢?
在早期,可觀測(cè)并不是作為一個(gè)獨(dú)立概念被提出,而是在海外經(jīng)典理論——控制論中有所提及。在控制論的描述中,信息在系統(tǒng)中不斷的進(jìn)行傳輸,系統(tǒng)會(huì)隨著信息不斷的反饋而調(diào)整行為,最終形成整體反饋的閉環(huán)。
控制論在傳入國(guó)內(nèi)后,被我國(guó)著名科學(xué)家錢學(xué)森發(fā)揚(yáng)光大,并且在工程學(xué)上進(jìn)一步進(jìn)行應(yīng)用。其核心基本問題就是系統(tǒng)的能控性與能觀測(cè)性,也就是通過系統(tǒng)中信息的不斷反饋,來(lái)指導(dǎo)并優(yōu)化整體工程。
為了方便理解,我們以人體領(lǐng)域來(lái)和研運(yùn)領(lǐng)域進(jìn)行對(duì)比,更形象的解釋可觀測(cè)的概念。
對(duì)于人來(lái)說(shuō),判斷事物需要從眼睛看到,耳朵聽到以及感官獲取,這就是人體的觀測(cè)系統(tǒng)。在觀測(cè)到數(shù)據(jù)后,通過大腦進(jìn)行判斷,接著進(jìn)行下一步行動(dòng)思考,構(gòu)成完整的觀測(cè)閉環(huán)。
而對(duì)于運(yùn)維,我們希望建立AI專家系統(tǒng)的概念,能夠像人腦一樣,通過可觀測(cè)系統(tǒng)收集數(shù)據(jù)后進(jìn)行判斷,對(duì)于能夠解決的問題給予自動(dòng)化或手動(dòng)的操控,對(duì)于需要求助的可以申請(qǐng)工單獲得問題支持。
在這里,最大的價(jià)值點(diǎn)仍然在于信息的輸入,如果能夠盡早的獲取系統(tǒng)中的數(shù)據(jù),就能夠盡早的思考和分析,從而采取行動(dòng)。
2)IT與可觀測(cè)性相輔相成
回顧IT發(fā)展史,事實(shí)上,可觀測(cè)性與IT的發(fā)展是密不可分、相輔相成的。IT發(fā)展史大體來(lái)說(shuō)可以分為三個(gè)時(shí)代,可觀測(cè)性手段也隨之不斷的進(jìn)步。
① 單機(jī)時(shí)代
早期IT對(duì)象較為單一,大型機(jī)時(shí)期,觀測(cè)手段主要通過儀表盤進(jìn)行,隨著DOS的出現(xiàn),可以通過命令查詢信息,但此時(shí)并不具備監(jiān)控的能力,直到Windows/Linux的出現(xiàn),通過記錄Syslog數(shù)據(jù),使得大家可以在遠(yuǎn)端或者不在電腦上的情況下理解系統(tǒng)的信息。
而這種結(jié)構(gòu)化的文本數(shù)據(jù)Syslog,如今在在業(yè)內(nèi),我們也通常稱之為日志,實(shí)際上,日志就是最明細(xì)、最單元、也是最早出現(xiàn)的一種觀測(cè)數(shù)據(jù)。
② 局域網(wǎng)時(shí)代
隨著局域網(wǎng)時(shí)代的到來(lái),存儲(chǔ)成本變高,上述對(duì)結(jié)構(gòu)化數(shù)據(jù)記錄這種觀測(cè)手段,存在著是信息量日趨龐大的問題,面對(duì)這樣的挑戰(zhàn),一個(gè)劃時(shí)代的數(shù)據(jù)——指標(biāo)類型數(shù)據(jù)出現(xiàn)了,它通過將低維度的結(jié)構(gòu)化事件進(jìn)行升維,在此之后,我們逐漸能夠?qū)T對(duì)象進(jìn)行集群式的觀測(cè)和監(jiān)控,通過插件對(duì)結(jié)構(gòu)化的日志聚合成指標(biāo)數(shù)據(jù),從而節(jié)省存儲(chǔ)和網(wǎng)絡(luò)的開銷,這也是最早期監(jiān)控的雛形。
在這個(gè)時(shí)代,誕生了一些極具代表性的軟件:Zabbix以及以日志為核心的Splunk,代表了集群化的局域網(wǎng)時(shí)代IT觀測(cè)的的兩種核心工具。
③ 互聯(lián)網(wǎng)時(shí)代
我們來(lái)到現(xiàn)在的互聯(lián)網(wǎng)時(shí)代,C端用戶不斷增多,在云原生技術(shù)的飛速推動(dòng)下,IT面臨著更多更復(fù)雜的對(duì)象和架構(gòu),如右上角CNCF矩陣圖所示。
在這樣一個(gè)對(duì)象暴漲的時(shí)代,依靠過去用插件做采集的模式已經(jīng)逐漸行不通,于是云原生開發(fā)者們相應(yīng)的開始做一些觀測(cè)工具,為了拓展生態(tài)能力,適配對(duì)接更多類型的對(duì)象,開源社區(qū)共建共享的形式也逐漸鋪開。誕生一些諸如DATADOG、dynatrace等較為代表性的工具。
回顧整個(gè)觀測(cè)手段的發(fā)展過程,其核心也是圍繞經(jīng)典三支柱Metrics、Logs和Traces在發(fā)展,其中Traces即是分布式架構(gòu)時(shí)代下產(chǎn)生的新的元數(shù)據(jù)。在互聯(lián)網(wǎng)時(shí)代,新的商業(yè)化的軟件和企業(yè)也有以下一些與以往不同的思路,來(lái)實(shí)現(xiàn)現(xiàn)代化的可觀測(cè):
03. 工欲善其事,必先利其器
在整個(gè)可觀測(cè)發(fā)展過程中,每一個(gè)企業(yè)可能都會(huì)建立一些監(jiān)控工具、日志工具,但這些工具就像是散亂的零件,沒有辦法組裝打通,各個(gè)工具之間體驗(yàn)也完全不一致。
這就好比過去我們需要進(jìn)行拍照,打電話,閱讀文本時(shí),往往需要不同的工具,而到了現(xiàn)在,這些功能會(huì)被統(tǒng)一整合進(jìn)手機(jī)里,以更高的效率、更好的體驗(yàn)來(lái)去解決問題。
“工欲善其事,必先利其器”??捎^測(cè)性并非是簡(jiǎn)單的工具搭建,低整合度的工具排查問題時(shí)不僅效率低下,同時(shí)存在著跨系統(tǒng)排障不一定可行的隱患。那么如何“打磨利器”呢?這里我們看DATADOG提出的3個(gè)重要概念:Any Stack、Any Scale和Any APP。
1)豐富且可擴(kuò)展的采集能力(Any Stack)
運(yùn)維系統(tǒng)最大的復(fù)雜度并不在于運(yùn)維系統(tǒng)的建設(shè),也不在于運(yùn)維工具如何建設(shè),而是在于運(yùn)維的對(duì)象非常多,要求各種各樣的運(yùn)維專家來(lái)應(yīng)對(duì)這些不同對(duì)象所產(chǎn)生的問題。
可觀測(cè)性的建立第一步,即是強(qiáng)調(diào)需要具備豐富的從不同對(duì)象采集數(shù)據(jù)的能力。這也是整個(gè)觀測(cè)系統(tǒng)建設(shè)的基礎(chǔ),實(shí)現(xiàn)方式主要有兩個(gè)點(diǎn),一是要依賴于開源社區(qū)的貢獻(xiàn),而是將采集能力建設(shè)為可插拔的方式。
2)靈活可擴(kuò)展的大數(shù)據(jù)后臺(tái)架構(gòu)(Any Scale)
通常在做可觀測(cè)時(shí),都會(huì)面向一個(gè)非常大的系統(tǒng),與傳統(tǒng)局域網(wǎng)集群和單體監(jiān)控不同,我們所面臨的主要問題并不是穩(wěn)定的指標(biāo)數(shù)據(jù),而是相對(duì)變化頻繁的Logs,Traces數(shù)據(jù),隨著業(yè)務(wù)系統(tǒng)調(diào)用量的變化,如流量洪峰時(shí),系統(tǒng)的數(shù)據(jù)壓力就非常難以預(yù)測(cè)。所以,建立背后可彈性支持海量數(shù)據(jù)、能夠扛住流量洪峰的后臺(tái)架構(gòu),是系統(tǒng)穩(wěn)定的重要保障。
3)觀測(cè)手段整合,提供下鉆能力(Any App)
第三點(diǎn)Any App,是針對(duì)各類不同場(chǎng)景,都可提供相應(yīng)工具或能力。一方面體現(xiàn)的場(chǎng)景在于對(duì)Traces Logs和Metrics數(shù)據(jù)之間相互映射的關(guān)系,從低維度數(shù)據(jù)聚合到中高維度,在實(shí)際使用過程中從高維數(shù)據(jù)產(chǎn)生的告警去探索和溯源。
另一方面,在整個(gè)運(yùn)維系統(tǒng)組織構(gòu)建時(shí),CMDB的建模與可觀測(cè)也是相輔相成的,在CMDB中建立資源對(duì)象模型后,能夠進(jìn)一步實(shí)現(xiàn)維度下鉆,通過Traces的動(dòng)態(tài)聚合,生成不同的微服務(wù),從而獲取不同時(shí)段下具體的指標(biāo)有哪些,相關(guān)動(dòng)態(tài)拓?fù)溆质鞘裁礃拥模瑥亩玫膶?shí)現(xiàn)從宏觀到微觀角度排查問題。
04. 規(guī)程 OR 文化?
聊完了工具,我們最后再來(lái)談一談企業(yè)落地決策,到底是以一個(gè)好的規(guī)程,還是建立一個(gè)文化來(lái)去落地。這里我們的建議是根據(jù)企業(yè)組織現(xiàn)狀來(lái)去決定。
1)設(shè)立規(guī)程
這種思路比較適用于人才密度相對(duì)較低的團(tuán)隊(duì),例如在一些企業(yè)中,會(huì)有一定的正式員工負(fù)責(zé)監(jiān)控、觀測(cè)的項(xiàng)目,同時(shí)會(huì)有一些外包團(tuán)隊(duì)幫助進(jìn)行具體操作,在這種情況下,一般是Control(控制)大于Context(基于背景信息協(xié)作)的協(xié)作模式,也就是需要通過建立良好的流程來(lái)控制整套系統(tǒng)的運(yùn)行。
在建立工具體系以后,制定好具體的流程策略以及相對(duì)于的負(fù)責(zé)團(tuán)隊(duì),同時(shí)打通觀測(cè)前中后期全流程,可以更好的控制整個(gè)團(tuán)隊(duì)排查問題的效率。
2)形成文化
在一些企業(yè)中,團(tuán)隊(duì)會(huì)追求運(yùn)維向運(yùn)維開發(fā)轉(zhuǎn)型,或是運(yùn)維工程師向SRE工程師的轉(zhuǎn)型,企業(yè)希望能夠?qū)F(tuán)隊(duì)變得更加精英化,此時(shí)我們就需要去激發(fā)每個(gè)人的主觀能動(dòng)性,通過建立一些正向的反饋,讓整個(gè)團(tuán)隊(duì)在過程中不僅得到技術(shù)上的精進(jìn),更能夠從中獲得成就感,從而形成一正向的循環(huán)。
同時(shí)我們也鼓勵(lì)團(tuán)隊(duì)中積極分享更多的技術(shù)與方法論實(shí)踐,將整個(gè)文化進(jìn)行推廣,不僅僅局限在運(yùn)維團(tuán)隊(duì)之中,還需要與開發(fā)、業(yè)務(wù)團(tuán)隊(duì)之間溝通交流,跨團(tuán)隊(duì)的推廣實(shí)踐。其次,提早進(jìn)行埋點(diǎn)設(shè)計(jì),早期建設(shè)時(shí)就需要考慮可觀測(cè)設(shè)計(jì)中可能出現(xiàn)的瓶頸,在后續(xù)的實(shí)際運(yùn)行過程中,能夠幫助更好的發(fā)現(xiàn)問題。
最后是鼓勵(lì)工程師探索更多觀測(cè)手段,而不是像傳統(tǒng)的所謂“盡責(zé)”,單純追求所有問題的呈現(xiàn)和記錄,最后造成“狼來(lái)了”的局面,告警一直不停,但卻不會(huì)去關(guān)注問題所在。這樣的團(tuán)隊(duì)最終也就演變成為“互相甩鍋”的割裂組織。
關(guān)于可觀測(cè)性的內(nèi)容還有很多,限于篇幅,我們僅僅只涉及到了冰山一角,當(dāng)然可觀測(cè)性的發(fā)展路途還很漫長(zhǎng)。
SRE轉(zhuǎn)型:銀行SRE和虛擬IT組織的協(xié)作
查看詳細(xì)
提升軟件測(cè)試效率與質(zhì)量:基于CTest的結(jié)構(gòu)化測(cè)試用例設(shè)計(jì)與執(zhí)行
查看詳細(xì)
SRE轉(zhuǎn)型:銀行SRE和DevOps團(tuán)隊(duì)的協(xié)作
查看詳細(xì)
嘉為藍(lán)鯨CPack制品庫(kù):全新支持“純血”鴻蒙制品
查看詳細(xì)
DeepSeek 最新技術(shù)趨勢(shì):運(yùn)維人員如何提升告警管理效能?
查看詳細(xì)
SRE轉(zhuǎn)型:銀行SRE模式推廣策略
查看詳細(xì)
申請(qǐng)演示