越來(lái)越多的公司在當(dāng)今的數(shù)字世界中使用軟件來(lái)開展業(yè)務(wù)。隨著微服務(wù)、容器和基于云的技術(shù)的使用越來(lái)越多,傳統(tǒng)的監(jiān)控解決問題的方法已經(jīng)不能滿足需求,此時(shí)就需要可觀測(cè)性來(lái)解決實(shí)際問題了。
不少人對(duì)可觀測(cè)性和監(jiān)視分不清。監(jiān)視是指定期觀察和記錄項(xiàng)目中發(fā)生的活動(dòng),而可觀測(cè)性則實(shí)時(shí)監(jiān)視并了解系統(tǒng)的性能和行為。利用可觀測(cè)性,開發(fā)人員可以更好地了解系統(tǒng)并快速解決任何潛在問題。
可觀測(cè)性設(shè)計(jì)模式
構(gòu)建可觀察系統(tǒng)的最佳實(shí)踐
使用最廣泛的設(shè)計(jì)模式之一是“可觀測(cè)性三元組”,它由三個(gè)關(guān)鍵組件組成:
- 日志
- 時(shí)序
- 鏈路追蹤
但是,這不僅僅是收集遙測(cè)數(shù)據(jù),而是通過(guò)數(shù)據(jù)驅(qū)動(dòng)的方法通過(guò)具體的反饋系統(tǒng)來(lái)調(diào)試和提高應(yīng)用的性能和安全性。
日志提供系統(tǒng)活動(dòng)的詳細(xì)視圖,包括錯(cuò)誤消息和調(diào)試信息。時(shí)序提供系統(tǒng)性能的高級(jí)概述,例如 CPU 和內(nèi)存使用情況,而鏈路追蹤則提供有關(guān)特定請(qǐng)求或事務(wù)執(zhí)行的詳細(xì)信息。
通過(guò)遵循這些模式,開發(fā)人員可以確保其系統(tǒng)具有必要的工具,以提供對(duì)系統(tǒng)行為的可見性。
除了上述可觀測(cè)性設(shè)計(jì)模式外,開發(fā)人員還應(yīng)關(guān)注運(yùn)行狀況,檢查 API、審計(jì)日志記錄和異常跟蹤。建議遵循最佳檢測(cè)和數(shù)據(jù)收集實(shí)踐。這可以確保收集正確的數(shù)據(jù),收集的數(shù)據(jù)具有正確的粒度,并且采用易于分析的格式。
通過(guò)遵循這些模式和最佳實(shí)踐,開發(fā)人員可以確保其系統(tǒng)具有高度彈性、自我修復(fù),并且易于監(jiān)視,這使他們能夠快速識(shí)別和解決問題,從而提高其系統(tǒng)的性能和可靠性。
開發(fā)人員角色的演變
從調(diào)試到預(yù)測(cè)性維護(hù)
隨著技術(shù)的進(jìn)步,軟件開發(fā)的過(guò)程也發(fā)生了變化。開發(fā)人員的角色不再僅限于開發(fā)軟件。隨著可觀測(cè)性的發(fā)展,開發(fā)人員已經(jīng)可以實(shí)時(shí)了解系統(tǒng)的性能。開發(fā)人員現(xiàn)在可以根據(jù)可觀測(cè)性指標(biāo)了解系統(tǒng),并進(jìn)行預(yù)測(cè)性維護(hù)。
開發(fā)人員角色和職責(zé)的變化
開發(fā)人員現(xiàn)在應(yīng)該了解如何設(shè)計(jì)、構(gòu)建和操作系統(tǒng),這些系統(tǒng)可以通過(guò)設(shè)計(jì)來(lái)觀察。這需要新的技能和知識(shí),例如對(duì)分布式系統(tǒng)、監(jiān)視和可觀測(cè)性最佳實(shí)踐的理解。
過(guò)去,開發(fā)人員主要專注于發(fā)現(xiàn)和修復(fù)出現(xiàn)的問題。隨著可觀測(cè)性的提高,開發(fā)人員可以在潛在問題成為問題之前,主動(dòng)識(shí)別和修復(fù)它們。這種從被動(dòng)維護(hù)到主動(dòng)維護(hù)的轉(zhuǎn)變是開發(fā)人員角色變化的一個(gè)關(guān)鍵方面。
需要新的技能和知識(shí)
軟件開發(fā)的新時(shí)代要求開發(fā)人員擁有新的技能和知識(shí)。他們需要了解如何設(shè)計(jì)易于監(jiān)控和理解的系統(tǒng),并且可以自動(dòng)從故障中恢復(fù)。他們還需要了解如何使用各種可用的監(jiān)視和可觀測(cè)性工具。其中包括??Prometheus??,Grafana,Jaeger等開源工具,以及New Relic和AppDynamics等商業(yè)解決方案。
軟件開發(fā)和維護(hù)方式的轉(zhuǎn)變
開發(fā)人員現(xiàn)在必須從開發(fā)過(guò)程的開始就考慮??可觀測(cè)性??。這意味著他們必須了解如何設(shè)計(jì)易于監(jiān)控和理解的系統(tǒng),并且可以從問題中自動(dòng)恢復(fù)。
其中一個(gè)重要方面是使用混沌工程。混沌工程是故意在系統(tǒng)中造成故障以測(cè)試其強(qiáng)度。此方法允許開發(fā)人員在潛在問題成為現(xiàn)實(shí)之前發(fā)現(xiàn)并修復(fù)它們。
采用可觀測(cè)性思維方式
保持領(lǐng)先地位
在當(dāng)今的數(shù)字世界中,組織越來(lái)越依賴軟件來(lái)推動(dòng)其業(yè)務(wù)發(fā)展。隨著微服務(wù)、??容器??、云原生技術(shù)、傳統(tǒng)監(jiān)控和故障排除的興起,為了保持領(lǐng)先地位,開發(fā)人員必須采用可觀察性思維。
及時(shí)了解可觀測(cè)性的最新趨勢(shì)和發(fā)展是一個(gè)持續(xù)的過(guò)程。一種方法是參加行業(yè)會(huì)議和活動(dòng),例如可觀測(cè)性會(huì)議。另一種了解情況的方法是閱讀行業(yè)出版物,并在社交媒體上關(guān)注思想領(lǐng)袖。
擁抱可觀測(cè)性需要開發(fā)人員轉(zhuǎn)變他們的思維方式。開發(fā)人員不應(yīng)將監(jiān)視和故障排除視為單獨(dú)的活動(dòng),而應(yīng)將可觀測(cè)性視為開發(fā)過(guò)程中不可或缺的一部分。這意味著從開發(fā)過(guò)程的一開始就考慮可觀測(cè)性,并設(shè)計(jì)易于監(jiān)控和理解的系統(tǒng)。
總結(jié)
可觀測(cè)性在現(xiàn)代軟件開發(fā)中非常重要。它可以幫助開發(fā)人員輕松發(fā)現(xiàn)和解決問題。隨著可觀測(cè)性越來(lái)越受歡迎,開發(fā)人員的角色也發(fā)生了變化。現(xiàn)在,開發(fā)人員需要知道如何設(shè)計(jì)、構(gòu)建和運(yùn)行易于監(jiān)控的系統(tǒng)。這意味著需要新的技能和知識(shí)。
為了保持領(lǐng)先地位,開發(fā)人員應(yīng)該接受可觀察性,遵循設(shè)計(jì)可觀察系統(tǒng)的最佳實(shí)踐,并隨時(shí)了解該領(lǐng)域的最新趨勢(shì)和進(jìn)步。這將有助于確保任何嚴(yán)重依賴軟件的組織的成功。























