盛紅雷,劉洪波,鄭 磊
(1.國網(wǎng)電力科學(xué)研究院,南京 210000;2.國網(wǎng)吉林省電力有限公司信息通信公司,長春 130022)
近年來,國家電網(wǎng)公司信息通信運行管理體系正在逐步完善,以信息運維綜合監(jiān)控系統(tǒng)為主的八大支撐工具系統(tǒng)的建設(shè)完成,為生產(chǎn)、經(jīng)營和管理等工作提供了可靠保障[1]。另外,隨著云計算技術(shù)的不斷成熟與運用,虛擬化資源池覆蓋范圍的不斷擴大,運維資源及環(huán)境正在逐步全面云化,如何實現(xiàn)服務(wù)透明、自動管控、動態(tài)調(diào)控、彈性調(diào)度、快速自愈、作業(yè)智能、運行精益,提升“科學(xué)調(diào)控、精益運檢、敏捷服務(wù)”核心能力,將現(xiàn)面臨新的挑戰(zhàn)[2]。
為解決上述不足,本文基于Docker關(guān)鍵技術(shù)進行了信息系統(tǒng)運維自動化技術(shù)的研究,實現(xiàn)系統(tǒng)部署及其運維自動化,以滿足各信息系統(tǒng)版本自動化升級的需求,有效支撐各種業(yè)務(wù)活動的同時,提升運維人員效率,提高資源的利用率。
Docker是一個開源的應(yīng)用容器引擎,開發(fā)人員通過Docker可以將應(yīng)用和依賴包封裝到一個可移植的容器中,并發(fā)布到任何Linux機器上,從而實現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案[3]。基于Docker核心技術(shù)的構(gòu)建容器集群管理的解決方案主要有:美國加州大學(xué)伯克利分校AMPLab實驗室開發(fā)的Mesos、Google開源的Docker容器集群管理系統(tǒng)Kubernetes,以及Docker公司的容器編排管理工具Docker Swarm。上述三種解決方案在調(diào)度級別、成熟度、使用場景、活躍度、案例等方面的比較如表1所示:

表1 各技術(shù)方案對比分析
通過對目前構(gòu)建Docker容器常用的幾種技術(shù)架構(gòu)進行調(diào)度級別、活躍度、使用場景、成熟度等多方面進行評估,本文選擇基于Google開源的Docker容器集群管理系統(tǒng)的方案。相對于其他兩種方案,其具有成熟度較高、使用基于Predicates和Priorities兩階段算法的兩級調(diào)度框架、適合于多種不同應(yīng)用場景、可以混合部署、平臺與應(yīng)用耦合度不高等優(yōu)點。
本文構(gòu)建的基于Docker關(guān)鍵技術(shù)的信息系統(tǒng)運維自動化管理平臺的技術(shù)架構(gòu)如圖1所示。

圖1 運維自動化管理平臺技術(shù)架構(gòu)
在系統(tǒng)中,可以被創(chuàng)建、銷毀、調(diào)度的最小部署單元被抽象成一個Pod,比如一個或一組容器。為了滿足一個應(yīng)用多個Pod支撐的需要,系統(tǒng)通過Replica-tion Controller實現(xiàn)復(fù)制多個Pod副本,保證副本數(shù)量;Replication Controller可以直接復(fù)制已有Pod,再通過Label selector關(guān)聯(lián),或者利用repcon模板直接建立多個Pod副本。
系統(tǒng)的最外圍單元是Service,使用虛擬的訪問IP和服務(wù)端口,能夠訪問事先定義好的Pod資源。Labels可以區(qū)分Pod、Replication Controller、Service的key/value鍵值對,然而只限于他們之間的關(guān)系辨別,如果需要對這些單元本身進行操作,一般都使用name標簽。
為了解決了同一主宿機對于相同服務(wù)端口出現(xiàn)沖突的問題,后端使用了隨機、輪循負載均衡算法的Proxy,其還具有轉(zhuǎn)發(fā)服務(wù)端口對外提供服務(wù)的能力。
自動化部署系統(tǒng)采用C/S結(jié)構(gòu),產(chǎn)品本身提供豐富的Webservice接口/JMS接口,通過接口調(diào)用的方式,可實現(xiàn)與I6000系統(tǒng)的數(shù)據(jù)集成。自動化部署系統(tǒng)還提供Webservice接口/JMS接口來提取/發(fā)布包括應(yīng)用系統(tǒng)信息、數(shù)據(jù)庫信息等在內(nèi)的數(shù)據(jù),I6000系統(tǒng)可通過調(diào)用相關(guān)接口來讀取自動化部署系統(tǒng)的基礎(chǔ)數(shù)據(jù)來實現(xiàn)同步與更新。此外I6000系統(tǒng)可提供Webservice接口/JMS接口,供自動化部署系統(tǒng)進行數(shù)據(jù)更新與同步[4]。
自動化部署系統(tǒng)對設(shè)備的管理有其自身的特點,初次進行設(shè)備納管時需以I6000系統(tǒng)中資源管理模塊(CMDB)為準提取IP、OS/IOS版本等基本配置信息。在日常運維中,系統(tǒng)定時進行設(shè)備信息采集,則以系統(tǒng)所搜集設(shè)備信息為準,對I6000中資源管理模塊(CMDB)進行同步與更新,對其數(shù)據(jù)項進行補充與更新,從而保證信息的完整與準確。用戶可以直接指定某些相干版本的應(yīng)用鏡像進行安裝或升級,如果失敗則直接指定原版本鏡像進行回滾和還原,以保證系統(tǒng)的穩(wěn)定性。
本文將Docker關(guān)鍵技術(shù)在運維自動化中的應(yīng)用研究作為信息系統(tǒng)運維工作提高的切入點,對Docker技術(shù)進行研究和分析,并結(jié)合國網(wǎng)云的架構(gòu)設(shè)計、資源池現(xiàn)狀,提出了Docker容器技術(shù)在國網(wǎng)云的應(yīng)用方法,并通過對網(wǎng)絡(luò)、存儲等方面進行調(diào)整和優(yōu)化,提升了整套架構(gòu)的性能,實現(xiàn)Docker容器技術(shù)與國網(wǎng)云的高效融合,提高了信息系統(tǒng)運維及部署的效率,大大減少運維人員的工作量,提升了運維服務(wù)的質(zhì)量,降低了信息系統(tǒng)版本升級時帶來的風險。