可觀測性(二)

上一期可觀測性文章《可觀測性(一)》里面聊了可觀測性的定義、價值和三大支柱。

其中值得再次提及的是,可觀測性的核心目的是以量化的方式管理企業的基礎設施(包括中間件等)、平臺和應用程序。

正所謂 “如果你無法量化它,你就無法管理它” -- 彼得·德魯克。

同時還有一個要點,就是可觀測性要完成閉環,終究需要告警管理平臺來做連接--將問題指標即時反映給相關維護人員,以解決系統無法自修復的問題,同時提高系統自修復能力。

接著這個話題,這期我整理了構建一個優秀的可觀測系統需要哪些核心能力。

由于這個話題近乎實操,太過深入,本人暫時力不能及,但學習完之后又覺得很有價值,想分享給大家,同時留作日后回顧。因此以引用的方式將精髓呈現出來。

原文來自公眾號《成哥的世界》,作者:Cheng哥。有刪改。

通常我們在IT領域看到的關于可觀測性概念的介紹,都會提到它是Metrics, Traces以及Logs的結合,通常會以下圖來呈現。

1.png

這里我找了一個Splunk的Demo,我們可以直觀的感受一下,可觀測性的實際效果是怎樣的。

Splunk可觀測性gif.gif

大家看完這個示意,對可觀測性就有更直觀的理解了,不做贅述。
但是這個Demo就只能作為Demo看一下,現實情況遠比這個要復雜的多,原因我們后面會講到。
不過,這里就有問題了,監控做了這么多年,Metric都是全的,日志系統也上了,Log一條都沒拉下,調用鏈工具也引入了,Trace拓撲也能畫出來,那上面這個效果是不是將三者結合一下就有了呢?
答案顯而易見,是否定的。相反,現實情況下上述的效果并不容易達成,這里不僅僅是Metric、Trace和Log三者的技術結合在一起就OK,這只是外在的形,要想達成這個效果,其實更關鍵的是背后的神。
那這個神到底是什么,接下來我就換一個方式描述一下這個過程,把背后更為核心的內容呈現出來。

可觀測性Observability的剖析

一圖勝千言,我直接用一張圖來描述,如下所示:

2.png

其實有了這張圖,對Observability有一定理解的同學,應該就看的差不多了。
如果說Observability的內在的神是什么,總結下來就是3部分內容:
1.SRE方法論
2.AIOps算法能力
3.業務架構的理解,這里暗含著對領域知識的掌握


3.png

我們可以看到,這三部分的核心能力的掌握就不單純是技術能力的體現了,這里要有非常深厚經驗積累和時間,以及長時間對業務架構摸索和理解。
也只有在這三部分核心能力的指導下,像Metric、Trace和Log這樣的技術手段才能發揮最大價值。

接下來我們再談談為什么這三個核心能力非常重要:

可觀測性之SRE方法論

這里面要用到SLO的方法,幫助我們識別關鍵Metrics,快速感知問題發生,主要是在Detect階段。

我們知道復雜系統下,會包含網絡、應用、分布式中間件、容器、主機、存儲、數據庫等等多層設備和部件,每個部件都會有自己的各類指標。

但是指標這么多,出問題同時告警,那就告警風暴了,一個是會造成關鍵信息淹沒,再就是信息多了,告警就變成了“狼來了”,接收告警的人就麻木了。

這個時候就要設定SLO,而且SLO得是要分層設定,業務層面,要關注業務SLO,比如GMV、訂單量、支付成功率等等。

系統層面就要關注系統SLO,比如訂單接口成功率、時延和TPS等等,應用就要關注應用的SLO,緩存、消息、存儲、數據庫,以及底層的網絡、容器、虛擬機、硬件主機要也要有自己的SLO。

SLO怎么設計,我不詳述了,之前講了很多,大家自行了解SRE的SLO機制就好了。
不過,即使做分層設定,出問題告警依然很多,我可以通過選定最上層的業務SLO來感知出問題了,提升響應速度,但是問題出在哪兒依然未知,這個時候在這種復雜系統中,就必須依賴AIOps的能力了。

可觀測性之AIOps

AIOps領域,針對Metric、Trace和Log,都有專門的算法來應對支持,對應三類,比如針對Metric,就是KPI Anomaly Detection,針對Trace就是Tracing Anomaly Detection,針對Log就是Log Anomaly Detecion。

所以,AIOps是會始終貫穿整個Observability過程的,關于AIOps推薦看一下清華裴丹教授的文章和課程,會有更詳細的分享。

可觀測性之業務架構的理解

如果SRE方法論和AIOps是落地Observability的兩個核心,那對業務架構的理解,我對它的定位就是核心中的核心。

我們在架構領域經常聽到的一句話就是,“脫離業務談架構就是耍流氓”,其實也適用于Observability,適用于SRE和AIOps,脫離業務架構談Observability就是耍流氓。

那對業務架構的理解為什么這么重要呢?我們看兩個場景:

第一個,還是回到SLO設定上,當我們設定業務SLO時,我們是要根據業務類型和特點來的,或者換種說法,用戶對我們業務的感知,是通過哪些指標來體現的?

首先,我們得能定義出來,比如電商可以是可以訂單和支付維度來判定,對應會有下單成功率、下單量,支付成功率,支付筆數等等。

再進一步,正常這些指標都一個平滑的駝峰式曲線,等但是在做活動時,它可能就是一個個的尖峰和突刺,在節假日它的同環比會下降,遇到熱點商品,可能會出現一段時間的波動,但是這些場景并不意味著系統出問題了,這種就要在AIOps的算法里識別出來。

那類似微信的IM又是什么指標和特點?社交軟件微博又有什么不同?跨行業的電信運營商,以及銀行、證券、保險等金融行業又各是什么特點。

這些都取決于對業務場景的深刻理解。

如果說第一個場景只要我懂業務就可以設定SLO,那如果我往深里看,那就不僅僅是對業務場景的理解了。

第二個,我們往業務架構深里看,我們都知道復雜分布式系統里,調用關系是異常復雜的,會呈現密布的網狀調用關系。

4.png

當然現在有各類Trace工具能幫我們把調用拓撲呈現出來,也可以根據TraceID或業務ID單獨看某次的調用鏈,確實方便了很多。

但是這么復雜的調用關系全部呈現出來,我到底應該怎么看?
答案是基本沒法看!

所以這個時候就必須得事先規劃出一條核心的業務鏈路,也就是我們常說的業務關鍵路徑Critical Path,再進一步,關鍵路徑上就會有核心應用,只有對照著這個路徑去看,Observability才會有針對性和指導意義。

所以上面的那個Splunk的Demo,我們為什么說就是個Demo,因為現實中的調用關系要比Demo復雜N多倍,但是它想呈現的效果,就是針對Critical Path關鍵路徑路來的。
關于Critical Path,核心應用,強弱依賴關系等等,在我的課程和之前的文章中都有,可以自行查閱。

所以講到這里,我們可以看到,Observability從業務來講,其實是需要事先定義出如下一條業務分析鏈路的:

業務SLO—Critical Path—核心應用SLO—核心分布式組件SLO—容器SLO—IAAS SLO

只有這個鏈路清晰了,AIOps才會發揮最大的優勢,Observability的效果才會呈現出來。

一開始可以冗余,不那么清晰,但是必須得有,就像杭州到深圳,大家得知道杭州打車去機場,飛機去深圳機場,到了深圳再打車或地鐵去目的地,這就是一條主線,這個都沒有,基本就沒法出門了。

所以,要做到這個程度,你就得懂業務、懂業務架構、懂技術架構、還要有一定的經驗積累和沉淀,不然沒法做判斷。

上面講了那么多,我放個示例,就不多講了。

5.png

當然,可能會有人挑戰我說,AIOps可以做到無監督學習,自行分析關鍵路徑,不用這么麻煩還要人工分析。

當然,我相信未來有一天或許會做到,但是到目前為止,我覺得這還不現實,即使能分析出鏈路來,但是已然離不開架構師的梳理和確認。

這個狀態,我覺得就跟現在的無人駕駛一樣,絕大多數情況下,他可以自動巡航,但是關鍵時刻還是離不開人的判斷和控制。而人的判斷又是來自于駕駛經驗、交通法規、倫理道德以及當時的精神面貌等很多因素。

從這個角度,自動巡航能力只是人的決策依據的一部分而已,只能做輔助,永遠離不開也取代不了人的判斷。

最后,總結一下:

當前看到的Observability的產品只有Metric、Trace和Log的技術描述,額外再加上部分AIOps的加持,但是這些只是形,沒有神。

要想有神,最關鍵不能離開業務和場景,所以SRE方法論、領域知識(業務和架構)以及AIOps才是Observability的落地的關鍵所在。

而這三者之中,對業務場景及業務架構的理解程度,決定了SRE和AIOps可以發揮的效果如何,也最終決定了落地的效果。

再就是,為什么之前很少有人提Observability,這兩天如此火熱,我覺得還是技術應用發展到一定程度的結果,大家前幾年都在分頭搞監控、鏈路跟蹤和日志系統,這兩年搞差不多了,自然就會有更高的應用訴求。

所以,從技術上講,并無新鮮的東西,關鍵還是得有更清晰的判斷和思考。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內容