林勇
摘 ?要:當前,商業銀行數據中心處在“雙態運維”模式下,如何做好穩敏共存、穩敏共進是商行數據中心必須面臨的挑戰,在該背景下,需要建設一個覆蓋開發、測試、生產的自動化運維平臺,以此來全面提升運維工作效率并降低人工操作風險。自動化運維平臺需要以業務為中心,以流程為導向,幫助實現業務系統的快速上線和更新部署,滿足日常運維主流場景的自動化需求,全面提升運維自動化水平,實現商業銀行數據中心日常運維標準化、自動化、集中化和一體化的管理體系。
關鍵詞:數據中心;標準化;自動化;一體化
中圖分類號: TP311 ? ? ? 文獻標志碼:A
1 項目背景
隨著商業銀行各項創新業務的快速發展,數據中心IT信息系統建設不斷深化,IT基礎設施規模和復雜性急劇增大,兩地三中心的基礎架構,動輒幾百套信息系統、上萬臺服務器的規模,通過手工或簡單腳本化操作的傳統運維模式的局限性日益顯現,無法滿足商業銀行數字化轉型的需求。在當前大數據、云計算時代的背景下,必須通過自動化運維平臺的建設和應用,在確保IT基礎設施的安全、穩定運行的前提下,實現資源的快速部署、應用持續集成和快速交付、故障的快速應急、變更的及時響應,只有這樣才能快速響應業務對IT基礎設施的各類服務需求[1]。
2 設計目標及原則
2.1 設計目標
鑒于商業銀行數據中心運維工作的復雜性和多樣性,并考慮到建設成本和前瞻性,需采用先進的運維理念及主流的軟件架構。自動化運維平臺建設應做到支持各類主流基礎軟硬件平臺,在為運維人員提供運維場景設計、開發、管理和執行的功能平臺的同時,具備運維場景可定義、可配置、可定制的特點,實現運維場景從設計、開發、審批、發布、使用到回顧的全生命周期管理,合理合規地提升運維人員產能和運維管理效能,逐步實現被動運維向主動運維轉型,操作運維向運維開發轉型[2]。
2.2 設計原則
針對商業銀行數據中心自動化運維平臺的建設目標,遵循5個方面的原則進行建設。1)體現主動運維、向開發運維轉型的要求。2)標準化、自動化、集中化和測試運維一體化的建設思路和目標。3)平臺的穩定性、安全性、保密性、可靠性和完整性。4)技術先進性和可擴展性。5)體驗上的易用性和美觀性。
3 系統設計
3.1 頂層架構設計
3.1.1 平臺物理架構
因監管及安全的實際需要,商業銀行數據中心多采用兩地三中心甚至多中心的物理布局,自動化運維平臺建設需要滿足這一要求。所以在平臺的設計上應采用分布式架構,支持多地部署、高可用和負載均衡的模式。整體架構可劃分為服務層、交互層和被管設備層(Sever/Probe/Agent)3層,服務層統一管理多個交互層,交互層與被管設備層進行通信,各層之間通過加密的方式進行通信,平臺應基于RPC消息服務模式實現去中心化的分布式架構,實現多中心運維自動化平臺的統一和安全管理。
3.1.2 平臺邏輯架構
平臺邏輯架構的設計應從數據中心IT基礎設施運維場景實際出發,同時考慮未來技術發展方向和業務對IT基礎設施運維服務能力的要求,力求在技術方案的先進性、實用性、擴展性、可靠性等方面保持一個良好的平衡。在邏輯架構上,平臺可分為運維接口層、核心組件層、系統功能層、應用場景層和界面交互層。
運維接口層:商業銀行數據中心根據自身運維管理的要求,大多已經建設完成了ITSM等運維管理類系統。自動化運維平臺除了提供平臺自身和被管理節點之間的交互接口外,還應該提供完善的第三方接口(例如KVM、K8S、ITSM、CMDB等),其中可通過API與虛擬化系統進行交互操作,通過K8S與Dock容器集群進行編排管理,通過SNMP、SSH等方式對網絡設備進行操作管理,通過HTTP/HTTPS協議與第三方系統接口進行交互協作等。
核心組件層:核心組件層作為平臺功能的底層支撐,主要提供平臺所有前端和后臺數據的處理,以及各功能模塊的后臺實現邏輯,平臺的核心組件應設計自身知識庫,并基于穩定高效的批量引擎、調度引擎和規則引擎,實現對系統功能層的有力支撐。
系統功能層:利用核心組件層提供的基本能力,設計運維平臺的主要系統功能,實現商業銀行日常主流運維操作的覆蓋,如裸機安裝、軟件安裝、補丁安裝、信息自動采集、作業管理、批量管理、運維流程編排、自動巡檢和基線檢查等。
應用場景層:為方便人機交互,便于運維工程師操作和復用,平臺應利用系統提供的功能模塊對日常運維場景進行進一步的場景化封裝,應將一些操作復雜、重復操作的運維場景封裝為標準化、規范化的一鍵式操作功能,如維護變更、應急處置、持續集成部署、災備切換、健康巡檢、安全基線檢查等。
界面交互層:提供面向運維工程師的統一Web管理入口,以模塊化的方式組織平臺提供的各類組件、功能模塊和應用場景,實現日常運維的統一管理。此外,面向第三方系統,通過REST API的方式提供服務接口,輸出平臺能力。
3.2 底層數據抓取設計
鑒于行業的特殊性,商業銀行數據中心對信息安全和數據安全都有著嚴格的管控要求,平臺的底層數據抓取設計在應對復雜的運維環境前提下,還應遵循監管及商行內部的安全規范,做到以下6個方面。1)根據實際需要采取Agent或Agentless方式,應支持常用的腳本語言,如Shell、Powershell、Python、Bat等,同時滿足文件和字符2種傳輸模式。2)嚴格控制高權限用戶執行,高權限用戶操作時須有相應的審批和授權記錄。3)Agent與平臺之間的信息傳輸要經過加密處理,確保底層數據在傳輸過程中的安全。4)Agent與平臺的交互可根據運維環境的實際情況采用同步或異步方式,最大限度地降低對被管設備資源的消耗和影響。5) Agent要有自我監控,實時查看當前的健康狀態,確保底層數據抓取的穩定性。6)平臺頂層應具有數據抓取后處理能力,通過規則引擎可以靈活定義數據的處理邏輯,適用于合規檢查、基線比對、采集信息格式化、執行結果報表化等場景,大幅降低個性化定制開發的成本。
3.3 自動化運維功能設計
根據商業銀行數據中心的運維環境和日常運維場景特點,平臺自動化運維功能應包括資源管理、運維服務管理、報表管理等方面,同時需對運維工程師的平臺操作做好權限管理和行為審計管理。
3.3.1 資源管理
資源管理功能設計主要包括3個方面。1)設備資源管理:服務器、網絡等設備是平臺納管的主要目標,平臺應實現對被管設備的集中管理和一鍵納管。為方便運維工程師選擇操作設備,應能通過IP模糊查詢、操作系統、中間件、歸屬應用等多維度進行定位,同時支持通過正則表達式等方式對設備進行靈活的標簽分組和設備屬性自定義。2)應用系統管理:平臺應根據商業銀行數據中心的日常運維職責劃分實際需要,實現被管設備的應用系統歸屬管理,避免誤操作。3)信息收集管理:實現被管設備的信息收集功能,滿足報表統計、自動化巡檢、合規檢查、基線比對等場景。
3.3.2 運維服務管理
運維服務管理主要體現在日常運維場景的管理,實現自主提煉和封裝維護變更、應急處置、軟件下發、補丁安裝、環境交付等日常運維場景,使其成為標準化、規范化的運維服務,以供其他運維工程師使用,從而實現降低運維技術門檻、屏蔽技術復雜度、提高運維效率。
結合各運維場景的特點,運維服務管理的實現主要包括服務封裝、服務審批、服務實例化、執行授權和執行可視化。
服務封裝:以腳本化、參數化、流程化的方式對運維場景進行服務化封裝,并通過圖形化、可視化的界面設計實現自主編排運維服務。
服務審批:通過審批功能模塊實現運維服務的發布和執行審批,對運維服務的質量和安全性進行有效管控,避免非合規操作造成的生產事故。
服務實例化:通過參數化方式實現運維服務的一次封裝。
執行授權:通過執行授權的方式管控運維任務的執行,以確保對的人在對的時間做對的事。
執行可視化:通過可視化界面實時展示運維任務的執行過程和結果,便于查看、干預。
3.3.3 報表管理
報表管理實現對平臺的管理數據和運維數據的統計工作,包括平臺的管理資源統計、運維任務統計、采集信息統計、執行歷史統計等,為整體IT資源管理和運維工作管理提供數據支持。
3.3.4 行為審計管理
為了滿足商業銀行數據中心安全管理的審計要求,自動化運維平臺的行為審計也是必不可少的功能。平臺操作均可追溯。
3.3.5 權限管理
商業銀行數據中心對運維操作有著嚴格的管控和審批機制,平臺自身應設計完備的角色權限管理功能,提供集中統一的權限管理,遵循最小授權原則。同時,為兼顧主動運維轉型,應設計運維操作、運維開發、運維審批、執行授權等不同級別的權限角色,同級別角色仍可進行增、刪、改、執行等權限的細分。
4 系統測試及功能實現
4.1 系統測試
商業銀行數據中心自動化運維平臺測試應遵循行業測試規范,做好功能測試、運維場景測試、接口測試、UAT測試和性能測試,同時還應結合平臺自身特性,做好如下測試。
數據一致性測試:數據安全、執行結果符合預期是商業銀行數據中心運維任務管理的重中之重,鑒于平臺的多層架構設計和被管設備環境的復雜性,平臺需做好在各節點網絡中斷、運維任務執行超時等特殊情況下的數據一致性測試,確保運維任務執行結果可控。
高并發測試:鑒于平臺的批量部署特點,平臺需要做好單一場景和混合場景下的高并發測試,確保運維任務的正確執行,做到有令必達。
Agent資源使用測試:如果平臺采用Agent方式實現被管設備的納管,則需要對Agent資源占用情況做好疲勞性測試,確保資源使用不會對被管設備產生不良影響。
網絡帶寬影響性測試:平臺應對運維任務的并發進行監控控制和優先級設置,確保不會因并發失控導致生產帶寬擁堵,必要時使用QoS等網絡控制技術。
4.2 系統功能實現
平臺功能實現應遵循高內聚低耦合的模塊化設計理念,充分借鑒和參考在運維自動化領域主流的“Sever/Probe/Agent或Agentless”三層架構。采用成熟的開發框架,便于持續開發集成。提供豐富成熟的API接口,便于和關聯系統進行集成對接。同時,平臺應具有統一的Portal和完備的操作及任務審計功能,能夠靈活配置操作權限,對于敏感信息加密存放,確保數據安全。首先,通過響應式布局頁面框架和腳本語言框架搭建簡潔、美觀、高效、靈活的交互界面,適應不同類型的終端,快速響應訪問請求,實現對系統運行、功能參數等的配置,實現對運維功能的管理、對被管設備的運維任務操作,以及數據、圖表等信息的展示。其次,基于穩定高效的批量引擎、調度引擎和規則引擎,以服務的方式進行自動化運維任務數據分析、處理存儲以及核心邏輯處理。基于不同運維場景模塊的需求,可靈活地對運維服務進行擴展。再次,被管設備支持通過Agent或者Agentless方式進行通信交互,對于第三方系統或者服務型設備,通過接口方式進行交互。采用Agent設計,主要負責接收平臺指令并返回結果,屏蔽業務邏輯處理,最大限度地降低對被管設備資源的消耗和影響。另外,Sever層、Probe層采用負載均衡和集群方式部署,支持快速橫向擴展,一方面解決了商業銀行數據中心服務器設備快速增長的實際需要,另一方面解決了部分物理隔離設備的納管問題。最后,各功能層之間定時進行心跳通知,保證消息、文件的正常通信。
5 結語
綜上所述,通過自動化運維平臺的建設,商業銀行可實現日常運維場景的全生命周期自動化管理,通過與ITSM等系統的對接,可實現標準化、規范化、流程化、一體化的運維管理體系,實現從傳統運維向智能化運維轉型,從被動救火式運維向主動運維、精細運維轉型,從操作型運維向運維開發轉型。
參考文獻
[1]冷迪.自動化運維管理平臺設計及實現[J].技術與市場,2018,25(11):62-64,67.
[2]劉媛.大數據時代自動化運維管理的實踐和思考[J].網絡安全技術與應用,2018(6):55-56.