作者:Abdul Fattah Popoola
未經(jīng)驗(yàn)證的可觀察性和隨時(shí)待命的團(tuán)隊(duì)總會(huì)不可避免地遇到反應(yīng)中斷,而要想減少中斷是很痛苦的,因?yàn)檫@就像蒙住雙眼在大海撈針。我之所以知道這些,是因?yàn)槲以€(wěn)定了經(jīng)歷過(guò)混亂的團(tuán)隊(duì)。
未檢測(cè)到的降級(jí)導(dǎo)致用戶感到痛苦。
無(wú)休止的、海嘯般的嘈雜警報(bào)。
24 小時(shí)待命壓力,難以承受,不可持續(xù)。
這篇文章是針對(duì)那些因?yàn)橐恢本然鸲A叩?a target="_blank">工程師們,對(duì)想要將一項(xiàng)成熟技術(shù)加入到工具箱中的管理者來(lái)說(shuō),也有所幫助。畢竟有誰(shuí)會(huì)不喜歡一支高效的團(tuán)隊(duì)呢?
1影響團(tuán)隊(duì)永久反應(yīng)的四個(gè)原因
脫節(jié)(Disconnect):組織對(duì)用戶體驗(yàn)的感知與實(shí)際用戶體驗(yàn)之間存在鴻溝。感知與現(xiàn)實(shí)脫節(jié)的一些典型癥狀包括:
盡管監(jiān)控系統(tǒng)報(bào)告的狀態(tài)為“健康”,但用戶的投訴仍源源不斷。
缺乏主動(dòng)的故障檢測(cè),只有在用戶投訴時(shí)才能檢測(cè)到中斷。
工程師試圖解釋頁(yè)面如何影響用戶。
一位工程師意外地發(fā)現(xiàn)了殘缺的功能。
不信任(Distrust):一個(gè)大的危險(xiǎn)信號(hào)是對(duì)觸發(fā)警報(bào)缺乏信心。監(jiān)控系統(tǒng)發(fā)出的錯(cuò)誤警報(bào)越多,工程師們就越不信任這個(gè)系統(tǒng)。不幸的是,這種低信噪比的狀態(tài)加速了失修周期;工程師們厭倦了不斷喊“狼來(lái)了”的監(jiān)視器,直到不再關(guān)注這個(gè)問(wèn)題。在這個(gè)階段,你就應(yīng)該拿著爆米花,等待不可避免的大規(guī)模中斷。
組織混亂(Disorganization):沒(méi)有特定的案例,給到的“建議方法”取決于你與誰(shuí)合作。這種缺乏組織性和清晰指導(dǎo)的表現(xiàn)為監(jiān)控框架激增、缺乏實(shí)戰(zhàn)檢驗(yàn)的工具以及臨時(shí)中斷補(bǔ)救措施。工程師們總是采取碰運(yùn)氣的解決方案,例如重啟電腦,并希望“問(wèn)題”消失)。
失修(Disrepair):工具、系統(tǒng)和警報(bào)已經(jīng)失修。產(chǎn)生問(wèn)題的原因各不相同,有的是服務(wù)處于維護(hù)模式,有的是由于損耗而缺乏專門知識(shí),還有的則是半死不活的項(xiàng)目。
2監(jiān)控策略是怎樣令用戶失望的
監(jiān)控的目標(biāo)就是要保證用戶的良好體驗(yàn),主動(dòng)把問(wèn)題扼殺在搖籃里,或者能夠迅速緩解沒(méi)有捕捉到的問(wèn)題。事實(shí)上,大部分方案都未能達(dá)到這個(gè)目標(biāo),原因并非是存在工具方面的差距,而是因?yàn)楣ぞ呤褂貌划?dāng),這意味著并沒(méi)有理解核心問(wèn)題出在哪里。
這一問(wèn)題的顯著特征之一就是,疲于救火的團(tuán)隊(duì)數(shù)量與可觀察性工具的數(shù)量相當(dāng)。事實(shí)上,如果僅僅是工具的問(wèn)題,那么使用 Prometheus/Nagios/geneva/kusto/ 等等,就能解決這個(gè)問(wèn)題。
用戶需要的是什么?舉個(gè)例子,在使用文字處理軟件時(shí),我需要的是把東西寫好并完成工作,我不關(guān)心內(nèi)存使用情況或處理器速度。因此,偶爾的凍結(jié)或者崩潰是可以忍受的——我抱怨著重啟程序,然后恢復(fù)工作。然而,如果我丟失了我的工作文件,或者如果重啟或刷新或后仍然存在問(wèn)題,我就會(huì)感到沮喪。
用戶只有在造成不可逆轉(zhuǎn)的損害時(shí)才會(huì)關(guān)心這個(gè)故障。偶爾出現(xiàn)的崩潰、YouTube 故障或 PC 凍結(jié)都是可以忍受的,因?yàn)樗菚簳r(shí)的。
可觀察性策略必須回答的關(guān)鍵問(wèn)題就是:你的用戶是否滿意?要回答這個(gè)問(wèn)題,就需要了解你的用戶,知道什么能讓他們滿意。對(duì)這個(gè)問(wèn)題的回答將滲透到可觀測(cè)性棧中,并且會(huì)對(duì)連貫的操作實(shí)踐產(chǎn)生影響。
讓用戶滿意的要素:
產(chǎn)品團(tuán)隊(duì),性能、可靠性、持久性。有關(guān)更多信息,請(qǐng)參見(jiàn) No Surprises 文章。
平臺(tái)團(tuán)隊(duì),不要止步于使用您服務(wù)的直接團(tuán)隊(duì),還要嘗試了解這些合作伙伴團(tuán)隊(duì)的用戶。
一些用戶不滿意的代理指標(biāo)的要素:
可靠性,由于內(nèi)部系統(tǒng)錯(cuò)誤而導(dǎo)致的故障和不可靠的結(jié)果(例如,錯(cuò)誤對(duì)話框)。
延遲性,操作花費(fèi)的時(shí)間比預(yù)期的要長(zhǎng)(例如,一個(gè)請(qǐng)求需要 10 秒鐘而不是 2 秒鐘)。
可用性,不應(yīng)向用戶顯示的內(nèi)部錯(cuò)誤(例如,隱晦的通用消息或?qū)τ脩舨挥押玫恼{(diào)試日志)。
持久性,任務(wù)關(guān)鍵型系統(tǒng)中的數(shù)據(jù)丟失(例如,無(wú)法保存)。
可用性,當(dāng)需要處理請(qǐng)求時(shí),系統(tǒng)不可用(例如,無(wú)法訪問(wèn)服務(wù)器)。
3為什么需要一個(gè)好的可觀察性指標(biāo)?
以用戶為中心的可觀察性指標(biāo)有兩個(gè)目標(biāo):
指導(dǎo)完成目標(biāo)。它們用戶為改善服務(wù)提供了一個(gè)目標(biāo)燈塔——幫助確定優(yōu)先次序、跟蹤修復(fù)工作,并將重點(diǎn)放在杠桿率最高的干預(yù)措施上。它們也可以被整合到組織實(shí)踐中(如服務(wù)審查、事后檢查等),以確保細(xì)微的偏差不會(huì)被忽視(如幾周內(nèi)健康趨勢(shì)下降了 0.05%)。
主動(dòng)警報(bào)。它們高度準(zhǔn)確,可以提供回歸的早期警報(bào)。健康指標(biāo)的任何突然和持續(xù)下降都與真正的用戶影響直接相關(guān)。在這些指標(biāo)上設(shè)置警報(bào)將彌補(bǔ)生產(chǎn)上的可觀察性差距。
下面,讓我們討論一個(gè)經(jīng)過(guò)實(shí)戰(zhàn)檢驗(yàn)和驗(yàn)證的成熟策略。
4CAR 框架 CAR 框架的三個(gè)實(shí)體:用戶、應(yīng)用程序和資源
CAR 代表“用戶”(Customer)、“應(yīng)用程序”(Application)和“資源”(Resource),它通過(guò)建立三個(gè)實(shí)體(用戶、應(yīng)用程序和底層資源)之間的交互,提供監(jiān)視脫節(jié)的解決方案。
它像測(cè)試金字塔一樣確保了重疊的監(jiān)視覆蓋,從而確保了測(cè)試覆蓋。
CAR 金字塔展示了用戶、應(yīng)用程序和資源之間的關(guān)系
資源(如虛擬機(jī)、緩存)構(gòu)成了構(gòu)建應(yīng)用程序的基礎(chǔ);反過(guò)來(lái),應(yīng)用程序是為了滿足用戶的需求而構(gòu)建的。
用戶:想要完成一些事情(如撰寫文檔、看 YouTube)。滿意度取決于應(yīng)用程序是否按預(yù)期工作。
應(yīng)用程序:用于解決問(wèn)題。應(yīng)用程序可能出現(xiàn)崩潰或錯(cuò)誤,完備的應(yīng)用程序如果資源匱乏也會(huì)出現(xiàn)問(wèn)題。
資源:為應(yīng)用程序提供合適的主機(jī),例如 CPU、內(nèi)存和 I/O,這些是應(yīng)用程序順利運(yùn)行所必需的。
大多數(shù)策略都假定健康的應(yīng)用程序和資源能夠保證優(yōu)秀的用戶體驗(yàn),但這種假設(shè)并不總是正確。
下圖中的紅色箭頭顯示了聚焦于單個(gè)層如何會(huì)導(dǎo)致監(jiān)視器產(chǎn)生噪音。單一的綠線是穿過(guò)可觀察性并將其與用戶聯(lián)系起來(lái)的一種方式——以用戶為中心的指標(biāo)是成功監(jiān)控策略的關(guān)鍵。
使用 CAR 金字塔突出顯示脫節(jié)的度量
使用 CAR 的結(jié)果
以下是跨團(tuán)隊(duì)?wèi)?yīng)用該策略的一些成果:
識(shí)別盲點(diǎn):檢測(cè)以前不會(huì)被注意到的中斷,揭露系統(tǒng)中長(zhǎng)期隱藏和存在的缺陷,從而進(jìn)行適當(dāng)?shù)募軜?gòu)修復(fù)。
減少工作量:事故的數(shù)量級(jí)下降(主要是由于消除了噪音監(jiān)視器)。
信任:警報(bào)意味著真正的用戶問(wèn)題,工程師有動(dòng)力去找出根本原因。這比表面處理嘈雜的監(jiān)視器要好得多。
主動(dòng)執(zhí)行:減少事件量和暴露架構(gòu)缺陷的工作量有助于團(tuán)隊(duì)從反應(yīng)性救火轉(zhuǎn)向主動(dòng)、集中解決問(wèn)題。
每個(gè)人都感到高興:用戶的中斷次數(shù)減少,工程師接到的電話也減少了。
5結(jié)束語(yǔ)
大多數(shù)典型的監(jiān)控策略都是“只見(jiàn)樹(shù)木不見(jiàn)森林”——他們只關(guān)注資源或應(yīng)用程序的健康狀況,而忽略了最關(guān)鍵的問(wèn)題:用戶是否滿意?
希望你從這篇文章中學(xué)到一件事——那就是確保你的監(jiān)控策略與用戶滿意度直接掛鉤,即如果你的用戶不能使用你的應(yīng)用程序,那 10 個(gè) 9 就不重要。
作者簡(jiǎn)介:
阿卜杜勒·法塔赫·波普拉(Abdul Fattah Popoola),具有超過(guò) 15 年的跨多個(gè)業(yè)務(wù)域和技術(shù)棧的軟件開(kāi)發(fā)經(jīng)驗(yàn)的工程領(lǐng)導(dǎo)者。擁有馬斯達(dá)爾學(xué)院(Masdar Institute)的計(jì)算和信息科學(xué)碩士學(xué)位以及沃洛沃大學(xué)(Obafemi Awolowo University)的計(jì)算機(jī)工程學(xué)士學(xué)位。
編輯:黃飛
?
評(píng)論
查看更多