監控

可觀測性造就智慧化維運

2022-06-02
現代化應用從開發方式革新、平台架構改變、到維運機制的調適,每個工作流程都是一門偌大的學問,本次來談談現代化應用程式該如何監控,管理維運起來有什麼不同。

監控(Monitoring)這個名詞,許多人早已習以為常,也多能理解監控的內涵,就好比到醫院就診,會量體溫和血壓、驗血、心電圖或拍攝X光片等等,擷取明顯可見的資訊來診斷身體可能出了什麼問題。而雲原生應用同樣也能以當下的狀態來抽絲剝繭,雖然檢測工具有些許不同,但這不是最重要差異,差異在於有沒有機會在現代化應用出問題之前,就預先掌握提早處置,甚至是避免一次應用崩潰。

由於在雲原生環境中產生的問題,往往很難在地端複製相同的環境來找解答,採用過往監控的方法來處理也很難完善,所以新一代的維運觀念就是要早先一步預判,而這個模式也被稱為智慧化維運(AIOps)。實現AIOps的基礎,就得先從監控的觀念進化為可觀測性(Observability)觀念開始。

可觀測性又是什麼呢?可觀測性需要收集橫跨外部和詳細的內部指標之間各種關聯性分析。回到醫院就診的例子來說,就是除了當下各種「監控」數據的採集之外,同時藉由大數據分析來梳理出不同指數的關聯性與趨勢預判,簡單來說就是將人工智慧(AI)的邏輯加到新一代維運的觀念裡。

可觀測性基礎建立於Metrics、Logging與Tracing 三大類數據,因各自方案專注解決某個特定場景的可觀測性問題,因此需要搭多套獨立服務維護成本高;此外,由於缺少共同規範,同一個應用不同類型的數據被儲存在獨立的系統,難以發揮數據最大價值。另一個普遍現象是,因為開發者有各自的背景,很難有開發者同時了解所有應用程式細節,因此基於上述種種原因,發展出一個可觀測性框架OpenTelemetry來解決這個窘境。

OpenTelemetry提供統一SDK/API作法和OLTP標準協議,無視廠商差異,框架完全中立。只是目前多數的OpenTelemetry主要發展皆著重在Metrics跟Trace兩大方向,而Logs規範還在規劃中。

有了統一標準,接下來就是要知道Kubernetes(K8s)環境該收取哪些資料。K8s有五個主要組件要關切,分別是Cloud Provider、K8s平台資訊、Application應用程式資訊、Container以及作業系統(OS)本身,其中又以前三個最為重要,在這個基礎之上,選擇工具就不再那麼傷腦筋了。

最佳化的雲原生現代應用監管方式,應該像Tanzu Observeribility這類雲原生的工具,除了滿足對於系統管理者的日常之外,還可面向程式開發者,針對常見App提供開箱即用儀表板,內建AIOps協助快速進行異常檢測,完全支援OpenTelemetry標準,並可使用Trace/Span進行端到端Distributed Tracing 。

<本文作者:吳子強現為VMware台灣副總經理暨技術長>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!