徐晟

[摘 ? ?要] 生產系統的容量水平是系統運行質量的重要組成,也是商業銀行科技運維能力的綜合體現之一。這些年來隨著信息技術快速發展,各行各業已高度依賴大型、復雜的軟硬件系統運作。這些系統在運行過程中,每時每刻產生大量運行數據,如CPU、內存、文件系統、TPS、交易耗時、磁盤IO等。隨著系統復雜度急劇增長、基礎架構規模愈發龐大,面對海量的運維數據,傳統基于手工統計的容量管理方式已無法滿足需要,利用大數據、智能運維(AIOps)等技術,將有效促進容量管理向自動化、智能化轉變。基于上述背景,文章提出商業銀行基于大數據技術的容量管理工作思路和探索實踐,供借鑒。
[關鍵詞] 大數據;容量管理;研究
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 19. 058
[中圖分類號] F832 ? ?[文獻標識碼] ?A ? ? ?[文章編號] ?1673 - 0194(2020)19- 0136- 03
1 ? ? ?容量管理定義
在信息服務領域,國際標準化組織(ISO)推出了基于IT服務的最佳實踐準則(ISO 20000),其核心是在企業內部建立IT服務管理體系(ITSM),開展事件管理、問題管理、配置管理、變更管理等標準化服務流程。ITSM強調人員、流程、技術的有機結合。目前大部分企業的運維管理體系參照了ITSM的設計理念。其中,容量管理(Capacity Management)是IT服務管理體系中的重要組成部分。
容量管理指為達到既定的IT服務水平,對信息系統硬件、軟件的IT技術組件性能和容量方面進行的管理活動。容量管理的范疇包含了對信息系統的應用程序、系統軟件(操作系統、數據庫、中間件)、硬件、IT基礎設施資源池(虛擬機、容器、備份、SAN網、存儲)、網絡和機房場地等方面的性能和容量進行計劃、監控、評估及改進工作。
容量管理涵蓋信息系統性能和容量兩方面。其中,性能指信息系統在提供對外服務時的運行處理效率,容量指信息系統在運行過程中所能承載容納的最大資源總量。容量管理的目標是為了確保信息系統在運行過程中,其基礎軟硬件及配套運行環境的性能容量可以滿足企業當前和未來的業務發展需要。
容量管理總體框架一般涵蓋規章制度、組織架構、管理對象、運作流程、技術支撐等方面。文章重點討論與大數據技術相關的工具平臺、智能算法等內容。
2 ? ? ?系統架構設計
隨著大數據技術的廣泛運用,容量管理的工作重心已逐漸由原來的“流程服務”轉變為“技術管理”,即運用技術手段實現技術管理。結合商業銀行同業調研情況,在建設容量管理系統時,可以將容量相關數據的存儲和計算與具體應用場景解耦,容量數據借助分布式和大數據技術實現統一存儲和計算。同時,結合機器學習算法實現容量波動檢測、趨勢預測等功能。通過API服務網關進行數據交互,在應用層實現具體的應用場景,這樣可以較為靈活地滿足個性化管理需要。具體的技術架構如圖1所示。
在這種建設模式下,容量數據的采集、清洗、計算、存儲、分析等是關鍵技術應用。在企業中,容量數據通常由運維監控工具采集或產生,以往的監控工具由于平臺性能、存儲容量等因素,往往不會長期保存監控數據,這使得支撐容量管理工作的核心數據資產缺失,只能借助管理流程來補強。這些年來隨著大數據技術的出現,正好彌補了這一不足。
如圖2所示,容量管理運維大數據平臺由自研組件和開源組件搭建完成,以保證既充分利用開源大數據組件處理豐富的API接口,同時又能夠根據各組件使用當中存在的不足進行結合實際場景需求的定制優化。
數據采集層主要由自研采集組件實現,組件包括采集網關、采集器和采集路由三部分,具有兼容多種平臺、采集速率高、采集占用資源可控、支持采集類型豐富、自恢復能力強等特點。
數據處理層利用kafka streaming以及spark streaming。kafka作為數據總線確保了數據傳輸的高效和穩定。自研接口程序能夠分發數據至不同存儲介質,兼容多種大數據存儲。
數據存儲層分為近現存儲和長期存儲,近現存儲由ES實現,其上封裝SPL查詢語法,能夠實現近期數據(如3個月內)毫秒級響應。長期存儲將數據存放到HIVE等數倉中,為離線批量計算提供基礎數據。采用MongoDB存儲主機應用關聯關系和配置信息。
數據分析層包含數據分析平臺與數據分析算法。Zeppelin支持Python等數據分析語言,能夠實現算法構建和模型訓練。通過自研算法為運維人員提供靈活的數據分析功能。Tableau能夠對接多種數據源,進行快速、實時的數據探索,并形成可視化報告。
3 ? ? ?智能算法應用
這些年來商業銀行數據中心已基本實現了對系統性能和容量數據、系統運行日志、業務日志等數據的采集,并對這些指標設置簡單的判斷規則進行監控警告。但是,其中的大多數規則都是通過固定閾值設置的,因此無法根據容量歷史的變化情況和現狀進行智能化的判斷預警,對容量規劃的支撐也較少,且規則調整需要大量人工干預。
本文從容量管理具體場景出發,結合實踐,針對波動檢測、趨勢預測、容量規劃等應用討論相關的智能運維算法。
3.1 ? 波動檢測
波動檢測重點關注系統運行過程中的大幅變化,針對容量指標數據的突增或突降進行捕獲和分析。借助波動檢測算法,可以從數據中找到不符合預期的系統運行狀態,這些數據也被稱為異常點或離群點。系統運行波動較多并不能直接得出系統運行異常的結論,可能由于變更、事件、外部原因(比如營銷活動)導致,但過多的波動存在運行風險,需要進一步關注和評估。
波動檢測算法的核心是找出“離群點”,也就是分布稀疏且離密度高的群體較遠的數據,通常可以使用基于連續數據的無監督學習算法,比如孤立森林、K-Means、DBSCAN等聚類算法。另外針對不同類型指標,波動檢測算法的選取也有不同。比如,針對周期型指標,可以選擇基于時間序列分解、Holt-Winters算法;針對平穩型指標,可以使用靜態閾值、加權移動平均、指數移動平均等算法;針對非平穩型指標,則可以使用基于極限理論、小波變換、動態閾值等算法進行檢測。
3.2 ? 趨勢預測
趨勢預測重點關注的是中長期容量數據趨勢變化,由于是基于歷史數據做出的預測,可能無法預見到事件故障、變更維護、業務營銷等特定因素或計劃外工作導致的容量趨勢變化,預測結論可用于輔助運維決策。
常見的趨勢預測算法有線性回歸、ARIMA、Prophet、LSTM等,可用于對交易量、文件系統使用率、數據庫表空間、網絡線路流量等容量指標進行預測。其中,線性回歸是一種線性模型,其原理是嘗試找到一條直線(或一個超平面),使得預測值與真實值之間的誤差最小化。ARIMA即差分移動平均自回歸模型,是經典且常見的時間序列預測分析方法。ARIMA有三個重要參數(p,d,q),其中p為自回歸項數,q為滑動平均項數,d為使之成為平穩序列的差分階數。Prophet是Facebook開源的一款基于python和R的時序數據預測算法包,通過分析時序數據的周期性(使用傅立葉級數建立周期模型)、趨勢性(分段線性擬合)、節假日、異常值等特征來對數據進行預測。LSTM即長短時記憶網絡,是一種以遞歸神經網絡(RNN)為基礎并改良的深度學習模型,其通過三門(輸入門、遺忘門、輸出門)來模擬對時序數據前后聯系的處理,解決了人工神經網絡結構中長時間記憶的問題。
3.3 ? 容量規劃
容量規劃需要根據業務需求,對未來做出合理的規劃。其可用于:(1)指導信息系統制定容量擴容、縮容計劃,以便及時安排軟硬件資源采購。(2)評估某類業務場景(或交易鏈路)上涉及系統的性能容量瓶頸,找到短板并針對性地制定擴容方案。
在進行容量規劃時,需要充分考慮歷史數據并進行推演。以往由于生產環境的系統關聯關系極其復雜,容量規劃工作多為人工操作,這不僅需要大量人力投入,同時取決于運維人員自身能力。引入容量規劃算法的目標,是替代原本依靠經驗進行容量規劃和測算的方式。容量規劃算法基于波動檢測和趨勢預測算法基礎上進行構建,此外還需進一步解決以下兩個問題。
第一,指標關聯問題。根據木桶原理,在大型服務系統中,只要存在任何一處系統短板,整條交易鏈路的對外服務就會受到影響。因此我們需要構建系統指標間的關聯關系,并對大量無效的指標聯動進行剪枝。指標關聯性分析可以使用Pearson線性相關系數,也稱線性相關系數、皮氏積矩相關系數,該數值用于衡量兩個隨機變量之間的線性相關程度。根據取值,可以判斷兩組隨機變量是否具有高度線性相關性。
第二,多指標測算問題。比如,對于一條業務場景交易鏈路,我們需要找出到底是A系統的CPU使用率將在未來達到瓶頸,還是B系統的TPS近期會達到理論極值。然后根據分析結果,提前制定針對性的擴容方案。為了解決這一問題,可以將所有的指標關聯關系視作一個集合,使用動態規劃方法尋找方程組的最優解,并根據每個指標的上限,定位整條交易鏈路上的短板和瓶頸。
以上討論了幾個主要的容量管理場景和算法應用。需要說明的是,算法落地效果還會受到以下兩方面影響:一是數據質量,可通過運維工具總體架構設計、運維數據治理等手段提高數據的準確性和實效性;二是應用場景,盡管算法本身具備通用性,但是不同算法適用于不同的應用場景。算法落地時要結合實際效果進行調整并不斷打磨。
4 ? ? ?未來展望
本文重點闡述商業銀行大數據技術下容量管理工作研究與實踐。由于容量管理工作依賴大量的生產運行數據,是大數據技術和智能運維(AIOps)落地的重要場景,云計算、5G技術的發展也給容量管理工作帶來諸多挑戰。隨著運維監控、自動化、大數據等工具的不斷成熟,容量管理正在逐步向自動化、智能化轉變,未來將結合實踐不斷優化工作機制,主動迎接業務和技術快速發展給運維帶來的挑戰。
主要參考文獻
[1]ISO/IEC 20000-1,Service Management Systems - Requirements[S]. Information Technology - Service Management,2018.
[2]高效運維社區AIOps標準工作組.企業級別AIOps實施建議白皮書[EB/OL].2018-04-13.
[3]P Linnea Rudenius,Moa Persson,Anomaly Detection and Fault Localization An Automated Process for Advertising Systems[D].Chalmers tekniska hogkola,2018.