黃偉峰
摘 要: 數(shù)據(jù)中心運維自動化系統(tǒng)建設(shè),基于數(shù)據(jù)中心行業(yè)的特點和需求,能夠自適應(yīng)混合環(huán)境,支持快速故障恢復(fù),按照不同運維場景實現(xiàn)自定義的運維操作,促進了數(shù)據(jù)中心的敏捷運維,推動數(shù)據(jù)中心向運維規(guī)范化、自動化、智能化轉(zhuǎn)型。
關(guān)鍵詞: 數(shù)據(jù)中心; 自動化; 敏捷運維; 故障恢復(fù); 轉(zhuǎn)型
中圖分類號:TP399 文獻標(biāo)志碼:A 文章編號:1006-8228(2017)05-83-04
Construction of data center automation system for agile operation
Huang Weifeng
(Shanghai Pudong Development Bank, Information Technology Department, Shanghai 200000, China)
Abstract: The automatic system for data center operation and maintenance is constructed based off the characteristic and requirement of the data center industry, the system can support hybrid environment adaptively, support fast fault recovery, and achieve custom operation according to the different scenario, which promotes the agile operation of the data center, and promotes transformation of the operation and maintenance of data center to standardization, automation and intelligent.
Key words: data center; automation; agile operation; fault recovery; transformation
0 引言
伴隨企業(yè)業(yè)務(wù)系統(tǒng)規(guī)模迅速擴大,數(shù)據(jù)中心正面臨系統(tǒng)架構(gòu)集群化資源化、應(yīng)用架構(gòu)面向服務(wù)松耦合、業(yè)務(wù)連續(xù)性要求日益嚴苛、人均運維工作量持續(xù)增長等發(fā)展趨勢。傳統(tǒng)運維在系統(tǒng)量日益增長的現(xiàn)狀下顯現(xiàn)出效率低、成本高、風(fēng)險大等各種問題,浦發(fā)銀行因此開展面向敏捷運維的運維自動化系統(tǒng)建設(shè)(以下簡稱運維自動化系統(tǒng)),通過該系統(tǒng),對各類IT資源實現(xiàn)自動化裝機、日常巡檢、應(yīng)用發(fā)布自動化、個性化運維調(diào)度、自動化打補丁、主機信息查詢、合規(guī)檢查自動化、配置收集自動化、故障自動診斷與處置等功能,以提高基礎(chǔ)資源和應(yīng)用部署的自動化水平,實現(xiàn)快速交付、動態(tài)調(diào)整、彈性部署,降低人工操作風(fēng)險,提升風(fēng)險管控技術(shù)能力,實現(xiàn)數(shù)據(jù)中心的敏捷運維。
1 運維自動化系統(tǒng)的技術(shù)架構(gòu)
數(shù)據(jù)中心運維自動化系統(tǒng)的整體物理架構(gòu)如圖1所示[5]。
運維自動化系統(tǒng)架構(gòu)中包括服務(wù)器自動化組件、網(wǎng)絡(luò)自動化組件、自動化引擎組件、故障恢復(fù)組件、數(shù)據(jù)采集、報表組件和管理門戶共六個部分。
故障恢復(fù)組件,通過與監(jiān)控平臺聯(lián)動,抽取故障信息,通過匹配微服務(wù)知識庫,觸發(fā)高性能數(shù)據(jù)引擎獲得故障現(xiàn)場快照,并執(zhí)行相應(yīng)操作,達到快速恢復(fù)生產(chǎn)問題的效用。該組件包括的高性能搜索引擎可以在海量數(shù)據(jù)中快速定位故障,并把非優(yōu)化的數(shù)據(jù)通過可視化圖表的方式展現(xiàn)在前臺,為快速鎖定生產(chǎn)問題提供便捷通道。該組件支持微服務(wù)知識庫和微服務(wù)應(yīng)用的方式進行靈活的場景拓展,實現(xiàn)一個個面向具體運維場景的故障恢復(fù)自動化。
2 運維自動化系統(tǒng)的技術(shù)特點
針對數(shù)據(jù)中心運維現(xiàn)狀,我們在前期認真調(diào)研了實際工作中的各種需求,設(shè)計開發(fā)了本系統(tǒng)。目前本系統(tǒng)已承載各種各樣的IT基礎(chǔ)設(shè)施運維,包括網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用等,通過本系統(tǒng)實現(xiàn)對這些基礎(chǔ)設(shè)施統(tǒng)一操作?,F(xiàn)就本系統(tǒng)實現(xiàn)的幾個關(guān)鍵技術(shù)特點進行分析和總結(jié)。
2.1 自適應(yīng)混和環(huán)境
運維自動化系統(tǒng)后臺邏輯架構(gòu)設(shè)計理念之一是能夠自適應(yīng)混合IT軟硬件環(huán)境,涉及三方面核心服務(wù)。
⑴ 分布式自動發(fā)現(xiàn)(眼)
自動發(fā)現(xiàn)的數(shù)據(jù)來源有兩部分,一部分是如圖2下面區(qū)域所示,通過部屬于各個網(wǎng)段的衛(wèi)星節(jié)點,自動發(fā)現(xiàn)和納管新上線服務(wù)器,自適應(yīng)多種機型以及其上多類軟件;另一部分是如圖2左邊區(qū)域所示,通過豐富的平臺接口,獲取周邊關(guān)聯(lián)系統(tǒng)信息,采集來的數(shù)據(jù)經(jīng)過匯聚、清洗、比對與合成,進入到配置庫中。
⑵ 自適應(yīng)規(guī)則匹配(腦)
系統(tǒng)中預(yù)定義了四種自適應(yīng)規(guī)則,通過前一步分布式自動發(fā)現(xiàn)得到的配置數(shù)據(jù),根據(jù)不同軟硬件類型和不同版本,選用組件庫中的模塊組件,自適應(yīng)地開展裝機、巡檢、配置收集、軟件發(fā)布。
⑶ 行為驅(qū)動調(diào)度(手)
根據(jù)自適應(yīng)規(guī)則匹配服務(wù)結(jié)果,調(diào)度相應(yīng)的模塊組件,驅(qū)動執(zhí)行。
2.2 支持快速故障恢復(fù)
運維自動化系統(tǒng)支持上百臺乃至更大規(guī)模集群的分鐘級故障快速診斷與恢復(fù)。
基于大數(shù)據(jù)技術(shù),將各方面運維數(shù)據(jù)采集、關(guān)聯(lián)、統(tǒng)計分析和可視化展現(xiàn),在海量數(shù)據(jù)中快速定位故障關(guān)鍵信息。另外,基于預(yù)定義的故障處理規(guī)則,自動識別故障場景告警特征[6],選擇對應(yīng)的故障修復(fù)程序以及事后檢查程序,調(diào)度執(zhí)行。
系統(tǒng)基于微服務(wù)的系統(tǒng)架構(gòu),實現(xiàn)功能解耦,數(shù)據(jù)采集、傳輸、緩存、索引等均采用全自動化方式設(shè)計和實現(xiàn)。提供充分的第三方接口,可便捷的拓展新的數(shù)據(jù)分析和故障恢復(fù)模型。
系統(tǒng)對復(fù)雜的運維大數(shù)據(jù)流程進行了封裝,提供可視化的云服務(wù)給用戶。系統(tǒng)利用高性能運維數(shù)據(jù)采集引擎收取節(jié)點相關(guān)信息,把非結(jié)構(gòu)、半結(jié)構(gòu)的數(shù)據(jù)轉(zhuǎn)換為可視化圖表和表格,在高性能搜索引擎下,在海量數(shù)據(jù)中快速定位故障關(guān)鍵信息,系統(tǒng)基于預(yù)先定義的故障處理規(guī)則,主動判斷匹配、協(xié)同故障場景配置參數(shù),選擇對應(yīng)的故障修復(fù)程序以及事后檢查程序[4],調(diào)度執(zhí)行,執(zhí)行結(jié)果和檢查結(jié)果輸出返回給監(jiān)控報警系統(tǒng)關(guān)聯(lián)告警信息。執(zhí)行決策過程支持人工介入或全自動兩種方式。
該特點適用于故障特征明顯、監(jiān)控告警定位精準、配套處理步驟明確的場景。
對于無法通過監(jiān)控平臺直接定位到故障根源的場景,需登錄上百臺乃至更大規(guī)模集群再逐臺排查的方式顯然是無法接受的,系統(tǒng)支持一鍵式故障快照收集、自動問題診斷定位和自動深入分析,即發(fā)生故障時,運維人員一鍵執(zhí)行后:
第一步,快照收集。由運維自動化系統(tǒng)調(diào)度和執(zhí)行部署于被管節(jié)點的信息收集器,將近期操作系統(tǒng)性能容量(CPU、內(nèi)存、DISK、FS空間)和日志數(shù)據(jù)、中間件性能容量(應(yīng)用吞吐率、執(zhí)行線程使用率、JDBC使用率)和日志、線程(threaddump)、進程(lsof)和內(nèi)存堆棧(heapdump)等,匯總歸集在管理節(jié)點上,這些收集信息的腳本、命令和工具在自動化裝機階段已經(jīng)包含在裝機和軟件部屬的組件當(dāng)中、與當(dāng)前應(yīng)用場景無縫銜接。
第二步,自動診斷。通過部屬于管理節(jié)點上的分析器,對服務(wù)器和中間件性能容量數(shù)據(jù)排序、對每臺服務(wù)器操作系統(tǒng)和每個中間件server日志報錯總數(shù)進行統(tǒng)計、對未達報警級別的敏感關(guān)鍵字日志進行統(tǒng)計,按TOP排名列出可能是故障根源的可疑節(jié)點,以便在上百臺機器中定位到問題節(jié)點[2]。
第三步,自動分析?;谝讯ㄎ豢梢晒?jié)點,在已匯總歸集的故障現(xiàn)場快照中進一步分析,形成分析結(jié)果。
2.3 服務(wù)功能組件化
運維過程中,用戶的需求時刻在變化,比如圖3中這位運維人員遇到的四個需求,這些需求在系統(tǒng)建設(shè)之初是難以全部考慮到的,即使考慮到,固化的預(yù)定義功能也無法靈活的根據(jù)需求場景快速調(diào)整。為此,系統(tǒng)支持用戶自助式在前端維護界面自定義任務(wù)并按需調(diào)度、支持在系統(tǒng)后臺通過拖拽拼裝組件模塊方式快速滿足新需求。
服務(wù)功能組件庫的搭建分為三步。
第一步,預(yù)定制化了2000余個運維腳本,包括shell\bat\python\vbs等,支持在Windows、HPUX、Linux、AIX等多個操作系統(tǒng),另外用戶也可以在前端維護界面自助式自定義腳本并按需定時調(diào)度。
第二步,將預(yù)定制的運維腳本封裝為結(jié)構(gòu)化、標(biāo)準化的組件模塊,供后續(xù)重用。
第三步,通過這些組件之間的排列組合、定義組件之間的關(guān)系,形成面向操作流程的500余項服務(wù)流。
例如,AIX操作系統(tǒng)的安裝涉及到將SHELL腳本以及配置參數(shù)封裝為組件庫中的獲取LPAR狀態(tài)[1]、檢查LPAR狀態(tài)、安裝AIX、配置等等組件,對這些組件拼接關(guān)聯(lián),實現(xiàn)整個AIX操作系統(tǒng)安裝的服務(wù)流。
3 實現(xiàn)敏捷運維的應(yīng)用場景
基于運維自動化系統(tǒng)的技術(shù)特點,以促進敏捷運維的要求,我行將自動化技術(shù)廣泛運用于數(shù)據(jù)中心的各類運維場景。
3.1 運維過程自動化
運維自動化系統(tǒng)目前實現(xiàn)了健康巡檢自動化、安裝部署自動化、合規(guī)檢查自動化、配置收集自動化、應(yīng)用發(fā)布自動化、自動化流程引擎、報表、管理門戶、用戶、角色和權(quán)限管理、操作記錄和審計等功能性目標(biāo),還包括高可用架構(gòu)支持、系統(tǒng)架構(gòu)支持、受管資源支持及系統(tǒng)整合等非功能性目標(biāo),用于提高整體運維水平和效率。
3.2 運維流程標(biāo)準化
系統(tǒng)支持各類運維流程,如健康巡檢、合規(guī)檢查、安裝部署、配置收集和故障處置,均根據(jù)實際運維需求對不同操作系統(tǒng)、數(shù)據(jù)庫、中間件、服務(wù)器等基礎(chǔ)軟硬件資源進行操作,為了能夠滿足組件標(biāo)準化,訪問接口標(biāo)準化,運維標(biāo)準化和交付標(biāo)準化的要求,通過分布式部署的采集引擎,定時將所需要的配置信息統(tǒng)一格式化后通過預(yù)封裝的安全通道推送給預(yù)定義的基于POI技術(shù)的分析引擎,經(jīng)過分析引擎中定義的主機信息關(guān)聯(lián)算法,將每臺主機的相關(guān)硬件,系統(tǒng),軟件等信息根據(jù)主機名和所屬區(qū)域主鍵進行關(guān)聯(lián)后按照標(biāo)準格式統(tǒng)一進行存儲;并且通過前臺程序的再一次根據(jù)業(yè)務(wù)流程模塊化封裝將這些信息,以提供前臺操作以最大的靈活性,使得日常運維操作日趨標(biāo)準和便捷。
3.3 運維調(diào)度個性化
為了支持用戶自定義運維操作,適用于各類個性化運維場景,并形成知識庫在管理界面可供所有用戶閱讀與調(diào)度。系統(tǒng)將用戶在界面上預(yù)定義的命令或腳本,通過解析引擎進行標(biāo)準化封裝,產(chǎn)生基于Unix或者Windows平臺的標(biāo)準化腳本,然后通過封裝與安裝在各納管機上代理程序的安全通道,將腳本通過加密算法加密壓縮,并發(fā)傳送給需要執(zhí)行的被納管機進行執(zhí)行,然后通過分布式部署在各個區(qū)域的衛(wèi)星節(jié)點服務(wù)器,統(tǒng)一收集相關(guān)結(jié)果信息或者文件,經(jīng)過分布式處理引擎,將數(shù)百乃至上千臺納管機上運行的結(jié)果文件進行統(tǒng)一標(biāo)準化處理后存入數(shù)據(jù)庫[3]。在前臺,用戶可以通過頁面展示,發(fā)送郵件或者導(dǎo)出文件等多種方式來查詢結(jié)果,這個功能基于標(biāo)準化,滿足個性化,在運維需求多樣化的背景下,最大程度提高了運維效率,提高了運維操作的便易性。
3.4 故障恢復(fù)快速化
運維自動化系統(tǒng)在集群中各節(jié)點分布式部署高性能數(shù)據(jù)采集引擎,將系統(tǒng)性能容量(CPU、內(nèi)存、DISK、FS空間)和日志數(shù)據(jù)、中間件性能容量(應(yīng)用吞吐率、執(zhí)行線程使用率、JDBC使用率)和日志、線程(threaddump)、進程(lsof)和內(nèi)存堆棧(heapdump)等信息匯總歸集在管理節(jié)點上,將非結(jié)構(gòu)、半結(jié)構(gòu)的數(shù)據(jù)轉(zhuǎn)換為可視化圖表和表格,在高性能搜索引擎下,在海量數(shù)據(jù)中快速定位故障關(guān)鍵信息,系統(tǒng)基于預(yù)先定義的故障處理規(guī)則,主動判斷匹配、協(xié)同故障場景配置參數(shù),選擇對應(yīng)的故障修復(fù)程序,以及事后檢查程序,調(diào)度執(zhí)行,執(zhí)行結(jié)果和檢查結(jié)果輸出返回給監(jiān)控報警系統(tǒng)關(guān)聯(lián)告警信息。采用微服務(wù)的方式提供定制化的場景實現(xiàn)生產(chǎn)的故障快速診斷和恢復(fù)功能,提高了生產(chǎn)系統(tǒng)應(yīng)急響應(yīng)能力。
4 系統(tǒng)效益
面向敏捷運維的自適應(yīng)運維自動化系統(tǒng)自2014年底上線,浦發(fā)數(shù)據(jù)中心技術(shù)人員在近千臺服務(wù)器上完成裝機或軟件部署任務(wù),健康巡檢腳本執(zhí)行頻次超過200萬次,主機信息查詢功能使用頻次上萬次,每日對數(shù)據(jù)中心全轄數(shù)千臺服務(wù)器開展配置信息自動化采集,不定期對關(guān)鍵三十余個系統(tǒng)開展應(yīng)用自動化變更,全年共計節(jié)省4900余人天。隨著數(shù)據(jù)中心生產(chǎn)設(shè)備規(guī)模不斷擴張、項目持續(xù)投產(chǎn)上線,系統(tǒng)將在數(shù)據(jù)中心生產(chǎn)運維過程中發(fā)揮越來越大的價值。
系統(tǒng)通過與監(jiān)控平臺聯(lián)動,實現(xiàn)故障的快速診斷和恢復(fù),支持部分故障場景實時自動恢復(fù),加快了故障信息收集和處置速度,提高運維過程中應(yīng)急響應(yīng)速度。
5 結(jié)束語
通過數(shù)據(jù)中心運維自動化系統(tǒng)建設(shè),使得數(shù)據(jù)中心運維成本顯著降低,減少人工操作的風(fēng)險,提升了風(fēng)險管控技術(shù)能力,更適應(yīng)金融行業(yè)的業(yè)務(wù)發(fā)展,推動數(shù)據(jù)中心向運維規(guī)范化、自動化、智能化轉(zhuǎn)型。
隨著自動化技術(shù)在數(shù)據(jù)中心的深入使用,對自動化系統(tǒng)也提出了更高的要求。比如應(yīng)用程序的變更管理流程如何與自動化系統(tǒng)有效銜接,如何借助運維大數(shù)據(jù)技術(shù)以進一步提前開展對生產(chǎn)預(yù)警的高效處置,這些是我們需要進一步研究的方向,相信自動化的持續(xù)運用能顯著促進數(shù)據(jù)中心的敏捷運維水平。
參考文獻(References):
[1] 劉天斯.Python自動化運維[M].機械工業(yè)出版社,2014.
[2] 王軍.LINUX系統(tǒng)命令及SHELL腳本實踐指南[M].機械工業(yè)出版社,2014.
[3] 陳吉平.構(gòu)建Oracle高可用環(huán)境:企業(yè)級高可用數(shù)據(jù)庫架構(gòu).實戰(zhàn)與經(jīng)驗總結(jié)[M].電子工業(yè)出版社,2008.
[4] 孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[J].計算機研究與發(fā)展,2013.50(1):146-169
[5] 楊寧,王磊.故障管理在IT運維中的應(yīng)用.信息技術(shù)與標(biāo)準化,2016.12:10-13
[6] Bill Franks,黃海,王悅譯.Opsware自動化系統(tǒng)管理員手冊[M].人民郵電出版社,2013.