寧肖
(江蘇省揚(yáng)州環(huán)境監(jiān)測中心 江蘇省揚(yáng)州市 225007)
傳統(tǒng)運(yùn)行監(jiān)控系統(tǒng)對管理員依賴度較高,管理員負(fù)責(zé)對系統(tǒng)進(jìn)行運(yùn)行監(jiān)控和故障排查,技術(shù)持續(xù)升級影響下,相關(guān)應(yīng)用系統(tǒng)復(fù)雜度提升,必須為管理員減負(fù),尋求人力釋放方案,提升系統(tǒng)智能化。APM系統(tǒng)是以應(yīng)用性能管理為應(yīng)用目的的監(jiān)控系統(tǒng),監(jiān)控效果較好,更具智能性,技術(shù)更完善。APM系統(tǒng)結(jié)合微服務(wù)架構(gòu)應(yīng)用可提升應(yīng)用性能。
微服務(wù)架構(gòu)為現(xiàn)代新科技,主要應(yīng)用于云中部署,促進(jìn)云服務(wù)完善。以輕量級設(shè)備為媒介,利用自有程序,可實(shí)現(xiàn)微服務(wù)、HTTP型API之間的溝通。微服務(wù)架構(gòu)中,當(dāng)針對某項(xiàng)服務(wù)進(jìn)行功能拓展時,無需縮小進(jìn)程范圍,而是直接針對特定服務(wù)加設(shè)目標(biāo)功能即可,整體進(jìn)程不受到功能拓展影響。常規(guī)服務(wù)中通常需要獨(dú)立資源或功能,而微服務(wù)匹配業(yè)務(wù)能力。在該架構(gòu)應(yīng)用時應(yīng)科學(xué)設(shè)計能力模型粒度。相關(guān)組件組合時,其中的組件與規(guī)模同步改變。在此情況下,服務(wù)粒度過粗將導(dǎo)致其與規(guī)定原則不一致。應(yīng)精細(xì)化設(shè)計服務(wù)粒度,增強(qiáng)變化靈活性,降低負(fù)載影響。與此同時,應(yīng)合理設(shè)計配置,并對基礎(chǔ)設(shè)施成本進(jìn)行監(jiān)控[1]。
微服務(wù)是網(wǎng)絡(luò)服務(wù)宏觀發(fā)展趨勢。在應(yīng)用時應(yīng)對服務(wù)與應(yīng)用進(jìn)行精細(xì)化分解,保證組件符合小粒度要求,進(jìn)行松散耦合,通過此種設(shè)計促進(jìn)微服務(wù)擴(kuò)展升級。獨(dú)立部署是微服務(wù)的主要特點(diǎn),其擴(kuò)展和并發(fā)性能突出,可根據(jù)業(yè)務(wù)劃分應(yīng)用系統(tǒng),促使復(fù)雜的系統(tǒng)被拆解為不同服務(wù)單元,而各單元均為獨(dú)立業(yè)務(wù)模塊。模塊具有單一功能,故而單獨(dú)功能變更升級對同系統(tǒng)其他模塊無顯著影響,微服務(wù)單元進(jìn)程獨(dú)立,運(yùn)行限制較少。各單元設(shè)有獨(dú)立存儲模式和數(shù)據(jù)庫,適應(yīng)復(fù)雜的數(shù)據(jù)存儲需求。通信機(jī)制為輕量級,可有效配合,支持溝通功能,通訊不受監(jiān)控平臺、語言影響。以生產(chǎn)作業(yè)平臺為例,以微服務(wù)框架為基礎(chǔ)設(shè)計運(yùn)行性能監(jiān)控系統(tǒng),可降低開發(fā)難度,促進(jìn)高成效開發(fā)。
運(yùn)行性能監(jiān)控系統(tǒng)簡稱APM,是為適應(yīng)日益復(fù)雜的應(yīng)用系統(tǒng)、減輕系統(tǒng)管理員壓力、提升監(jiān)控質(zhì)量而設(shè)計的新型系統(tǒng)。APM系統(tǒng)符合“端——端”業(yè)務(wù)監(jiān)控要求,以用戶體驗(yàn)為中心,管理順序是自上而下進(jìn)行管理,在IT運(yùn)維管理中具有先進(jìn)性。APM是IT運(yùn)維管理中的新型管理模式,可有效監(jiān)控微服務(wù)IT應(yīng)用狀態(tài),促進(jìn)系統(tǒng)優(yōu)化,持續(xù)完善應(yīng)用體驗(yàn),提高系統(tǒng)可靠性,促進(jìn)人性化系統(tǒng)設(shè)計,同時對TCO降低有積極意義。
APM系統(tǒng)主要分設(shè)三個模塊,分別負(fù)責(zé)性能多級監(jiān)控、故障定位和性能全維度優(yōu)化。應(yīng)用APM可促進(jìn)通訊協(xié)議全方位覆蓋,進(jìn)行7層管控,通過監(jiān)控與模擬事務(wù)處理過程促進(jìn)“點(diǎn)——點(diǎn)”模式監(jiān)測,精準(zhǔn)監(jiān)測組件。可快速檢出系統(tǒng)故障,制定修復(fù)方案或?qū)嵤┬迯?fù)。系統(tǒng)中可精準(zhǔn)展示系統(tǒng)資源占用水平,結(jié)合系統(tǒng)性能分析,制定專家級完善方案[2]。
微服務(wù)模式應(yīng)用開發(fā)更具先進(jìn)性與科學(xué)性,當(dāng)前業(yè)務(wù)系統(tǒng)設(shè)計對微服務(wù)架構(gòu)的應(yīng)用價值較認(rèn)可,架構(gòu)應(yīng)用較多,在此影響下應(yīng)用性能管理呈現(xiàn)更加復(fù)雜的相關(guān)性。在系統(tǒng)設(shè)計中,應(yīng)達(dá)到持續(xù)交付要求,以優(yōu)化服務(wù)體驗(yàn)為核心。微服務(wù)開發(fā)需要動態(tài)進(jìn)行,應(yīng)用規(guī)模通常較大,導(dǎo)致需要投入更多成本收集數(shù)據(jù)。監(jiān)控數(shù)據(jù)對數(shù)據(jù)分析過程影響力增強(qiáng)。此外,關(guān)聯(lián)分析與可視化數(shù)據(jù)分析可行性提升。
以微服務(wù)架構(gòu)為基礎(chǔ)設(shè)計應(yīng)用性能監(jiān)控系統(tǒng)即微服務(wù)APM時,應(yīng)先行設(shè)計總體架構(gòu)(設(shè)計流程見圖1)。數(shù)據(jù)是性能監(jiān)控的核心,針對數(shù)據(jù)應(yīng)設(shè)計采集、顯示、存儲和處理分析等系統(tǒng)。微服務(wù)屬于云服務(wù)范疇,為保證云服務(wù)實(shí)施需要建設(shè)云基礎(chǔ)設(shè)施。需要設(shè)置基礎(chǔ)硬件,對信息資源進(jìn)行集中式調(diào)控,實(shí)施云操作控制,之后創(chuàng)建負(fù)載均衡組件并編制內(nèi)容分發(fā)網(wǎng)絡(luò)。

圖1:系統(tǒng)設(shè)計流程
監(jiān)測和評價微服務(wù)APM服務(wù)體驗(yàn),進(jìn)行多協(xié)議運(yùn)行部署,設(shè)計平臺代理程序,協(xié)調(diào)探針、自動機(jī)器人等。進(jìn)行該層面設(shè)計可促進(jìn)APM價值提升。該設(shè)計可保證最終用戶體驗(yàn)處于端口鏡像模式中代理部署風(fēng)險降低,相關(guān)調(diào)查顯示,此種設(shè)計可將風(fēng)險發(fā)生率控制在20%左右。通過此種設(shè)計可顯著提高部署速度,2天內(nèi)即可完成。
(1)構(gòu)建應(yīng)用運(yùn)行框架,完善微服務(wù)過程模式、路徑快照、監(jiān)控云。明確拓?fù)浣Y(jié)構(gòu)與服務(wù)依賴關(guān)系,確定程序架構(gòu)邏輯關(guān)系。
(2)微服務(wù)自定義、URL地址自定義,高級別分組(即8~12級分組)。篩選與微服務(wù)適配的服務(wù)等級協(xié)議指標(biāo),構(gòu)建微服務(wù)信任關(guān)系,從而使系統(tǒng)可生成預(yù)警趨勢報告信息[3]。
(3)監(jiān)控系統(tǒng)深層信息。監(jiān)控運(yùn)維時間與運(yùn)行信息、評價系統(tǒng)應(yīng)用狀態(tài)、中間件情況,設(shè)計診斷監(jiān)視系統(tǒng),創(chuàng)建智能數(shù)據(jù)庫。審查代碼科學(xué)性,完善解決方案,保證系統(tǒng)性能測試中數(shù)據(jù)精準(zhǔn)無誤,消除影響系統(tǒng)高效率運(yùn)行的消極因素。
(4)分析運(yùn)行性能數(shù)據(jù)并形成報告。應(yīng)用原始信息和性能相關(guān)信息進(jìn)行系統(tǒng)優(yōu)化。加強(qiáng)服務(wù)級管理、基線管理,評價產(chǎn)能設(shè)計科學(xué)性并對癥完善設(shè)計,預(yù)測系統(tǒng)運(yùn)行趨勢等。
微服務(wù)APM設(shè)計應(yīng)用中APM探針是重要構(gòu)成,探針性能與監(jiān)控數(shù)據(jù)精準(zhǔn)度密切相關(guān)。在此類系統(tǒng)中所用探針通常為Java結(jié)構(gòu),此種結(jié)構(gòu)設(shè)計可促進(jìn)系統(tǒng)性能持續(xù)優(yōu)化,實(shí)現(xiàn)無盲點(diǎn)監(jiān)控,動態(tài)檢出微服務(wù)拓?fù)洌ㄎ恍阅墚惓#€可根據(jù)系統(tǒng)應(yīng)用需求設(shè)計自定義事務(wù),進(jìn)行定向監(jiān)控,強(qiáng)化監(jiān)控性能,高質(zhì)量監(jiān)測安全事件,對應(yīng)用漏洞進(jìn)行精準(zhǔn)定位。
系統(tǒng)內(nèi)組件節(jié)點(diǎn)相互調(diào)用過程中,需要對應(yīng)用級別信息進(jìn)行記錄、傳遞和標(biāo)記,以此維持組件邏輯關(guān)系。當(dāng)節(jié)點(diǎn)與節(jié)點(diǎn)連接中通信協(xié)議采用HTTP2時,該協(xié)議頭中會做出標(biāo)記。該技術(shù)即標(biāo)記樹跟蹤技術(shù)。技術(shù)相關(guān)解釋如表1。在應(yīng)用該跟蹤技術(shù)時,探針對服務(wù)器中新觸發(fā)條件進(jìn)行檢測識別,并賦予其應(yīng)用層標(biāo)記。

表1:標(biāo)記含義
微服務(wù)是進(jìn)行軟件開發(fā),根據(jù)服務(wù)預(yù)期設(shè)計小型功能區(qū)塊。在其模塊設(shè)計中,區(qū)塊功能單一且獨(dú)立,執(zhí)行不同職能,通過組合小模塊最終實(shí)現(xiàn)大型應(yīng)用程序構(gòu)建,即形成運(yùn)行性能監(jiān)控系統(tǒng)。該系統(tǒng)具有復(fù)雜的功能。采用常規(guī)應(yīng)用程序進(jìn)行監(jiān)控系統(tǒng)設(shè)計時,多為單體結(jié)構(gòu),內(nèi)部模塊為整體式設(shè)計,而微服務(wù)設(shè)計理念下創(chuàng)建的監(jiān)控系統(tǒng),其內(nèi)部服務(wù)模塊具有獨(dú)立性,防止服務(wù)之間互相牽連,運(yùn)行具有自主性。因?yàn)榫哂写朔N優(yōu)勢,故而單個服務(wù)發(fā)生故障不會干擾其他同級服務(wù),可保證系統(tǒng)穩(wěn)定性。在性能監(jiān)控中融合微服務(wù)應(yīng)用系統(tǒng)是時代發(fā)展要求對監(jiān)控設(shè)計的客觀要求。在構(gòu)建APM系統(tǒng)時,應(yīng)采用閉環(huán)設(shè)計,分設(shè)開發(fā)模塊、部署模塊、監(jiān)控模塊、預(yù)警報告模塊和故障報告模塊。利用微服務(wù)架構(gòu)聯(lián)合上述模塊,通過平臺統(tǒng)一監(jiān)控,微服務(wù)組件分別進(jìn)行信息收集,然后集中進(jìn)行數(shù)據(jù)分析,維持系統(tǒng)平穩(wěn)運(yùn)行。APM分析和報告數(shù)據(jù)時,需要保證數(shù)據(jù)得到及時處理和精準(zhǔn)分析。獲取數(shù)據(jù)后應(yīng)立即進(jìn)行處理,同步傳送數(shù)據(jù),保證數(shù)據(jù)處理模塊第一時間得到性能監(jiān)控系統(tǒng)收集的數(shù)據(jù)并進(jìn)行處理操作。系統(tǒng)收集的性能數(shù)據(jù)通常無直接應(yīng)用價值,而必須經(jīng)過分析得到深層信息,結(jié)合潛在信息、數(shù)據(jù)變化規(guī)律等促進(jìn)系統(tǒng)預(yù)測,實(shí)現(xiàn)數(shù)據(jù)價值。大數(shù)據(jù)分析處理后厘清數(shù)據(jù)內(nèi)部邏輯,并將其轉(zhuǎn)換為清晰圖表。
微服務(wù)框架可分為多個組件部分,各組件具有高內(nèi)聚和低耦合的性能特點(diǎn)。基于此背景,組件收集數(shù)據(jù)后對數(shù)據(jù)進(jìn)行整合和過濾,數(shù)據(jù)經(jīng)過處理呈現(xiàn)內(nèi)部邏輯,必須加強(qiáng)性能監(jiān)控。應(yīng)在系統(tǒng)中告警閾值參數(shù)進(jìn)行手動設(shè)置,預(yù)警報告信息豐富后,通過機(jī)器學(xué)習(xí)算法對相關(guān)閾值進(jìn)行動態(tài)調(diào)整,以保證閾值與業(yè)務(wù)系統(tǒng)應(yīng)用要求一致。發(fā)生預(yù)警報告時,應(yīng)根據(jù)預(yù)設(shè)規(guī)則對預(yù)警報告信息進(jìn)行去重和過濾,經(jīng)過篩選的信息對系統(tǒng)管理具有實(shí)用性。微服務(wù)APM創(chuàng)建后,可分析告警類別并對應(yīng)處理。結(jié)合機(jī)器學(xué)習(xí)分類算法,構(gòu)建時段與性能故障的邏輯關(guān)系,對未來告警信息可能性發(fā)生節(jié)點(diǎn)進(jìn)行智能預(yù)測,向系統(tǒng)管理員發(fā)出提前預(yù)警,促使系統(tǒng)增強(qiáng)主動防御功能。在微服務(wù)APM中設(shè)有工單系統(tǒng),可分類告警信息,評價告警危險級別,通過三色預(yù)警系統(tǒng)提升預(yù)警精度。系統(tǒng)設(shè)置中預(yù)留電話、短信或者郵件地址,告警信息通過指定方式傳達(dá),系統(tǒng)管理員根據(jù)告警信息精準(zhǔn)高效處理故障或系統(tǒng)異常[4]。
APM追蹤記錄全周期微服務(wù)負(fù)載,對微服務(wù)拓?fù)溥M(jìn)行宏觀敘述,微服務(wù)流追蹤可實(shí)現(xiàn)點(diǎn)到點(diǎn)精準(zhǔn)追蹤,并可定位故障和系統(tǒng)性能局限性。從微服務(wù)APM中篩選觸發(fā)條件,設(shè)計瀏覽界面服務(wù),以HTTP2協(xié)議為規(guī)則進(jìn)行觸發(fā),應(yīng)用觸發(fā)條件時,需要緩存服務(wù)器、后端計算系統(tǒng)和數(shù)據(jù)庫等支持,此外,在該協(xié)議支持下,第三方服務(wù)被Restful接口調(diào)用,在不同應(yīng)用系統(tǒng)中收到觸發(fā)條件并予以響應(yīng)。在此過程中,微服務(wù)單個性能缺陷可能引起宏觀系統(tǒng)運(yùn)行滯后,符合木桶效應(yīng)特點(diǎn),APM追蹤和記錄系統(tǒng)負(fù)載情況,從而對微服務(wù)流活動過程進(jìn)行還原,從而找出故障點(diǎn),深挖性能局限性,精準(zhǔn)鎖定性能突破方向。
綜上所述,微服務(wù)性能監(jiān)控推動業(yè)務(wù)系統(tǒng)監(jiān)控漸趨完善,性能監(jiān)控體系發(fā)生結(jié)構(gòu)變化。在數(shù)據(jù)量持續(xù)增長影響下,監(jiān)督和無監(jiān)督學(xué)習(xí)在微服務(wù)APM中均有應(yīng)用可行性,可更快識別系統(tǒng)問題,促進(jìn)缺陷定位,縮短性能異常排查時間,提高性能完善效率。收集APM系統(tǒng)提供的告警數(shù)據(jù),構(gòu)建專家建議庫,可促進(jìn)APM系統(tǒng)異常應(yīng)對性能優(yōu)化,促進(jìn)系統(tǒng)智能化。