可觀測(cè)性是否取代了測(cè)試?
?測(cè)試是驗(yàn)證系統(tǒng)正確性的最佳方案。但是,它不能預(yù)測(cè)生產(chǎn)中可能發(fā)生的故障情況。經(jīng)驗(yàn)豐富的工程團(tuán)隊(duì)會(huì)告訴我們,生產(chǎn)環(huán)境并不統(tǒng)一,并且充滿了令人激動(dòng)的偏差。
有趣的事實(shí)是,在生產(chǎn)環(huán)境中進(jìn)行測(cè)試可幫助測(cè)試實(shí)時(shí)用戶流量上的代碼更改,及早發(fā)現(xiàn)錯(cuò)誤,并提供可提高客戶滿意度的強(qiáng)大解決方案。但是,它不能幫助檢測(cè)故障的根本原因(Root Cause)。
這就是為什么在測(cè)試中采用可觀測(cè)性至關(guān)重要的原因。它提供基礎(chǔ)架構(gòu)和生產(chǎn)內(nèi)部的全??梢娦裕愿斓貦z測(cè)和解決問題。
因此,使用可觀測(cè)性的人檢測(cè)到任何問題的可能性要高2.1倍,并報(bào)告將MTTR提高69%。
1缺乏可觀測(cè)性的癥狀
沒有適當(dāng)可觀測(cè)性的跡象每天都出現(xiàn)在工程師的工作中。
當(dāng)生產(chǎn)出現(xiàn)問題(每天都在發(fā)生)時(shí),開發(fā)人員試圖找到問題原因的嘗試通常會(huì)碰壁,工單會(huì)卡在Jira中。發(fā)生這種情況是因?yàn)樗麄儧]有足夠的信息和細(xì)節(jié)來找出根本原因。
為了克服這些挑戰(zhàn),開發(fā)人員有時(shí)會(huì)使用現(xiàn)有日志,這不是很有幫助,因?yàn)樗麄儽仨毷褂肗otepad++一次訪問一個(gè)服務(wù)的日志并手動(dòng)搜索它們。這讓開發(fā)人員感到沮喪,并使公司難以清楚地向客戶展示如何以及何時(shí)解決關(guān)鍵問題,這可能會(huì)隨著時(shí)間的推移損害公司的聲譽(yù)。
2可觀測(cè)性:它到底意味著什么?
對(duì)于測(cè)試人員來說,擁有適當(dāng)?shù)目捎^測(cè)性意味著能夠知道系統(tǒng)內(nèi)發(fā)生了什么。這些信息對(duì)測(cè)試人員非常有價(jià)值。盡管可觀測(cè)性通常與可靠性工程相關(guān)聯(lián),但它可以幫助測(cè)試人員更好地理解和研究復(fù)雜系統(tǒng)。這允許測(cè)試人員及其團(tuán)隊(duì)在更大程度上提高系統(tǒng)的質(zhì)量,例如安全性、可靠性和性能。
我通過一次具有挑戰(zhàn)性的經(jīng)歷發(fā)現(xiàn)了這個(gè)問題。許多其他人可能也有類似的經(jīng)歷。在檢查產(chǎn)品時(shí),我很難理解產(chǎn)品的復(fù)雜性,這對(duì)測(cè)試人員來說很常見。
當(dāng)我試圖通過閱讀產(chǎn)品說明并與相關(guān)人員交談來了解產(chǎn)品時(shí),我注意到我收集的信息沒有意義。當(dāng)時(shí),我不熟悉這個(gè)技術(shù)術(shù)語,但事后看來,很明顯該系統(tǒng)缺乏可觀測(cè)性。幾乎不可能知道應(yīng)用程序內(nèi)部發(fā)生了什么。
測(cè)試側(cè)重于確定特定功能是否按預(yù)期執(zhí)行,而可觀測(cè)性側(cè)重于系統(tǒng)的整體運(yùn)行狀況。因此,當(dāng)作為一個(gè)整體時(shí),它們描繪了系統(tǒng)的完整畫面。
傳統(tǒng)的軟件測(cè)試,即在預(yù)生產(chǎn)或暫存環(huán)境中進(jìn)行測(cè)試,側(cè)重于驗(yàn)證系統(tǒng)的正確性。但是,在生產(chǎn)環(huán)境中運(yùn)行服務(wù)之前,將無法涵蓋和預(yù)測(cè)可能發(fā)生的每個(gè)故障。
生產(chǎn)測(cè)試可幫助發(fā)現(xiàn)系統(tǒng)的所有可能故障情況,從而提供服務(wù)的可靠性和穩(wěn)定性。
借助可觀測(cè)性,可以深入了解基礎(chǔ)架構(gòu)和生產(chǎn)環(huán)境。此外,還可以通過遙測(cè)數(shù)據(jù)(Telemetry Data)(例如日志、指標(biāo)和跟蹤)預(yù)測(cè)生產(chǎn)環(huán)境中的故障。
生產(chǎn)環(huán)境中的可觀測(cè)性可幫助向客戶提供可靠的產(chǎn)品。
3可觀測(cè)性真的取代了測(cè)試嗎?
從測(cè)試人員的角度來看,真正可觀測(cè)的系統(tǒng)可以提供的詳細(xì)程度是無可替代的。盡管在實(shí)際層面上,可觀測(cè)性有三個(gè)支柱——日志(系統(tǒng)內(nèi)發(fā)生的事件的記錄)、指標(biāo)(反映系統(tǒng)內(nèi)某些特定行為的值)和跟蹤(系統(tǒng)內(nèi)某物如何移動(dòng)的低級(jí)記錄)——它也不僅僅是這三個(gè)元素。軟件工程師Cindy Sridharan在《分布式系統(tǒng)可觀測(cè)性》中寫道,“這不是關(guān)于日志、指標(biāo)或跟蹤,而是關(guān)于在調(diào)試期間數(shù)據(jù)驅(qū)動(dòng),并使用反饋來迭代和改進(jìn)產(chǎn)品”。換句話說,要做好可觀測(cè)性,不僅需要有效的指標(biāo)、結(jié)構(gòu)良好的日志和廣泛的跟蹤,你還需要一種好奇、探索和渴望學(xué)習(xí)的心態(tài),以及可以使所有這些事情變得有意義和有影響力的過程。
這使得測(cè)試人員和可觀測(cè)性成為天然的盟友。畢竟,測(cè)試是關(guān)于詢問有關(guān)系統(tǒng)或應(yīng)用程序的問題,對(duì)某些東西如何工作感到好奇,或者通常對(duì)某些東西應(yīng)該如何工作感到好奇;可觀測(cè)性在很大程度上與所有這些事情有關(guān)。那么,太多的測(cè)試人員不知道可觀測(cè)性,這太糟糕了——這不僅會(huì)幫助他們更有效地完成工作,而且他們也正是軟件開發(fā)生命周期中那種可以宣傳構(gòu)建可觀測(cè)系統(tǒng)的人。
為了簡單起見,我們應(yīng)該通過兩種關(guān)鍵方式將可觀測(cè)性視為對(duì)測(cè)試人員的幫助:
1. 它可以幫助測(cè)試人員發(fā)現(xiàn)有關(guān)系統(tǒng)問題的精細(xì)化的詳細(xì)信息:在探索性測(cè)試期間,可觀測(cè)性可以幫助測(cè)試人員通過遙測(cè)數(shù)據(jù)(如日志、跟蹤和指標(biāo))找到任何問題的根本原因,從而幫助各個(gè)團(tuán)隊(duì)之間更好地協(xié)作并提供更快的事件解決。
2. 它可以幫助測(cè)試人員提出問題并探索系統(tǒng):測(cè)試人員很好奇,喜歡探索新事物。借助可觀測(cè)性工具,他們可以深入探索系統(tǒng)并發(fā)現(xiàn)問題。它可以幫助他們發(fā)現(xiàn)有價(jià)值的信息,幫助他們?cè)跍y(cè)試時(shí)做出明智的決定。
4結(jié)論
測(cè)試和可觀測(cè)性齊頭并進(jìn),確保系統(tǒng)的穩(wěn)健性和可靠性。傳統(tǒng)測(cè)試側(cè)重于在預(yù)生產(chǎn)環(huán)境中驗(yàn)證系統(tǒng)的正確性,而生產(chǎn)環(huán)境中的測(cè)試可以發(fā)現(xiàn)所有可能的故障情況。
另一方面,可觀測(cè)性提供了對(duì)基礎(chǔ)架構(gòu)和生產(chǎn)環(huán)境的全??梢娦?,有助于更快地檢測(cè)和解決問題。此外,可觀測(cè)性可幫助測(cè)試人員發(fā)現(xiàn)有關(guān)系統(tǒng)問題的精細(xì)細(xì)節(jié),并使他們能夠提出問題并更深入地探索系統(tǒng)。
測(cè)試人員和可觀測(cè)性是天然的盟友,采用可觀測(cè)性可以帶來更好的事件解決、明智的測(cè)試決策和更高的客戶滿意度。?

































