簡介: 隨着容器技術蓬勃發展與落地推行,愈來愈多企業的業務運行於容器中。做爲主流部署方式之一,容器將團隊的任務和關注點分割開,開發團隊只需關注應用程序邏輯和依賴項,而運維團隊只需關注部署和管理,無需再爲特定軟件版本和應用程序特定配置等應用程序細節而提心吊膽。這意味着開發團隊和運維團隊能夠花費更少時間進行調試上線,將更多時間用於向最終用戶交付新功能。容器使企業能夠更加輕鬆的提升應用程序可移植性和操做彈性。據 CNCF 的調研報告顯示,73% 受訪者正在使用容器來提升生產敏捷性並加快創新速度。服務器
做者 | 白璵網絡
在大規模使用容器過程當中,面對高動態且須要持續監測的容器化環境,創建監測體系對於維持運行環境穩定、優化資源成本具備巨大意義。每一個容器鏡像可能有大量運行實例,因爲新鏡像和新版本的引入速度很快,故障很容易經過容器、應用程序和架構擴散。這使得在問題發生後,爲了防止異常擴散,當即進行問題根因定位變得相當重要。通過大量實踐,咱們認爲在容器使用過程當中,如下組件的監測相當重要:架構
在完整的監測體系下,經過深刻了解指標、日誌和鏈路,團隊不只能夠了解在集羣以及在容器運行時和應用程序中發生的事情,也能夠爲團隊進行業務決策時提供數據支持,好比什麼時候擴展/縮減實例/任務/Pod、更改實例類型。DevOps 工程師還能夠經過添加自動化告警以及相關配置,來提升故障排除以及資源管理效率,好比經過主動監測內存利用率,當資源消耗接近所設定的閾值時通知運維團隊對可用 CPU 、內存資源耗盡以前添加額外節點。這其中的價值包括:app
但在實際落地過程當中,運維團隊會以爲以上價值相對淺顯,彷佛現有運維工具都能達到上述目的。但針對容器相關場景,若是沒法構建相應監測體系,隨着業務不斷擴張,就不得不面臨如下兩個很是棘手的針對性問題:框架
開發團隊與運維團隊很難了解正在運行的內容及其執行狀況。維護應用程序、知足 SLA 和故障排除異常困難。運維
按需快速擴展應用程序或微服務實例的能力是容器化環境的重要要求。監測體系是衡量需求和用戶體驗的惟一可視化方法。擴展太晚,致使性能與用戶體驗的降低;過晚縮小規模,又會致使資源以及成本的浪費。微服務
所以,當容器監測的問題以及價值,不斷疊加且浮出水面,愈來愈多運維團隊開始重視容器監測體系的搭建。但在實際落地容器監測這一過程當中,又遇到各類各樣意料以外的問題。工具
好比短暫存在特性帶來的跟蹤困難,因爲容器自身存在着複雜性,容器不只包含底層代碼,還包含應用程序運行所需的全部底層服務。隨着新部署投入生產,並更改代碼和底層服務,容器化應用程序會頻繁更新,這就增長了出錯的可能。快速建立、快速銷燬的特性,使得在大規模複雜系統中跟蹤變化變得異常困難。性能
又好比,因爲共享資源帶來的監控困難,因爲容器使用的內存和 CPU 等資源在一臺或多臺主機之間共享,所以很難監控物理主機上資源消耗狀況,也致使很難得到容器性能或應用程序健康情況的良好指示。優化
最後,就是傳統工具難以知足容器監測需求。傳統的監測解決方案一般缺少虛擬化環境所需的指標、跟蹤和日誌所需的工具,容器的健康和性能指標及工具更是如此。
所以,結合以上的價值、問題、難點,咱們在創建容器監測體系時,須要從如下幾個維度進行考量與設計:
在明確業務需求以及設計監測體系過程當中,有很是多開源工具供運維團隊選擇,但運維團隊還須要評估可能存在的業務與項目風險。這其中包括:
所以,基於上述洞察考量與大量實踐經驗,阿里雲推出 Kubernetes 監測服務。阿里雲 Kubernetes 監測是一套針對 Kubernetes 集羣開發的一站式可觀測性產品。基於 Kubernetes 集羣下的指標、應用鏈路、日誌和事件,阿里雲 Kubernetes 監測旨在爲 IT 開發運維人員提供總體的可觀測性方案。阿里雲 Kubernetes 監測具有如下六大特性:
與此同時,相對於與開源容器監測,阿里雲 Kubernetes 監測具有更加貼近業務場景的差別化價值:
基於以上產品特性與差別化價值,咱們應用在如下場景:
目前,Kubernetes 監測已經開啓全面公測,公測期間無償使用。讓 Kubernetes 監測幫你擺脫機械重複的運維工做~
原文連接
本文爲阿里雲原創內容,未經容許不得轉載。