作者:京東物流 翁美婷
一、前言
隨著系統(tǒng)數(shù)量增多,復(fù)雜度提高,線上應(yīng)急問題時有發(fā)生;加之需投入大量人力進行服務(wù)治理和驗證,為了減少日常應(yīng)急問題及提前排除風(fēng)險,發(fā)起對生產(chǎn)系統(tǒng)的持續(xù)綜合性治理,實現(xiàn)常態(tài)化穩(wěn)定性治理。在常態(tài)化治理過程中我們將識別問題等重復(fù)性有規(guī)律的工作實現(xiàn)自動化,技術(shù)人員更專注于解決問題。
二、穩(wěn)定性治理常態(tài)化
保障穩(wěn)定性治理常態(tài)化,部門組建了一支由研發(fā)團隊、測試團隊、架構(gòu)師組成的穩(wěn)定性治理隊伍,對部門核心應(yīng)用,核心服務(wù)風(fēng)險、服務(wù)器資源風(fēng)險、日志風(fēng)險、性能防劣化、以及技術(shù)專項等多維度持續(xù)風(fēng)險識別和治理。
1、核心服務(wù)風(fēng)險:重點關(guān)注服務(wù)響應(yīng)時間TP99跳點、響應(yīng)時間max跳點、可用率小于100%、秒級調(diào)用量1500次以上TP99性能等。
2、服務(wù)器資源風(fēng)險:巡檢的服務(wù)器有應(yīng)用服務(wù)器、DB、MDC、ES、Redis、Tidb、ClickHouse等;關(guān)注指標(biāo):CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)……;注意不同的服務(wù)器關(guān)注的指標(biāo)側(cè)重點不同。
3、性能防劣化:針對服務(wù)和資源的性能指標(biāo)分析峰值、趨勢、對比及偏差情況識別系統(tǒng)的劣化發(fā)生。服務(wù)維度:UMP調(diào)用量、響應(yīng)時間、可用率;資源維度:主機CPU、內(nèi)存、磁盤,數(shù)據(jù)庫慢SQL、QPS;其他中間件:JVM等。
4、日志風(fēng)險治理:日志問題包含異常日志治理、日志規(guī)范性、日志清理及磁盤監(jiān)控、日志級別動態(tài)配置等方面。
5、其他專項常態(tài)化:性能測試覆蓋日常架構(gòu)升級、重點項目需求,安全測試針對代碼安全、組件安全、敏感接口、數(shù)據(jù)安全的專項測試,數(shù)據(jù)庫慢SQL、數(shù)據(jù)結(jié)轉(zhuǎn)、主從延遲等,針對內(nèi)部外的應(yīng)急問題架構(gòu)和質(zhì)量復(fù)盤借鑒,識別自身系統(tǒng)可以改進提升項。
此外,應(yīng)急薄弱點專項、應(yīng)急演練、接口限流風(fēng)險等各類穩(wěn)定性保障專項持續(xù)推進。
三、穩(wěn)定性治理自動化
常態(tài)化治理的痛點:部門應(yīng)用多,覆蓋全部應(yīng)用耗費大量時間人力,當(dāng)增加review項時,工作量大幅增加,落地難度增大。如何提升review效率和可落地性?
自動化解決問題
1、線上問題巡檢自動化,降低重復(fù)性人力工作,研發(fā)更專注于問題優(yōu)化和高可用建設(shè)。
2、豐富風(fēng)險項檢測,風(fēng)險項擴充不會額外增加大量人力排查
3、部門全盤穩(wěn)定性監(jiān)控,問題檢測能力復(fù)用,從核心服務(wù)review復(fù)制到全量不需要增加人力。
自動化過程
1、定義問題:明確指標(biāo),確定異常規(guī)則。在穩(wěn)定性常態(tài)治理過程沉淀了一套覆蓋核心服務(wù)風(fēng)險、服務(wù)器資源風(fēng)險、日志風(fēng)險、性能防劣化、以及其他專項的風(fēng)險項和識別方法,這部分是問題的來源。
2、自動識別:自動巡檢,識別線上異常。數(shù)據(jù)來源于兩部分,已有的UMP、Logbook、MDC,此外來源還有壓測數(shù)據(jù)、SLA定義等。
3、閉環(huán)問題:工單跟進,提升閉環(huán)效率,通過問題線上報表跟蹤治理進度,每日/每周的定時巡檢,回歸驗證,檢驗修復(fù)效果。
四、治理實踐
從UMP異常、資源異常、性能防劣化、logbook異常關(guān)鍵字、等維度線上服務(wù)穩(wěn)定性治理實踐案例。
1、UMP異常-可用率<100%
案例:
1、定義問題:可用率<100%
2、自動識別問題:獲取T+1的UMPkey監(jiān)控數(shù)據(jù),獲取可用率小于100異常點信息,統(tǒng)計可用率小于100的次數(shù),最低可用率及對應(yīng)的時間為輔助排查問題的依據(jù)。
3、問題跟進:UMP監(jiān)控XXXServiceImpl.buildBusinessSummary可用率經(jīng)常小于100%,排查因為正常業(yè)務(wù)問題未從方法監(jiān)控ump可用率中剔除,通過主動上報提高報警精準(zhǔn)度。
2、資源異常-磁盤使用率風(fēng)險
案例:
1、定義問題:磁盤使用率>80%
2、自動識別問題:獲取T+1的資源監(jiān)控數(shù)據(jù),獲取磁盤/和/export的磁盤使用率>80%信息,統(tǒng)計出現(xiàn)次數(shù),最高利用率及對應(yīng)的時間。
3、問題跟進:0級應(yīng)用服務(wù)器磁盤使用超過80%,優(yōu)化log4j配置,補充監(jiān)控報警。
3、Logbook關(guān)鍵字-空指針異常
案例:
1、定義問題:
log關(guān)鍵字分為程序類異常和業(yè)務(wù)類異常關(guān)鍵字:
(1)業(yè)務(wù)類異常:業(yè)務(wù)異常時主動輸出的錯誤日志,例如“下單失敗”,各系統(tǒng)根據(jù)需要自行打印和配置
(2)程序類異常:程序出現(xiàn)預(yù)期外的異常,自動拋出的錯誤日志,例如:NullPointerException
2、識別問題:某應(yīng)用日志報空指針異常。
4、 性能防劣化-CPU劣化
案例:CPU劣化案例
2月5日11:00-19:20之間核心鑒權(quán)服務(wù)分組機器12臺服務(wù)器CPU使用率先后峰值13%到27%異常增長,并持續(xù)高于日常值,對外提供服務(wù)無明顯異常,客戶無感知。對服務(wù)JVM分析發(fā)現(xiàn),頻繁FullGC引起CPU升高,打印堆棧信息某中間件占用內(nèi)存1.4G(JVM共4G),經(jīng)與中間件團隊溝通當(dāng)前版本存在線程池資源無法釋放問題。
五、結(jié)語
通過自動化的方式每日對線上核心UMP、Logbook、主機、數(shù)據(jù)庫、ES、Redis風(fēng)險進行巡檢,降低人工review工作量。穩(wěn)定性治理重在持續(xù),過程中可能會遇到痛點和艱難,值得技術(shù)人用技術(shù)不斷提升。
審核編輯 黃宇
-
自動化
+關(guān)注
關(guān)注
29文章
5622瀏覽量
79656 -
系統(tǒng)穩(wěn)定性
+關(guān)注
關(guān)注
0文章
8瀏覽量
6929
發(fā)布評論請先 登錄
相關(guān)推薦
評論