《騰訊業(yè)務(wù)監(jiān)控的修煉之路》要點(diǎn):
本文介紹了騰訊業(yè)務(wù)監(jiān)控的修煉之路,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
李光:現(xiàn)任職于騰訊社交網(wǎng)絡(luò)運(yùn)營(yíng)部/織云產(chǎn)品團(tuán)隊(duì),負(fù)責(zé)織云監(jiān)控告警平臺(tái)規(guī)劃與運(yùn)維新產(chǎn)品開發(fā)工作,多年業(yè)務(wù)運(yùn)維、運(yùn)營(yíng)規(guī)劃經(jīng)驗(yàn).
這是監(jiān)控告警產(chǎn)品專題系列第一篇文章,涉及的主要內(nèi)容為監(jiān)控產(chǎn)品設(shè)計(jì)的一些相關(guān)基礎(chǔ)知識(shí),算是這個(gè)系列文章的一個(gè)索引.該篇會(huì)主要涉及到以下主要內(nèi)容
我現(xiàn)在是織云監(jiān)控告警產(chǎn)品線的產(chǎn)品經(jīng)理,而且這部分的產(chǎn)品也在分版本的持續(xù)建設(shè)中.所以后續(xù)主要的產(chǎn)品規(guī)劃、設(shè)計(jì)、實(shí)現(xiàn)的講述都是基于織云這個(gè)載體上實(shí)現(xiàn).
以前做QQ業(yè)務(wù)運(yùn)維的時(shí)候,有一類平臺(tái)是自己天天會(huì)用,那這類平臺(tái)是什么呢?就是監(jiān)控告警平臺(tái),每天在上面查大量的業(yè)務(wù)視圖、查異常、確認(rèn)告警、處理告警等等.
對(duì)于運(yùn)維同學(xué)來說,如果從使用頻率這個(gè)維度看,監(jiān)控告警類平臺(tái)的使用頻率要大于自動(dòng)化類平臺(tái),畢竟自動(dòng)化類平臺(tái)多數(shù)都是由例行變更觸發(fā),而監(jiān)控告警平臺(tái)是我們7X24小時(shí)都要使用的.當(dāng)時(shí)自己名下有較多的業(yè)務(wù)和幾千臺(tái)機(jī)器,那時(shí)有過一天收1000多條告警的記錄,相當(dāng)崩潰.
其實(shí)告警如果一天超過幾十條就基本是無效的,即關(guān)注不過來,也處理不過來.在業(yè)務(wù)運(yùn)維這個(gè)角色中,我更多的是從使用者這個(gè)視角去看監(jiān)控的.
去年下半年我從業(yè)務(wù)運(yùn)維轉(zhuǎn)型為產(chǎn)品經(jīng)理,現(xiàn)在負(fù)責(zé)騰訊織云(企業(yè)級(jí)運(yùn)維管理平臺(tái))監(jiān)控告警產(chǎn)品線的規(guī)劃與落地.在產(chǎn)品經(jīng)理這個(gè)階段我更多的是從建設(shè)者這個(gè)視角去看監(jiān)控的.
使用者和建設(shè)者這兩個(gè)視角去看待同一個(gè)事物監(jiān)控告警這個(gè)產(chǎn)品,最大的差異點(diǎn)是什么呢?
“出了任何故障,其他環(huán)節(jié)都是可能有問題,唯獨(dú)監(jiān)控是一定有問題!”
—— 喬治·背黑鍋
基于這兩種不同的視角與在實(shí)際建設(shè)途中遇到的各種實(shí)際問題,我萌發(fā)了寫一個(gè)監(jiān)控專題系列的想法,哈哈,臉皮蠻厚的的.自己以前都是寫單篇的文章,這次也算是一個(gè)挑戰(zhàn)了.希望通過這個(gè)專題能與大家交流下關(guān)于一款企業(yè)級(jí)監(jiān)控產(chǎn)品是怎么樣規(guī)劃、設(shè)計(jì)與落地的.
可能是當(dāng)產(chǎn)品經(jīng)理習(xí)慣了用戶場(chǎng)景與角色的分析,如果把這個(gè)主題的文章當(dāng)做一個(gè)產(chǎn)品來看,那么其中的角色與場(chǎng)景是什么呢?
梳理一下自己在建設(shè)織云監(jiān)控告警產(chǎn)品線的一些經(jīng)驗(yàn)和思考.
本章主要介紹一些關(guān)于監(jiān)控的通用方法論,我們先理清一些基本概念.
通過技術(shù)手段發(fā)現(xiàn)服務(wù)異常,持續(xù)優(yōu)化業(yè)務(wù)可用性與用戶體驗(yàn).這句話的關(guān)鍵詞是 發(fā)現(xiàn) ?持續(xù)優(yōu)化 可用性與體驗(yàn).
主動(dòng):程序內(nèi)部埋點(diǎn),服務(wù)主動(dòng)上報(bào)自身的運(yùn)行情況,一般都是具化為業(yè)務(wù)的各個(gè)屬性或者指標(biāo),這種方式準(zhǔn)、快,靈活性好,指標(biāo)豐富.但是在非標(biāo)準(zhǔn)框架下會(huì)有一定的代碼改造成本.
被動(dòng):無需埋點(diǎn),從外部探測(cè)或獲取服務(wù)的運(yùn)行情況,例如ping探測(cè)、日志采集分析等等.
旁路:與程序邏輯無關(guān),對(duì)服務(wù)質(zhì)量與口碑的監(jiān)控,例如輿情分析.
那么這三類有優(yōu)劣之分嗎?其實(shí)沒有,這里的方式都是針對(duì)于不同場(chǎng)景的,例如對(duì)域名的監(jiān)控,就可以通過該域名的外部撥測(cè)來達(dá)到監(jiān)控的目標(biāo),域名的訪問耗時(shí)也可以通過不同的撥測(cè)點(diǎn)來監(jiān)控.在我們騰訊內(nèi)部QQ和Qzone兩個(gè)海量業(yè)務(wù)對(duì)這三類監(jiān)控都應(yīng)用到了.
從大的對(duì)象范疇與層級(jí)關(guān)系來說,監(jiān)控一般分為五種類型
一個(gè)好的監(jiān)控體系應(yīng)該要達(dá)到以下三點(diǎn)目標(biāo)
在DevOps中,運(yùn)維、開發(fā)、測(cè)試這三個(gè)角色應(yīng)該視角統(tǒng)一,這里為什么說要視角統(tǒng)一,就是大家在監(jiān)控這個(gè)層面關(guān)注的點(diǎn)應(yīng)該是一致的,而不是你關(guān)注你的點(diǎn),我關(guān)注我的點(diǎn).例如所有的業(yè)務(wù)監(jiān)控都可以抽象出三個(gè)核心指標(biāo):請(qǐng)求量、成功率、耗時(shí).這三個(gè)關(guān)鍵指標(biāo)來判斷我們服務(wù)的可靠性,通過可靠性可以推算出可用性,并且可以間接反映用戶使用我們產(chǎn)品的的體驗(yàn).例如如果服務(wù)的可靠性不好,那么用戶的產(chǎn)品體驗(yàn)肯定不會(huì)好.
通過對(duì)上文的一些概念介紹,其實(shí)我們已經(jīng)可以推導(dǎo)出應(yīng)用監(jiān)控告警的目的,就是持續(xù)優(yōu)化業(yè)務(wù)服務(wù)質(zhì)量,并建設(shè)質(zhì)量體系.同樣織云監(jiān)控也是為了打造質(zhì)量體系的閉環(huán)路徑.
監(jiān)控告警是一款數(shù)據(jù)類屬性的產(chǎn)品,既然是數(shù)據(jù)類產(chǎn)品,那么在產(chǎn)品設(shè)計(jì)的時(shí)候一定要注意這樣的路徑閉環(huán) 數(shù)據(jù)生產(chǎn)→數(shù)據(jù)增值→數(shù)據(jù)消費(fèi),圍繞著這樣的路徑我們就可以勾勒出很多的用戶故事,用戶故事就是針對(duì)具體的角色,會(huì)有什么具體的活動(dòng),這個(gè)活動(dòng)所產(chǎn)生的價(jià)值.
這里舉個(gè)簡(jiǎn)單的例子,來說明數(shù)據(jù)生產(chǎn)與數(shù)據(jù)消費(fèi).隨著后面詳細(xì)的講述產(chǎn)品建設(shè)過程中會(huì)更加詳細(xì)的闡述這個(gè)閉環(huán)的路徑.
數(shù)據(jù)生產(chǎn):例如一臺(tái)服務(wù)器上報(bào)的各種基本的 OS 指標(biāo)數(shù)據(jù),如 CPU 使用率,內(nèi)存使用量等.這就產(chǎn)生了若干待消費(fèi)的原始數(shù)據(jù),那么我們能用這些數(shù)據(jù)干什么呢?
數(shù)據(jù)消費(fèi):對(duì)這些上報(bào)的原始數(shù)據(jù)整理可以用作視圖展示,例如圖形化展示該服務(wù)在最近一個(gè)小時(shí)的 CPU 使用率. 又或者對(duì)這些原始數(shù)據(jù)設(shè)定閾值,當(dāng)超過某個(gè)閾值的時(shí)候,就產(chǎn)生告警通知.這些都是最直接的消費(fèi)的場(chǎng)景.
我們?cè)傺由煲徊綄?duì)于這些消費(fèi)場(chǎng)景產(chǎn)生的告警數(shù)據(jù),是否可以再進(jìn)一步消費(fèi)呢?答案是可以的,例如對(duì)若干承載 CPU 計(jì)算型業(yè)務(wù)的服務(wù)器所產(chǎn)生的cup使用率告警(生產(chǎn))時(shí)間進(jìn)行分析統(tǒng)計(jì)(消費(fèi)),是不是可以基本推導(dǎo)出該業(yè)務(wù)的服務(wù)高峰期是大概在那個(gè)時(shí)間范圍呢?
這里想說明的是多數(shù)原子數(shù)據(jù)并無單一的消費(fèi)或者生產(chǎn)的屬性,而是要取決于在具體的場(chǎng)景與所處的數(shù)據(jù)鏈條中的角色.
并且監(jiān)控告警的數(shù)據(jù)加上特定的流程(ITSM)也可以驅(qū)動(dòng)監(jiān)控告警+自動(dòng)化的大的業(yè)務(wù)邏輯交互閉環(huán),這個(gè)場(chǎng)景容我先賣個(gè)關(guān)子,后面的敘述會(huì)再次提及到這部分.
體系,泛指一定范圍內(nèi)或同類的事物按照一定的秩序和內(nèi)部聯(lián)系組合而成的整體,是不同系統(tǒng)組成的系統(tǒng).其實(shí)這個(gè)描述是有些抽象的,咱們用大白話套用監(jiān)控體系來解讀下.
對(duì)于一個(gè)有一定體量的公司,需要一些不同的監(jiān)控系統(tǒng),通過系統(tǒng)與系統(tǒng)間的內(nèi)部交互來組成一個(gè)大的整體,從而完成對(duì)不同場(chǎng)景下的監(jiān)控需求即監(jiān)控體系.用我們內(nèi)部來舉例說,我們內(nèi)部在現(xiàn)網(wǎng)上跑的監(jiān)控系統(tǒng)也有快10套了,同樣在構(gòu)建體系時(shí)關(guān)鍵的部分也是要用動(dòng)態(tài)的視角去看待這些系統(tǒng)所產(chǎn)生的數(shù)據(jù),而不是每個(gè)系統(tǒng)都是一個(gè)孤立的數(shù)據(jù)孤島.下圖是織云整體的監(jiān)控體系.
在織云監(jiān)控告警產(chǎn)品建設(shè)過程中,我們?nèi)谌肓撕芏嚓P(guān)于海量運(yùn)維的監(jiān)控思考與經(jīng)驗(yàn)沉淀.
這里的監(jiān)控體系是和公司體量大小有直接關(guān)系的,但是一般來說在這個(gè)體系中,應(yīng)該有三類監(jiān)控系統(tǒng)是必備的.
通過上文的簡(jiǎn)單介紹,相信大家對(duì)監(jiān)控告警會(huì)有個(gè)初步的宏觀認(rèn)識(shí),隨著后續(xù)文章的鋪開,大家會(huì)逐步了解到一個(gè)企業(yè)級(jí)的監(jiān)控產(chǎn)品是怎樣從0到1演化而來的.同時(shí)下篇文文章就會(huì)進(jìn)入到實(shí)戰(zhàn)階段.建設(shè)監(jiān)控告警是一條持續(xù)且漫長(zhǎng)的路也是蠻復(fù)雜的,坑也很多,但還是有一些基本的方法論和規(guī)律可以遵循的.
原文來自微信公眾號(hào):高效運(yùn)維
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/1957.html