微服務與容器的監控 - 來自Adrian Cockcroft的挑戰

jopen 9年前發布 | 13K 次閱讀 Adrian Cockcroft

GlueCon 2015大會上的一場演講中,Adrian Cockcroft為聽眾列舉了如何對微服務與基于容器的應用進行監控的多條規則。除了這些指導方針之外,Cockcroft也著重強調了在監控 cloud native并且基于容器的系統時所面臨的一系列挑戰,并介紹了一個由他設計的微服務模擬與可視化工具,名為“Spigo”,它能夠幫助開發者對大規模微 服務的監控進行測試。

Cockcroft 是來自于 Battery Ventures 的技術專家,他在演講中首先列舉了關于微服務與容器監控的一系列規則,這其實是于 Monitorama 2014大會上首次提出的規則的一個升級版本。

  1. 將更多的時間用于編寫對數據指標的意義進行分析的代碼,而不是用于編寫收集、移動、保存以及顯示指標的代碼。
  2. 讓關鍵業務指標的延遲降低到人類注意力的持續時間以下 (約10秒左右)。
  3. 請驗證你的衡量系統是否具有足夠的精確度與準確度,并將收集到的響應時間數據以柱狀圖表示。
  4. 對于比目前監控中的系統(與服務)需要更高可用性與可伸縮性的系統進行監控。
  5. 對分布式的、短期的、“cloud native”、容器化的微服務的監控進行優化。
  6. 讓指標與你的模型相一致,以便理解它們之間的關系(這是一條新的規則)。

Cockcroft表示,這條新的規則,即“讓指標與模型相一致”是必不可少的。因為基礎設施、數據流以及自主權與組織結構等因素往往是互不相交的,只有 將它們關聯在一起,指標才能夠表現出其意義。隨后,Cockcroft將微服務定義為“一種由邊界上下文組成的松耦合面向服務架構”,在此定義的基礎上深 入討論了在監控微服務與容器技術(例如 Docker )時所面臨的一系列挑戰。

首先提出的一個挑戰是“復雜性”,Cockcroft表示在一體性的應用程序內部的依賴是無限制的,比起具有明確的、可視的微服務依賴,其復雜性 可能會高出許多,要檢測出所有的外部依賴是一件非常困難的是。第二個挑戰是“變更的速度”,它所表示的是在對基于容器的微服務應用進行持續部署時,可以實 現的變更速率已經達到了相當的高度,這也帶來了相應的問題:

對于容器應用來說,每分鐘一次進行CPU占用率的檢測已經失去意義了……從監控工具的角度來看,如何應對這種變更速率是一個巨大的挑戰。

“大規模化”是第三個被提出的監控挑戰,這里的規模不僅是指運行中的容器與機器的數量,還必需考慮到“ cloud native ”中的相關概念,例如 地區和可用性區域 。當然也要考慮服務本身的大規模化,以及可能會發生的多個版本的服務并行運行的情況。

Cockcroft還表示,“數據流”也是微服務架構中一種內在的挑戰。雖然有某些工具能夠跨多個服務展示請求流,例如Netflix的 Atlas (以及 相關的應用 )、AppDynamics的 應用性能管理工具 ,以及推ter的 Zipkin ,但我們所關注的架構可能會包含多個微服務,這就意味著如何使這些服務做到可視化成為一個實在的挑戰。

在微服務架構的應用程序中,產生“故障”的可能性是一個始終存在的挑戰,而在云環境中,這一問題往往被進一步放大。舉個例子,如果某個 可用性區域 出現了分區或故障,該如何在監控或分析平臺中顯示這一情況?按照設定,cloud native的應用在出現部分可用性區域故障時會繼續運行,因此這種情況本身并不算是一種“故障”。但應將這一情況通知系統的運維人員,甚至可能需要停止應用的部署。

在這種情況下,如何理解、并且對微服務的故障模式進行交流,這一點正是挑戰之所在。

對于大規模的微服務及容器監控工具進行測試的過程會很快造成高昂的代價,因此,對這一場景進行模擬是一種可行的方案。Cockcroft為聽眾介紹了他所設計的微服務模擬器 “Spigo”(又名“simianviz”) ,可以通過它對你所關注的微服務架構進行建模與可視化。

微服務與容器的監控 - 來自Adrian Cockcroft的挑戰

Spigo,或者說simianviz是一個基于Go與D3.js開發的應用程序,能夠生成人為的測試微服務系統。它完全能夠模擬大規模的系統配置,最終 目標是能夠支持對實際應用中的監控工具進行負載測試。此外,Cockcroft還計劃讓這套工具支持更多的特性,例如動態地變換代碼提交以及配置的自動伸 縮、支持Netflix用于處理區域及地區故障的 chaos gorilla 工具的建模,以及在Spigo(simianviz)的多個顯示之間建立WebSocket連接。

這是我為你提出的挑戰:用Spigo創建你的架構,讓它對你的監控工具進行負載測試,并讓它幫助你修復微服務的監控過程中的問題。

關于Adrian Cockcroft在GlueCon大會上所做的演講,可以在 Cockcroft的SlideShare 帳號下找到更多的信息與幻燈片。此外還可以在GitHub上找到 Spigo或simianviz 的源代碼。GlueCon是一個一年一度的開發者會議,它專注于云計算、DevOps、移動、API與大數據,可以在 GlueCon 網站上找到更多的信息。

查看英文原文: Monitoring Microservices and Containers: A Challenge by Adrian Cockcroft

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!