劉 宇,王曉莉,高明星,王景艷
(中國鐵路信息技術中心,北京 100844)
鐵路信息系統運維經過多年發展取得了顯著成績,以信息技術服務管理(ITSM)為代表的監控系統建設相對成熟,基本建立了以信息技術架構庫(ITIL)為指導的規范化、流程化的運維體系,監控管理、配置管理、性能管理、流程管理等關鍵領域均通過自動化工具輔助運維,以保障業務可用性與運維服務管理[1]。隨著互聯網+、數字化轉型的深入發展以及云計算、大數據等新技術的廣泛應用,鐵路信息系統資源規模急劇增長,企業業務模式呈現敏態與穩態融合的趨勢,信息系統運維工作面臨巨大挑戰[2]。信息系統基礎設施規模的迅速發展,催生孤島式的運維腳本、運維工具,并逐步積累形成體系化的自動化執行能力,通過服務的方式統一發布,形成規范化的自動化服務體系,依靠人工智能(AI)技術在運維領域的實踐,迎來智能化運維的新時代,實現自動化的監控預警、配置采集、更新維護、分析預測等[3]。目前,鐵路信息系統運維自動化手段各自分散獨立,自動化、智能化水平不高,端到端的可視化程度不高,自動化操作未覆蓋全部運維流程,故障定位難度大,運維效率低,難以適應大規模數據中心集中安全運維的需要[4-5]。本文基于平臺即服務理念,設計適應鐵路需求的自動化運維平臺,通過構建運維自動化協同能力,提高運維質量,實現敏捷交付,提升數據中心整體運維工作的自動化水平。
鐵路信息系統自動化運維平臺屬于鐵路綜合運維管理平臺的核心組成部分,按照平臺即服務(PaaS)的設計理念[6],統一運維的基礎采控、數據計算、服務組件,使得上層的各類運維工具、場景、應用實現無縫打通和擴展,為運維管理的持續良性發展奠定基礎。
鐵路信息系統自動化運維平臺需要充分考慮與其他運維管理工具的聯動,實現監控管理、配置管理、流程管理與自動化的合理融合,遵循分布式、實時性、水平擴展等原則,采用分布式、實時計算、大數據分析等技術,解決傳統運維系統的性能瓶頸,滿足功能易于擴展、部署快速、彈性擴容等要求。
平臺總體架構如圖 1所示。

圖 1 平臺總體架構
數據中心監控、流程、配置管理數據庫(CMDB)等平臺,通過自動化平臺提供的標準接口進行深度對接,依托自動化的基礎平臺和操作引擎支持,充分發揮融合運維管理的聯動效果。
為提供較高的實時性能、處理性能、存儲效率和并發訪問能力,采用面向服務的體系結構(SOA)設計[7],平臺技術架構如圖2所示。

圖2 平臺技術架構
分布式采集控制采用代理和遠程的方式,進行數據的分布式采集和控制,可以通過多層匯聚方式,適應復雜的網絡環境。
(1)數據接入層:采用高度優化的數據接入模式,支持多種負載均衡策略進行擴展。
(2)數據緩沖層:采用分布式的緩存、高吞吐量數據隊列、事務性消息隊列的方式對數據進行實時緩存和轉發。
(3)數據處理層:采用數據實時處理和離線處理互聯網框架,對實時的數據流進行分析、加工處理,對定期的數據調度進行分布式計算和數據挖掘。
(4)數據存儲層:混合多種數據庫存儲,由數據存儲引擎進行統一管理。
(5)分布式服務管理:對數據接入、緩沖、處理、存儲的各個環節服務進行一致性管理,對各環節的組件進行統一參數管理。
平臺整體上包括基礎平臺、操作引擎、運維場景和平臺接口,功能架構設計如圖3所示。

圖 3 平臺功能架構
基礎平臺包括數據處理、統一采控和公共服務。數據處理完成數據的預處理、處理、存儲、分析、消費等,建立自動化統一的資源庫;統一采控,實現對被管資源的配置數據采集、配置變更和資源操作控制等;公共服務負責封裝接口,對外提供各類服務,包括作業調度、規則觸發和日志審計等服務。
3.1.1 統一采控
統一采控模塊主要負責提供各運維工具和被管設備資源之間聯絡通信的統一通道,并通過模塊和插件的技術讓自動化引擎自由擴展采控能力,無需關注底層的通信和調度技術,只需按照采控模塊約定的規范編寫采控腳本,并組織成策略下發給相應代理,對結果數據進行處理,即可完成機器數據采集、配置變更發布和資源操作控制。
3.1.2 數據處理
數據處理模塊包含自動化運維資源模型,記錄所有被管資源信息和所有歷史操作信息,并且能夠與CMDB進行雙向數據同步更新。此模塊包括數據預處理、處理、存儲、分析、消費等多個環節,實現自動化運維數據的流式處理,同時,也提供數據批量分析和統計功能。
3.1.3 公共服務
作業調度服務為自動化引擎提供統一的運維作業調度引擎服務,運維人員按規范組織好作業編排,即可交由作業引擎完成調度執行。規則觸發服務允許運維人員或其他應用程序設定規則,當系統達到設定的條件時,便會觸發特定的動作,自動完成預定的任務。日志審計服務主要為自動化運維平臺提供用戶操作過程日志記錄和集中審計的基礎能力,使上層應用通過統一的接口調用便能實現操作過程日志的存儲、分析和查詢等。
3.2.1 文件資源管理
文件資源管理模塊提供統一的文件資源存儲和管理能力,保存安裝包、配置文件等運維操作中需要使用到的文件,可以與企業現有FTP服務器集成,并提供Web界面的上傳、下載功能,同時,提供接口,實現操作腳本下載或上傳。
3.2.2 操作/腳本管理
操作是完成一個運維步驟的自動化實現,一個操作包括輸入參數、輸出參數和操作執行腳本。操作/腳本管理模塊提供操作定義和腳本的統一管理能力,并允許用戶通過Groovy、Python、Shell、PowerShell、VBS、Windows批處理等多種腳本語言進行操作擴展。
3.2.3 編排設計管理
運維操作編排是指為完成某些運維場景預先定義的流程,也就是標準操作流程,是執行時所需參數和一系列操作的有機組合。編排設計管理提供運維作業編排設計和管理的功能,運維技術專家可以通過該功能按運維場景的需要預先定義多個標準操作流程,發布給一線或二線運維人員使用。
3.2.4 定時調度管理
定時調度管理模塊需要支持設定操作或編排,設定定時作業時支持選擇編排或操作作為任務,并設定作業的相關參數值;支持啟停定時規則;支持查看定時策略執行狀態和歷史作業情況;支持設置周期性或單次執行策略模式。
3.2.5 作業執行干預
作業執行干預模塊提供作業執行的可視化展現和人工參與能力,以圖形化或表格化(對應表格化編排)的方式將作業的執行過程展示出來,并能動態實時地反饋執行結果,當出現異常或者執行到人工參與節點時,允許用戶通過界面方式參與。
3.2.6 作業歷史管理
作業歷史管理模塊提供作業執行歷史的統計和追溯能力,允許用戶查詢所有已經執行過的歷史作業,可以追溯到每個作業任務的具體執行過程、執行參數和執行過程日志,并提供一段時間內作業的執行歷史分析統計,不同狀態、時長的作業分布。
以部分典型運維場景為例說明自動化運維執行過程。
3.3.1 日常巡檢
日常巡檢是指按一定的周期檢查服務器、操作系統、中間件和數據庫的關鍵運行指標,并根據巡檢結果生成巡檢報告,當出現異常時進行預警,以便及時分析原因,尋找解決辦法,避免故障的發生。
3.3.2 業務升級
業務升級主要針對業務軟件以及常規應用的變更,包括數據庫、中間件等資源變更。業務軟件的升級需要結合業務架構、部署情況、與其他業務的關聯等特性進行定義,制定完善的升級編排,包括升級時間、備份和回退方案、檢查方案等。
3.3.3 備份清理
日常清理自動化通過自動化工具實現對日志和過程數據的自動化清理,運維人員根據業務系統的維護指南,在自動化運維工具上設置定時清理策略,當達到一定條件時便自動進行清理,保證業務系統的穩定高效運行。
3.3.4 安全合規檢查
安全合規指檢查操作系統或中間件、數據庫的安全策略設置是否滿足要求,如操作系統的賬號口令復雜度、口令更換周期、登錄控制策略、核心文件權限等是否滿足要求,平臺應內置常規的安全檢查規則,并允許運維人員增加或調整。檢查完成后需生成合規檢查報告,當發現異常時通知運維人員及時處理。
平臺接口包括服務接口提供和外部接口調用。通過服務接口提供,自動化運維平臺能將自身的編排發布為服務供客戶、業務人員或者技術人員使用,也能通過應用程序接口(API)的方式讓外部系統調用。如流程管理系統、監控管理系統可以通過調用自動化運維平臺的接口實現變更自動化執行或故障自愈等能力。外部接口調用提供外部系統統一適配和管理,原子操作和場景編排通過統一適配層與外部系統進行通信,提供更強大的自動化能力。
自動化運維平臺建議按照PaaS設計理念,統一運維的基礎采控、數據計算、組件服務,實現運維工具、場景、應用無縫擴展。平臺化建設可應對運維過程中突發、持續高并發和高流量處理要求,并結合容器化技術為應用運行和服務供給提供一致的環境,形成對上層應用的支撐,實現平臺一體化能力;功能模塊組件化設計基于微服務的方式提供彈性伸縮和管理維護,基于不斷變化的應用演進和標準的API接口進行數據交互[8];分布式架構針對數據采集、監控服務、數據存儲、服務請求等方面提供高可用、易擴展環境。同時,平臺建設應先考慮建設需求高、優先級高的模塊,根據實際運維需求逐步迭代、完善具體功能組件,達成系統整體建設目標。
自動化運維平臺建設建議采用成熟商業產品采購與定制開發相結合的方式,選擇成熟、易擴展的商業產品,依據統一標準進行定制開發,滿足實際運維需求。復雜度高、對運維平臺整體質量影響大、應用范圍廣的組件,宜基于成熟產品的業界經驗和商業化沉淀,能夠快速引入最佳實踐經驗,完善現有體系和改善平臺整體質量;部分個性化需求無法直接采購現成產品的應用,可采用定制開發的方式實現。自動化運維平臺應具有良好的集成能力,對于使用狀態良好、用戶廣泛、系統穩定的現有運維工具/系統應實現與自動化運維平臺集成和整合,通過最小化資源投入,獲取最優的建設效益和成果[9]。
鐵路信息系統自動化運維平臺是大規模數據中心建設背景下,實現高效能、精細化、主動式運維的重要技術支撐,本方案從鐵路信息系統運維實際出發,綜合考慮各類運維角色、運維對象和運維場景的需求以及對現有運維工具的整合,按照“軟件定義運維”理念進行設計,形成滿足鐵路需要、可實現的信息系統自動化運維解決方案,為鐵路信息系統自動化運維平臺建設提供思路。