1、基于APM的智能運維體系在京東物流的落地和實踐京東物流 架構師目錄業界智能運維發展現狀及趨勢智能運維體系建設方法論大規模實時監控平臺的實踐方案智能故障定位與處理實踐 APM 在京東物流的落地實踐 智能運維(AIOps)落地規劃業界智能運維發展趨勢新的問題運維人數不變,管理機器數翻倍1234正在消失的運維運維從業者減少,運維專家匱乏運維平臺日趨復雜,缺乏統一規劃公司內部監控/運維系統繁多,形成數據孤島網絡拓撲日益復雜,資源云化,虛擬資源頻繁彈性伸縮。不可靠的CMDB過去1:n 現在1:10越來越復雜的應用拓撲消息服務器發消息應用D應用E收消息收消息收消息數據庫分布式緩存JDBCJDBC讀緩存分布
2、式文件系統寫緩存存取應用A開放平臺API 請求無線客戶端請求前端網頁請求應用B應用C服務調用服務調用應用F應用G服務調用服務調用應用H服務調用服務調用服務調用應用A數據庫JDBC前端網頁請求系統問題定位難快速發展的APMAPM(應用性能管理)市場規模逐年遞增01020304050607020142015201620172018APM市場規模(億美元)目前,全球APM市場規模大約在60億美元左右,預計在五年內達到90億美元APM成為ITOM成長最快的領域APM能夠對企業的關鍵業務應用進行監測、診斷分析、優化,最終能夠提高應用的可靠性和質量,保證良好的用戶體驗,降低IT成本運維角色轉變背鍋俠救火員
3、被動響應主動求變需求提煉產品化開發產品化落地產品意識推廣落地業務數據分析過程改進技術運營事件處理業務分析業務預測業務增值架構標準化架構實施架構優化架構運維運維價值凸顯 新運維時代來臨目錄業界智能運維發展現狀及趨勢分析智能運維體系建設方法論大規模實時監控平臺的實踐方案智能故障定位與處理實踐 APM 在京東物流的落地實踐智能運維(AIOps)落地規劃智能運維體系建設方法論統一規劃、避免重復建設標準化是前提產品化設計、產品化開發服務驅動運維中臺業務增值過程改進智能運維體系建設方法論閉環生命周期管理流程管理審計歸檔目錄業界智能運維發展現狀及趨勢分析智能運維體系建設方法論大規模實時監控平臺的實踐方案智能
4、故障定位與處理實踐 APM 在京東物流的落地實踐智能運維(AIOps)落地規劃大規模實時監控平臺V1.0大規模監控平臺架構大規模實時監控平臺V1.0多級部門、應用多維度統計日報、周報、同比、環比統計低資源使用率TOP統計低負載應用榜單低資源使用率應用優化建議多維度使用率分析助力企業降本增效使用率報表大規模實時監控平臺V2.0整合多端數據,解決數據孤島問題性能分析、告警分析更加準確更全面評估應用健康狀況大規模實時監控平臺V2.0整合各種應用維度的指標分析,提供更全面的應用數據分析和故障診斷系統指標調用鏈指標日志分析數據庫指標JVM指標應用拓撲自動探測應用健康報告大規模實時監控平臺V2.0日志處理
5、架構大規模實時監控平臺V3.0產品規劃大規模實時監控平臺V3.0故障預測、容量預測、性能預測預測分類:預測算法:重點關注:LSTM、多元線性回歸、決策樹、隨機森林、神經網絡、樸素貝葉斯分類、最小二乘法、支持向量機 算法匹配度評分日歷適配、基于節假日的機器學習算法Kpi自動分類并匹配預測算法基于業務關聯關系的預測算法預測大規模實時監控平臺V3.0紅綠燈大屏可視化目錄業界智能運維發展現狀及趨勢分析智能運維體系建設方法論大規模實時監控平臺的實踐方案智能故障定位與處理實踐 APM 在京東物流的落地實踐智能運維(AIOps)落地規劃智能故障處理傳統故障處理被動故障處理:1.事后處理:出先故障后開始處理,
6、易造成業務中斷;2.人工處理:基于工作流的故障上報和處理,層層通知手工定位故障原因,故障修復時間長;3.無計劃性:多為突發情況,進行臨時處理,難免有疏漏之處;4.報警爆炸:隨著業務增長,報警越來越多,運維人員不堪其擾主動故障處理:1.事前感知:通過故障預測算法,預測故障類型及發生時間,并提前通知項目負責人;2.自動處理:決策引擎根據預設的事件處理策略,自動執行處理指令以及基于機器學習的自動故障處理;3.定時巡檢:平臺化的定時巡檢機制,給出應用健康報告,問題早發現早解決;4.報警收斂:對告警做告警篩選、過濾、合并操作,大大減少報警數量;故障快照出現告警自動抓取現場快照信息快照信息持久化保存根據自
7、學習的知識庫提供異常原因分析集成Arthas診斷工具,快速診斷問題根因分析基于雙向過濾的告警通知恢復輕度中度嚴重過濾通知處理引擎過濾高級通知策略方法告警日志告警資產資產資產郵件短信咚咚微信調用鏈告警業務告警業務告警每天每月每周自定義時間規則為保證告警信息能夠及時準確的傳達給系統管理員,監控模塊需要實現靈活的告警通知策略雙重過濾的通知方式:資源和通知聯系人分別應用通知策略,實現對通知的雙重安全過濾目錄業界智能運維發展現狀及趨勢分析智能運維體系建設方法論大規模實時監控平臺的實踐方案智能故障定位與處理實踐 APM 在京東物流的落地實踐智能運維(AIOps)落地規劃業界分布式跟蹤系統Google:Da
8、pperNaver:PinpointTwitter:Zipkin點評:Cat阿里:EagleEye京東:JTrace、JD-Hydra(已廢棄)、Callgraph、SGM新浪:Watchman美團:MTrace又拍云:Tail其他:OpenTracing、SkyWalking服務廠商:Compuware、iMaster、博睿Bonree、聽云、New Relic、云智慧、OneAPM、AppDyn、Amics京東物流Jtrace分布式跟蹤系統延展性應用級透明低消耗智能分析定義了四個具體的設計目標JTrace數據結構核心數據結構由Span,Trace,和 TraceId組成:Trace:多個S
9、pan的集合;Span:RPC跟蹤的基本單元;SpanEvent:內部方法調用基本單元 TraceId:TransactionId(TxId):全局唯一消息的ID SpanId ParentSpanId(pSpanId)Jtrace應用示例架構設計 分布式事務跟蹤,跟蹤分布式應用消息 自動檢測應用拓撲,幫你搞清楚應用的架構 水平擴展支持大規模服務器集群 提供代碼級別的可見性以便輕松定位失敗點和瓶頸 使用字節碼增強技術,添加新功能無需改動代碼 集成SQLAdvisor 智能化采樣率七大能力:字節碼增強技術JavaAgent:java-javaagent:myagent.jar=mode=test
10、 Test功能:可以在加載class文件之前做攔截,對字節碼做修改可以在運行期對已加載類的字節碼做變更,但是這種情況下會有很多的限制。還有其他一些小眾的功能 獲取所有已經加載過的類 獲取所有已經初始化過的類(執行過clinit方法,是上面的一個子集)獲取某個對象的大小 將某個jar加入到bootstrap classpath里作為高優先級被bootstrapClassloader加載 將某個jar加入到classpath里供AppClassloard去加載 設置某些native方法的前綴,主要在查找native方法的時候做規則匹配java字節碼框架kernelpluginpluginplugi
11、npluginAgent內部是采用微內核+插件的方式微內核:封裝了通過ASM或Javassist字節碼框架對類進行增強插件:插件中指定要增強的類和方法以及增強內容優點缺點手工埋點1.要求更少開發資源2.API可以更簡單并最終減少bug的數量1.開發人員必須修改代碼2.跟蹤級別低自動埋點1.開發人員不需要修改代碼2.可以收集到更多精確的數據因為有字節碼中的更多信息1.開發難2.開發人員要求高3.增加bug發生的可能性字節碼增強的價值隱藏API一旦API被暴露給開發人員使用,我們作為API的提供者,就不能隨意的修改API。這樣的限制會給我們增加壓力。而使用字節碼增強技術,我們就不必擔心暴露跟蹤AP
12、I而可以持續改進設計,不用考慮依賴關系。容易啟用或者禁用使用字節碼增強的缺點是當JTrace自身類庫的采樣代碼出現問題時可能影響應用。不過,可以通過啟用或者禁用JTrace來解決問題,很簡單,因為不需要修改代碼。-javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar-Dpinpoint.applicationName=APM性能優化 使用二進制格式(thrift協議)用常量表替換重復的API信息,SQL語句和字符串 處理大量請求的采樣 使用異步數據傳輸來最小化應用線程中止 使用UDP協議傳輸數據 使用變長編碼和格式優化數據記錄(thrift CompactProtocol)經過數論壓測計算Agent端會有3%的性能損失到目前為止還沒有出現因為Agent出現性能問題。目前接入應用677個,接入機器近9000臺目錄業界智能運維發展現狀及趨勢分析智能運維體系建設方法論大規模實時監控平臺的實踐方案智能故障定位與處理實踐 APM 在京東物流的落地實踐智能運維(AIOps)落地規劃AIOP總體建設思路AIOPS落地規劃