微服務(wù)線上治理之監(jiān)控

微服務(wù)架構(gòu)已經(jīng)是時下后端應(yīng)用開發(fā)的主流架構(gòu)之一芥颈。微服務(wù)的整個生命周期包括微服務(wù)拆分和定義(產(chǎn)品規(guī)劃)微服務(wù)研發(fā)双藕、微服務(wù)構(gòu)建與部署止状、監(jiān)控與運維幾個階段烹棉。

對于一般企業(yè)的微服務(wù)改造而言,極少部分企業(yè)認(rèn)為用上微服務(wù)概念 + Spring cloud套件就是整活微服務(wù)架構(gòu)了怯疤;一部分企業(yè)還能認(rèn)識到針對微服務(wù)構(gòu)建和部署所必需的DevOps流水線或平臺浆洗;接著,越來越多的企業(yè)開始接受支持微服務(wù)拆分和設(shè)計思想的Domain Driven Design集峦;在完成前三步的基礎(chǔ)上伏社,最終還有少部分企業(yè)意識到線上分布式系統(tǒng)帶來的復(fù)雜性,需要進(jìn)行微服務(wù)線上治理——分層次的監(jiān)控塔淤、診斷及最終的治理方案摘昌。

這里就主要從可觀測性、層次性高蜂、時效性上聪黎,聊聊微服務(wù)線上治理中的監(jiān)控。

系統(tǒng)運行時的可觀測性

微服務(wù)線上治理的前提——采集線上運行時數(shù)據(jù)备恤,讓系統(tǒng)狀態(tài)與流程可被實時度量和監(jiān)控稿饰。

管理學(xué)之?德魯克曾經(jīng)說過:“如果你無法度量它,就無法改進(jìn)它露泊『砹”
然而對于今天——在各系統(tǒng)存在各種五花八門、各式各樣惭笑、大量指標(biāo)數(shù)據(jù)的當(dāng)下梧喷,如何整合這些指標(biāo),在度量的同時脖咐,提升整個系統(tǒng)運行時的可觀測性铺敌,以達(dá)到及時地發(fā)現(xiàn)問題、定位問題的目的屁擅,才是微服務(wù)線上治理的基礎(chǔ)偿凭。

理論上,問題越早發(fā)現(xiàn)派歌、越早修復(fù)弯囊,可以越節(jié)省研發(fā)成本。一些微服務(wù)的問題胶果,在規(guī)劃匾嘱、研發(fā)、構(gòu)建等階段早抠,可以通過線下微服務(wù)治理的方式提前解決掉霎烙。

然而,對于微服務(wù)能力不同蕊连、或者理解不同的各企業(yè)和團(tuán)隊來說悬垃,部分團(tuán)隊需要等到系統(tǒng)被部署到線上運行時才能真正發(fā)現(xiàn)和正視問題。
當(dāng)你面臨的團(tuán)隊甘苍,不追求clean architecture尝蠕、不寫測試、不堅持重構(gòu)载庭、沒有性能測試和聯(lián)調(diào)測試看彼、甚至沒有太多有經(jīng)驗的開發(fā),這時候囚聚,線上系統(tǒng)監(jiān)控將成為最后的反饋堡壘靖榕。

因此,帶有觀測性的線上監(jiān)控能力是各個微服務(wù)團(tuán)隊必不可少的“看家”工具之一靡挥。

業(yè)內(nèi)能做到線上監(jiān)控的開源產(chǎn)品和商業(yè)產(chǎn)品不一而足序矩。大家可能見過下面這樣的(監(jiān)控微服務(wù)狀態(tài)、微服務(wù)之間調(diào)用等):


圖1

或者是跋破,監(jiān)控 服務(wù)對資源CPU簸淀、內(nèi)存、磁盤等利用率趨勢:


圖2

也有API調(diào)用量毒返、失敗率租幕、延時時長的TopN統(tǒng)計:


圖3

或者,是基于動態(tài)鏈路技術(shù)實現(xiàn)的鏈路圖:


圖4

監(jiān)控需要分層次

看過上面四種監(jiān)控示例圖拧簸,相信有不少做過線上問題診斷的同事會認(rèn)為:不少指標(biāo)過于細(xì)劲绪,或者過于底層,對于發(fā)現(xiàn)實際問題和定位問題毫無幫助。

當(dāng)經(jīng)過詳細(xì)調(diào)研分析和使用之后贾富,本人發(fā)現(xiàn)這些監(jiān)控模型是應(yīng)該分層次來理解和使用的歉眷。


圖5

一共分為基礎(chǔ)狀態(tài)層資源占用層颤枪、API層汗捡、鏈路層

  • 基礎(chǔ)狀態(tài)層:各微服務(wù)和基礎(chǔ)設(shè)施服務(wù)(比如數(shù)據(jù)庫)的生效配置及實時狀態(tài)畏纲,如健康度扇住、熔斷器狀態(tài)、限流閥狀態(tài)盗胀、灰度狀態(tài)等等艘蹋。(如示例圖1)
  • 資源占用層:各微服務(wù)和基礎(chǔ)設(shè)施服務(wù)對資源的占用,比如微服務(wù)對系統(tǒng)CPU票灰、內(nèi)存女阀、磁盤等的占用率,微服務(wù)內(nèi)部堆棧對內(nèi)存的利用率等等米间。(如示例圖2)
  • API層:各微服務(wù)的API性能强品,API方式包括且不限于http restful API、messageQueue consumer等等屈糊;同時的榛,基礎(chǔ)設(shè)施服務(wù),比如數(shù)據(jù)庫逻锐,SQL本身可以理解為一種特殊的API夫晌,因此慢SQL統(tǒng)計和監(jiān)控,也可以算入API層昧诱。(如示例圖3)
  • 鏈路層:統(tǒng)計和追蹤由服務(wù)請求發(fā)起的整個系統(tǒng)內(nèi)部鏈路的流轉(zhuǎn)晓淀,包括微服務(wù)之間、微服務(wù)與基礎(chǔ)設(shè)施服務(wù)之間的鏈路盏档。微服務(wù)之間的調(diào)用方式包括且不限于http restful凶掰、messageQueue等等。(如示例圖4)

越靠近技術(shù)底層蜈亩,指標(biāo)越孤立懦窘,對服務(wù)的影響面越廣,越難直接定位問題稚配;

越靠近應(yīng)用層畅涂,指標(biāo)越具象,影響面越小道川,越容易定位問題午衰。

當(dāng)然也有人會認(rèn)為立宜,在這種分層結(jié)構(gòu)中,應(yīng)該將基礎(chǔ)設(shè)施服務(wù)單獨拎出來作為一個單獨分類 —— 的確也是無不可臊岸,除了鏈路層以外橙数,基礎(chǔ)設(shè)施服務(wù)可以獨立完成另外三層的縱向切片。

監(jiān)控需要時效性

在搭建監(jiān)控工具 或者 接入監(jiān)控平臺時扇单,面對于采集日志商模、指標(biāo)的實時運算方式,大多數(shù)情況都默認(rèn)監(jiān)控是實時的 —— 這樣能及時發(fā)現(xiàn)和響應(yīng)問題蜘澜。

并且大部分監(jiān)控工具,做到了監(jiān)控自動化响疚,進(jìn)行實時預(yù)警鄙信,及時通知到相關(guān)人員處理問題;或者忿晕,有部分DevOps監(jiān)控平臺甚至可以做到自動化AI管控装诡,針對基礎(chǔ)狀態(tài)層資源占用層出現(xiàn)的問題践盼,使用資源臨時擴容鸦采、資源切換/重啟等策略進(jìn)行線上自動恢復(fù)。

然而隨著Q/TPS咕幻、數(shù)據(jù)量的增長渔伯,監(jiān)控服務(wù)資源升級的滯后 或 架構(gòu)的不合理,監(jiān)控延時的誤差會越來越大肄程。

當(dāng)監(jiān)控的時效性越來越偏離實時锣吼,團(tuán)隊對于系統(tǒng)運行時快速發(fā)現(xiàn)和響應(yīng)問題的效率將大打折扣。

個站原文

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓝厌,一起剝皮案震驚了整個濱河市玄叠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拓提,老刑警劉巖读恃,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異代态,居然都是意外死亡寺惫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門胆数,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肌蜻,“玉大人,你說我怎么就攤上這事必尼〗眩” “怎么了篡撵?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長豆挽。 經(jīng)常有香客問我育谬,道長,這世上最難降的妖魔是什么帮哈? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任膛檀,我火速辦了婚禮,結(jié)果婚禮上娘侍,老公的妹妹穿的比我還像新娘咖刃。我一直安慰自己,他們只是感情好憾筏,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布嚎杨。 她就那樣靜靜地躺著,像睡著了一般氧腰。 火紅的嫁衣襯著肌膚如雪枫浙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天古拴,我揣著相機與錄音箩帚,去河邊找鬼。 笑死黄痪,一個胖子當(dāng)著我的面吹牛紧帕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播满力,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼焕参,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了油额?” 一聲冷哼從身側(cè)響起叠纷,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎潦嘶,沒想到半個月后涩嚣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡掂僵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年航厚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锰蓬。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡幔睬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芹扭,到底是詐尸還是另有隱情麻顶,我是刑警寧澤赦抖,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站辅肾,受9級特大地震影響队萤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜矫钓,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一要尔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧新娜,春花似錦赵辕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旁钧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間互拾,已是汗流浹背歪今。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留颜矿,地道東北人寄猩。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像骑疆,于是被迫代替她去往敵國和親田篇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

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