開發(fā)者原生動(dòng)態(tài)可觀察性的興起

動(dòng)態(tài)可觀察性的興起代表了軟件開發(fā)領(lǐng)域的變革性轉(zhuǎn)變。通過(guò)擁抱動(dòng)態(tài)可觀察性,組織可以在日益復(fù)雜和動(dòng)態(tài)的數(shù)字生態(tài)系統(tǒng)中培養(yǎng)持續(xù)改進(jìn)的文化,提高系統(tǒng)可靠性,并提供高質(zhì)量的軟件產(chǎn)品。

本文來(lái)自微信公眾號(hào)“開源云中文社區(qū)”。

可觀察性已成為現(xiàn)代軟件開發(fā)中的一個(gè)關(guān)鍵概念,使團(tuán)隊(duì)能夠深入了解復(fù)雜系統(tǒng)的性能、健康狀況和行為。基于預(yù)定義度量和靜態(tài)閾值的傳統(tǒng)監(jiān)控方法在應(yīng)對(duì)現(xiàn)代應(yīng)用程序的動(dòng)態(tài)和分布式特性方面存在局限性。因此,一種稱為動(dòng)態(tài)可觀測(cè)性的新范式獲得了關(guān)注,通過(guò)結(jié)合度量、日志和跟蹤,提供了動(dòng)態(tài)系統(tǒng)的實(shí)時(shí)可見性。

憑借適應(yīng)不斷變化的環(huán)境和捕獲上下文信息的能力,動(dòng)態(tài)可觀察性使開發(fā)團(tuán)隊(duì)能夠主動(dòng)識(shí)別和解決問(wèn)題,減少平均解決時(shí)間(MTTR),提高整體系統(tǒng)可靠性以及開發(fā)人員的生產(chǎn)力。

如今,動(dòng)態(tài)可觀察性推動(dòng)了開發(fā)實(shí)踐的發(fā)展,將運(yùn)行時(shí)調(diào)試集成到開發(fā)生命周期中,鼓勵(lì)團(tuán)隊(duì)采用主動(dòng)的方法進(jìn)行系統(tǒng)監(jiān)控和故障排除。通過(guò)動(dòng)態(tài)可觀測(cè)性提供的洞察,開發(fā)團(tuán)隊(duì)可以在整個(gè)開發(fā)過(guò)程中優(yōu)化系統(tǒng)性能、檢測(cè)異常并做出數(shù)據(jù)驅(qū)動(dòng)的決策。

動(dòng)態(tài)可觀察性的興起代表了軟件開發(fā)領(lǐng)域的變革性轉(zhuǎn)變。通過(guò)擁抱動(dòng)態(tài)可觀察性,組織可以在日益復(fù)雜和動(dòng)態(tài)的數(shù)字生態(tài)系統(tǒng)中培養(yǎng)持續(xù)改進(jìn)的文化,提高系統(tǒng)可靠性,并提供高質(zhì)量的軟件產(chǎn)品。

可觀察性:好的、壞的和壓倒性的

可觀察性是通過(guò)觀察系統(tǒng)的輸出來(lái)理解系統(tǒng)行為的能力。這包括日志、跟蹤和度量。主要目標(biāo)是能夠通過(guò)對(duì)系統(tǒng)的運(yùn)行狀況和狀態(tài)有一個(gè)清晰的概述來(lái)診斷和調(diào)試問(wèn)題。簡(jiǎn)單地說(shuō),它是查看系統(tǒng)內(nèi)部、了解其工作方式并積極調(diào)試系統(tǒng)的能力。

1.png

雖然在過(guò)去,應(yīng)用程序性能監(jiān)控(APM)工具和日志記錄工具與內(nèi)置集成開發(fā)環(huán)境(IDE)調(diào)試工具的組合足以識(shí)別應(yīng)用程序中的問(wèn)題,但今天的現(xiàn)實(shí)更為復(fù)雜。向微服務(wù)和云原生、無(wú)服務(wù)器應(yīng)用程序、漸進(jìn)式交付工作流和其他高級(jí)架構(gòu)的過(guò)渡給開發(fā)者和運(yùn)維帶來(lái)了新的挑戰(zhàn)。

1.png

從Lightrun的經(jīng)驗(yàn)來(lái)看,以上是開發(fā)人員在生產(chǎn)環(huán)境中常見的故障排除挑戰(zhàn)的代表性子集。

由于各種原因,訪問(wèn)部署在Kubernetes集群中的應(yīng)用程序或服務(wù)的遠(yuǎn)程實(shí)例或從開發(fā)人員機(jī)器調(diào)試無(wú)服務(wù)器Lambda功能是一項(xiàng)挑戰(zhàn)。首先,從開發(fā)人員機(jī)器到生產(chǎn)部署的訪問(wèn)本身要么被禁止,要么過(guò)于復(fù)雜,以至于會(huì)削弱開發(fā)人員的能力并減緩調(diào)試過(guò)程。即使已經(jīng)解決了這樣的障礙,能夠在不停止應(yīng)用程序、更改其狀態(tài)并重新部署以獲得這些額外日志的情況下從生產(chǎn)環(huán)境中獲取運(yùn)行時(shí)遙測(cè)是一個(gè)極其漫長(zhǎng)且容易出錯(cuò)的過(guò)程。

這些只是導(dǎo)致動(dòng)態(tài)可觀察性上升并轉(zhuǎn)變?yōu)檐浖_發(fā)生命周期工具堆棧一部分的少數(shù)例子。從需求的角度來(lái)看,為開發(fā)人員提供更多的工具和能力來(lái)對(duì)自己的應(yīng)用程序進(jìn)行故障排除,無(wú)論它們?cè)谀睦镞\(yùn)行以及它們有多復(fù)雜,這是一種新的常態(tài)。

動(dòng)態(tài)可觀察性案例:關(guān)鍵業(yè)務(wù)價(jià)值

正如我們前面所定義的,當(dāng)開發(fā)人員需要使用傳統(tǒng)的調(diào)試工具和APM解決方案從IDE中排除遠(yuǎn)程和復(fù)雜的工作負(fù)載時(shí),他們會(huì)功虧一簣。動(dòng)態(tài)可觀測(cè)性就是為了解決這些挑戰(zhàn)。

基本上,與靜態(tài)日志記錄相反,具有動(dòng)態(tài)可觀察性的開發(fā)人員可以直接從他們的IDE中享受跨應(yīng)用程序部署和環(huán)境的端到端觀察性。這意味著降低了MTTR,提高了開發(fā)人員的生產(chǎn)力,并優(yōu)化了總體成本,因?yàn)殚_發(fā)人員在需要的地方和時(shí)間調(diào)試和使用日志和遙測(cè)數(shù)據(jù),而不是監(jiān)控一切。

動(dòng)態(tài)可觀察性已成為現(xiàn)代軟件開發(fā)中的一種關(guān)鍵方法,使團(tuán)隊(duì)能夠深入了解系統(tǒng)行為并做出明智的決策。它超越了傳統(tǒng)的測(cè)試和監(jiān)控方法,提供了對(duì)系統(tǒng)模式、優(yōu)勢(shì)和劣勢(shì)的全面理解。

采用動(dòng)態(tài)可觀察性的原理和好處可以總結(jié)為以下幾點(diǎn):

——增強(qiáng)對(duì)系統(tǒng)的理解

動(dòng)態(tài)可觀察性使開發(fā)人員能夠觀察系統(tǒng)狀態(tài)和行為,為他們提供詳細(xì)的洞察。通過(guò)監(jiān)控實(shí)時(shí)指標(biāo)、日志和跟蹤,開發(fā)人員可以全面了解其系統(tǒng),識(shí)別潛在問(wèn)題并做出數(shù)據(jù)驅(qū)動(dòng)的決策。

——完善測(cè)試驅(qū)動(dòng)開發(fā)

雖然測(cè)試驅(qū)動(dòng)開發(fā)(TDD)側(cè)重于編寫測(cè)試以確保代碼的正確性,但動(dòng)態(tài)可觀察性更進(jìn)一步地觀察和分析整個(gè)系統(tǒng)的行為。它認(rèn)識(shí)到,單獨(dú)的測(cè)試可能無(wú)法捕捉所有可能的場(chǎng)景,并鼓勵(lì)開發(fā)人員采用可觀察性來(lái)全面理解系統(tǒng)。

——加強(qiáng)行為驅(qū)動(dòng)開發(fā)

雖然行為驅(qū)動(dòng)開發(fā)(BDD)側(cè)重于利益相關(guān)者之間的協(xié)作,以定義行為預(yù)期,但動(dòng)態(tài)可觀察性通過(guò)在運(yùn)行時(shí)跨環(huán)境(生產(chǎn)、階段、CI/CD、QA)積極觀察和檢測(cè)系統(tǒng)行為,揭示可能隱藏的模式和潛在風(fēng)險(xiǎn),使其更進(jìn)一步。

——完善監(jiān)控

動(dòng)態(tài)可觀察性和開發(fā)者原生可觀測(cè)性不能取代監(jiān)控;監(jiān)控確保了系統(tǒng)的穩(wěn)定性和性能,而動(dòng)態(tài)可觀察性提供了更深入的理解。通過(guò)將監(jiān)控和動(dòng)態(tài)可觀察性相結(jié)合,開發(fā)團(tuán)隊(duì)可以創(chuàng)建一個(gè)可靠且精簡(jiǎn)的系統(tǒng),從而減少漏洞和風(fēng)險(xiǎn)。

一句話:動(dòng)態(tài)可觀測(cè)性是新常態(tài)

動(dòng)態(tài)可觀察性代表了軟件開發(fā)的范式轉(zhuǎn)變,使開發(fā)人員能夠詳細(xì)了解系統(tǒng)行為并做出明智的決策。它使用超越傳統(tǒng)測(cè)試的工具和實(shí)踐,使團(tuán)隊(duì)能夠創(chuàng)建健壯可靠的系統(tǒng)。它與DevOps、TDD和BDD等現(xiàn)有方法論協(xié)調(diào)工作,以系統(tǒng)行為為重點(diǎn)增強(qiáng)了它們的原則。通過(guò)采用動(dòng)態(tài)可觀察性,組織可以增強(qiáng)其開發(fā)過(guò)程,并構(gòu)建更具彈性和效率的軟件系統(tǒng)。

在動(dòng)態(tài)可觀測(cè)性解決方案中要尋找什么?

實(shí)時(shí)調(diào)試:開發(fā)人員必須能夠?qū)崟r(shí)向代碼中添加日志記錄語(yǔ)句和度量,而無(wú)需重新部署或重新啟動(dòng)應(yīng)用程序。

按需快照:動(dòng)態(tài)快照為開發(fā)人員提供虛擬斷點(diǎn),而無(wú)需停止應(yīng)用程序的執(zhí)行。能夠添加條件、計(jì)算表達(dá)式和檢查任何代碼是此類別中的關(guān)鍵功能。

自定義指標(biāo):從IDE開始,開發(fā)人員應(yīng)該能夠創(chuàng)建自定義指標(biāo),以在可變級(jí)別上跟蹤系統(tǒng)行為的特定方面,如響應(yīng)時(shí)間、方法持續(xù)時(shí)間或錯(cuò)誤率。所有任務(wù)都應(yīng)該在不需要重新部署任何代碼的情況下完成。

與現(xiàn)有的開發(fā)人員和企業(yè)工具集成,包括Prometheus、Grafana、VSCode、公共云provider等云原生工具。

成本優(yōu)化:能夠分析與可觀察性相關(guān)的低效率并進(jìn)行優(yōu)化以降低成本,例如用動(dòng)態(tài)日志替換靜態(tài)日志,這是此類工具的一項(xiàng)重要能力。

動(dòng)態(tài)可觀察性使開發(fā)人員能夠深入了解其實(shí)時(shí)應(yīng)用程序,顯著提高開發(fā)人員的生產(chǎn)力,降低運(yùn)營(yíng)和基礎(chǔ)設(shè)施成本,并簡(jiǎn)化調(diào)試和修復(fù)問(wèn)題的過(guò)程。因此,開發(fā)人員可以將復(fù)雜的故障排除交給動(dòng)態(tài)可觀測(cè)性解決方案,從而花更多的時(shí)間進(jìn)行創(chuàng)造性的編碼。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論