論可觀測(cè)性和監(jiān)控在軟件中扮演的角色
譯文?譯者 | 布加迪
審校 | 孫淑娟
我們?cè)诒疚闹袑⑸钊胩接懣捎^測(cè)性及其在軟件中的重要性。我們將了解可觀測(cè)性的歷史、目標(biāo)和重要性,以及軟件生命周期缺少可觀測(cè)性可能會(huì)帶來(lái)的問(wèn)題。我們還將分析可觀測(cè)性與監(jiān)控的主要區(qū)別。最后,我們將介紹采用可觀測(cè)性的最佳實(shí)踐、選擇可觀測(cè)性工具時(shí)要考慮的因素,以及如何為貴公司采用最佳策略。
1.可觀測(cè)性的歷史
“可觀測(cè)性”(observability)這個(gè)術(shù)語(yǔ)源自“觀測(cè)”一詞,意指專心觀測(cè)某事物,旨在得出結(jié)論。回到技術(shù)領(lǐng)域,可觀測(cè)性由Rudolf E. Kálmán在1960年首創(chuàng),根源于控制理論(應(yīng)用數(shù)學(xué)的一個(gè)分支,指使用反饋來(lái)影響系統(tǒng)的行為以實(shí)現(xiàn)預(yù)期的目標(biāo))。在機(jī)械系統(tǒng)中,傳感器和檢測(cè)器測(cè)量輸出結(jié)果,為落實(shí)的控制措施提供數(shù)據(jù)依據(jù)。
可觀測(cè)性只是知道您的用戶、系統(tǒng)和應(yīng)用程序在任何某個(gè)時(shí)間在做什么(數(shù)據(jù)收集),以告知您出了什么問(wèn)題以及出問(wèn)題的原因(跟蹤)。無(wú)法觀測(cè),修復(fù)也就無(wú)從談起。
可觀測(cè)性首次出現(xiàn)在2013年,當(dāng)時(shí)Twitter的工程師們發(fā)表了一篇名為《Twitter的可觀測(cè)性》的博文,旨在觀測(cè)“多樣化服務(wù)拓?fù)洹钡倪\(yùn)行狀況和性能,當(dāng)時(shí)Twitter正從整體式IT架構(gòu)向分布式IT架構(gòu)轉(zhuǎn)變。
我們已介紹了相應(yīng)背景,不妨看看“可觀測(cè)性”與“監(jiān)控”的基本區(qū)別,因?yàn)橛⒄Z(yǔ)將兩者解釋為幾乎相同的意思。監(jiān)控只是通過(guò)收集系統(tǒng)中預(yù)定義的指標(biāo)集或日志集,告知并表明出了什么問(wèn)題,而可觀測(cè)性使用數(shù)據(jù)收集來(lái)告知出了什么問(wèn)題、為什么會(huì)出問(wèn)題,以便SRE(系統(tǒng)可靠性工程師)或DevOps團(tuán)隊(duì)可以輕松調(diào)試系統(tǒng),因此它可以探究可能事先未定義的指標(biāo)和模式。
2.我們?yōu)槭裁葱枰捎^測(cè)性它的重要性又是什么?
先說(shuō)說(shuō)2021年《可觀測(cè)性狀況》研究報(bào)告所反映的問(wèn)題:
- 53%的受訪者表示應(yīng)用程序問(wèn)題導(dǎo)致了客戶流失或收入損失。
- 45%的受訪者表示服務(wù)失敗導(dǎo)致客戶滿意度下降。
- 30%的受訪者表示因此失去了客戶。
這導(dǎo)致相當(dāng)大比例的受訪者為服務(wù)失敗的后果付出沉重的代價(jià):
- 客戶滿意度下降(45%)
- 收入損失(37%)
- 聲譽(yù)受損(36%)
- 客戶流失(30%)
觀測(cè)在法務(wù)和合規(guī)部門肯定不會(huì)被忽視,因?yàn)樗诖_保組織遵守法律義務(wù),以保護(hù)敏感數(shù)據(jù)免遭未授權(quán)訪問(wèn)方面發(fā)揮著重要作用??捎^測(cè)性技術(shù)還可用于安全領(lǐng)域,以識(shí)別違規(guī)和闖入,并防止數(shù)據(jù)泄露,從而使政府和監(jiān)管機(jī)構(gòu)得以避免或減少違規(guī)罰款。
統(tǒng)計(jì)數(shù)據(jù)也繼續(xù)表明,奉行可觀測(cè)性實(shí)踐的組織提升了收入和盈利能力,這是由于可以監(jiān)控客戶行為以獲取分析洞察力,這有助于營(yíng)銷人員做出戰(zhàn)略決策,并改善用戶體驗(yàn),從而提高組織的聲譽(yù)。
那么,接下來(lái)是什么?
3.可觀測(cè)性的三大支柱
指標(biāo)
指標(biāo)是用數(shù)字表示如何在時(shí)間間隔內(nèi)測(cè)量數(shù)據(jù)。從操作系統(tǒng)到應(yīng)用程序,所有資源都會(huì)生成指標(biāo),包括一組屬性,比如名稱、時(shí)間戳和字段,以表明通常傳達(dá)服務(wù)級(jí)別協(xié)議(SLA)、服務(wù)級(jí)別目標(biāo)(SLO)和服務(wù)級(jí)別指標(biāo)(SLI)等方面信息的某個(gè)值。說(shuō)到監(jiān)控,指標(biāo)是合乎邏輯的起點(diǎn),因?yàn)槿绱硕嗟馁Y源準(zhǔn)備好向我們提醒有關(guān)它們自身的信息。通常,只要系統(tǒng)值超過(guò)指定閾值,SRE和運(yùn)維工程師就使用指標(biāo)來(lái)觸發(fā)警報(bào),這些指標(biāo)是所選擇的關(guān)鍵性能指標(biāo)(KPI),比如響應(yīng)時(shí)間、峰值負(fù)載、服務(wù)的請(qǐng)求、CPU容量、內(nèi)存使用情況、錯(cuò)誤率和延遲。代表性的KPI:
- 當(dāng)系統(tǒng)停機(jī)或負(fù)載均衡系統(tǒng)到最大容量時(shí),觸發(fā)警報(bào)
- 量化性能
- 監(jiān)控異常活動(dòng)
日志
日志是監(jiān)控工具箱中一個(gè)很重要的工具,因?yàn)閹缀跛袃?nèi)容都記錄有關(guān)它們?cè)谌魏谓o定時(shí)間所執(zhí)行操作的信息。此外,日志提供了比指標(biāo)更詳細(xì)的資源信息,大多數(shù)應(yīng)用程序框架、庫(kù)和語(yǔ)言都支持日志。因此,如果指標(biāo)顯示資源已報(bào)廢,日志將幫助您找出報(bào)廢的原因。
日志的問(wèn)題是正常情況信息太多了。由于環(huán)境中的一切在跟蹤它們執(zhí)行的操作,并急于共享該信息,不難發(fā)現(xiàn)這會(huì)導(dǎo)致大量數(shù)據(jù);而不是簡(jiǎn)化監(jiān)控過(guò)程。
跟蹤
日志和指標(biāo)適用于評(píng)估單個(gè)系統(tǒng)的行為和性能,但它們很少適用于確定分布式系統(tǒng)中請(qǐng)求的生命周期。跟蹤是另一種可觀測(cè)性方法,讓您可以跨多個(gè)系統(tǒng)查看和了解某操作的整個(gè)生命周期。
如上所述,跟蹤可以表示一系列因果關(guān)聯(lián)的分布式事件,而這些事件封裝了通過(guò)分布式系統(tǒng)的端到端請(qǐng)求流。
跟蹤反映了請(qǐng)求或操作的整條路徑,在遍歷分布式系統(tǒng)中的所有節(jié)點(diǎn)時(shí)提供了關(guān)鍵的可見(jiàn)性,以便了解系統(tǒng)運(yùn)行狀況。跟蹤提供了系統(tǒng)分析和檢查,尤其是針對(duì)容器化應(yīng)用程序、無(wú)服務(wù)器架構(gòu)和微服務(wù)架構(gòu)。
通過(guò)分析跟蹤數(shù)據(jù),您可以監(jiān)控整體系統(tǒng)運(yùn)行狀況、識(shí)別潛在問(wèn)題、更快地發(fā)現(xiàn)和處理問(wèn)題,并確定需要優(yōu)化和改進(jìn)的重要方面。
4.實(shí)施可觀測(cè)性工具
在考慮通過(guò)優(yōu)化以確保貴組織的成功時(shí),客戶體驗(yàn)通常是首先要考慮的方面,也是如今大多數(shù)科技公司成功的關(guān)鍵。另一個(gè)關(guān)鍵標(biāo)準(zhǔn)是主動(dòng)解決應(yīng)用程序可用性和生產(chǎn)環(huán)境性能等問(wèn)題的必要性。這時(shí)候可觀測(cè)性派得上用場(chǎng)?,F(xiàn)在需要一套可靠的可觀測(cè)性架構(gòu)來(lái)保持系統(tǒng)順暢運(yùn)行。
我整理出了一系列可觀測(cè)性工具,它們可用于日志聚合、分布式跟蹤、APM、時(shí)間序列分析和指標(biāo)收集。雖然不是基于對(duì)主要優(yōu)點(diǎn)或工具比較所作的深入研究,但這是個(gè)很好的起點(diǎn),可以幫助您開(kāi)始提高可觀測(cè)性。
通過(guò)選擇合適的可觀測(cè)性平臺(tái),在單一視圖中集中查看系統(tǒng)的性能數(shù)據(jù),并打造可觀測(cè)性文化,您將能夠更快地發(fā)現(xiàn)問(wèn)題,了解導(dǎo)致問(wèn)題的原因,并最終更快速地構(gòu)建注重客戶的產(chǎn)品。要考慮的一些主要的可觀測(cè)性和日志管理工具,包括如下:
- Splunk
- Datadog
- Humio
- Dynatrace
- Grafana Labs
- Honeycomb
- New Relic
然后,您需要識(shí)別和監(jiān)控與已經(jīng)遇到的問(wèn)題以及將來(lái)可能遇到的問(wèn)題相關(guān)的指標(biāo)。
將可觀測(cè)性納入事件管理流程后,您必須識(shí)別和監(jiān)控與已經(jīng)發(fā)生的問(wèn)題和預(yù)計(jì)將來(lái)會(huì)發(fā)生的問(wèn)題相關(guān)的指標(biāo)。之后,您應(yīng)該可以在整個(gè)組織中打造注重可觀測(cè)性的文化。如果不實(shí)施這種模式,您可能無(wú)法充分利用可觀測(cè)性架構(gòu),因?yàn)樵俣嗟目捎^測(cè)性工具都無(wú)法取代扎實(shí)的技術(shù)本能和直覺(jué)。
原文鏈接:https://medium.com/codex/the-role-of-observability-monitoring-in-software-46bd88f792fe?