監控和可觀測性之間的關係

討論了監控和可觀測性實踐,以及它們如何幫助開發團隊更好地理解軟件中的 bug 和其他錯誤。

IT 行業在最近已經變得指數級複雜——更多的環境、更多的連接設備、更多的數據和更多的發佈更新。因此,用於監控現代應用程序和管理預測故障的遺留方法並不是最佳的工作方式。監控是實現增長和跟上技術帶來的挑戰的關鍵因素。

可觀測性傾向於簡化複雜性。爲了有效地診斷和調試代碼,系統必須在微服務體系結構中的行爲是可觀測到的。但是這個新的 IT 流行詞與監控有什麼不同呢?

監控是 IT 操作的一個不可缺少的元素,它提供了對當今高度分佈式環境的可見性。但它並不完全是我們所瞭解的可觀測性。機器學習和日誌記錄需要集成到單一環境中,以提高效率。簡單地說,監控是可觀測性的工具; 然而,後者有更多的工具和組件,使團隊能夠從他們的反應性問題轉移到積極的決策制定和問題解決。

在這篇文章中,我們將看看監控和可觀測性之間的區別,以及爲什麼它對你的組織很重要。

監控

基於 DevOps 的組織專注於將應用程序分解爲基於微服務的架構,以減少修復時間,並在事故發生時提高可操作性。然而,由於現代系統非常複雜,監控系統應該能夠提供可見性,並能夠在系統發生故障時快速做出反應。

監控有助於確定系統或應用程序的狀態結果。從應用程序的標準測試到執行運行狀況檢查,監控有助於識別異常和問題。通過監控,組織可以發現問題的根本原因,並獲得對性能趨勢和容量需求提供可操作的見解。

然而,監控一直在不斷髮展,改善了利益相關者的範圍。例如,架構師使用這種技術來確定哪些模型或雲模式可以幫助實現最佳 ROI。在應用程序開發中,可以使用監控工具根據性能結果來度量編碼實踐。

因此,監控對於構建儀表盤、分析長期趨勢和在事件發生時發送警報非常重要。它使您能夠了解您的應用程序或系統是如何運行的,它們的增長趨勢,以及它們是否得到了適當的利用。因爲監測數據高度分散和複雜的系統的侷限性是缺乏線性生產故障。所以監控數據很難預測。

可觀測性——它到底是什麼?

雖然這個術語最近很流行,但可觀測性的概念一直存在於線性動態系統中。根據控制理論,可觀測性的概念被定義爲從外部輸出的信息推斷框架的內部狀態運行情況。它利用儀器來獲得有價值的見解,這有助於有效的監控。這意味着如果沒有一定程度的可觀測性,監控過程就不可能進行。

通過可觀測性,您可以量化和理解影響系統的內部因素。這將使您能夠從結果無縫地導航到原因,即使在多個微服務體系結構中也是如此。一個可觀測系統可以幫助你獲得以下問題的答案:

  • 性能瓶頸在哪裏,請求需要接受哪些服務?
  • 請求執行過程與系統行爲有何不同?
  • 請求失敗的原因是什麼?
  • 每個微服務如何處理請求?

可觀測性對於當今過於複雜的 IT 基礎設施至關重要,因爲有兩個重要的因素需要考慮——應用程序的特性和交付的速度。今天的大多數組織都在擁抱動態微服務體系架構和容器化工作負載。因此,僅僅依靠監控是沒有用的。

使用現代化的檢測工具有助於更好地理解應用程序的屬性和性能,這一點至關重要。這使得組織能夠有效地處理影響生產和交付管道的高度複雜及分佈式系統帶來的挑戰。

可觀測性的主要支柱

首先,可觀測性有三個支柱:

  • 日誌:這些是各種離散事件的絕對和有時間戳的記錄,可用於檢測應用程序或系統中不可預知的行爲。它可以幫助您在出現問題時識別應用程序行爲中的更改。

  • 鏈路追蹤:對於單個請求和事務,鏈路追蹤能夠記錄在複雜分佈式系統中從一個節點傳輸到另一個節點的過程。使您能夠捕獲特定請求或事務的詳細信息。這使您能夠:確定哪些元素導致了系統錯誤,檢測性能瓶頸,並跟蹤通過節點的流程。

  • 度量:這是一個強大的工具,可以幫助團隊瞭解一個方法所使用的內存總量,以及一個服務每秒可以處理的請求或事務數量。

監控和可觀測性之間的關係

儘管存在差異,但重要的是要知道監控和可觀測性是相輔相成的。然而,它們都有一個獨特的目的。

監控使您能夠檢測到系統中的錯誤,而可觀測性則幫助您更好地理解問題發生的原因。通過監控,可以跟蹤應用程序或系統的總體運行狀況和性能。它會收集關於應用程序如何運行的數據,包括連接性、瓶頸、停機時間和訪問速度。

另一方面,可觀測性通過幫助理解系統操作的什麼爲什麼,將您帶入一個問題的深處。它爲特定的失敗模式提供了更多相關的和細粒度的洞察。因此,監控只提供已知事件和問題的答案,而可觀測性讓您獲得對動態和複雜系統狀態更新及問題原因有更深的洞察。

從這個意義上說,監控是可觀測性的關鍵子集和功能,也就是說,一個系統只有在可觀測的情況下才能被監控。重要的是要理解可觀測性不是一個產品;相反,它是當今高度複雜和分佈式環境的一個不可分割的屬性,其中應用程序監控和現代儀表盤是最大的貢獻者之一。

因此,組織應該專注於構建一個可觀測的環境,它與監控交織在一起,以實現更大的結果。有效的培訓應該幫助故障排除者和利益相關者學習如何使他們的系統更容易被觀測到。這將包括產生更深刻的見解,協助監控設計,以及構建改進策略。

事實上,許多組織已經多走了一段路,建立了可觀測性工程師,而其他一些組織已經將可觀測性實踐和學習納入了他們的新招募培訓計劃中。


推薦

Kubernetes入門培訓(內含PPT)

從Ice到Kubernetes容器技術,微服務架構經歷了什麼?


隨手關注或者”在看“,誠摯感謝!

本文分享自微信公衆號 - 雲原生技術愛好者社區(programmer_java)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章