韓建萍
(山西能源學院,太原 030600)
數(shù)字礦山的相關概念自2000年被吳立新等提出后[1,2],隨著生產(chǎn)環(huán)境的變化和科學技術的發(fā)展,得到逐步更新和完善,先后被修改為智能礦山、智慧礦山[3-7]。通過對智慧礦山建設進行調(diào)研后發(fā)現(xiàn),我國大部分煤礦的信息化系統(tǒng)建設仍然采用自建數(shù)據(jù)中心、各個子系統(tǒng)分批由不同廠家開發(fā)和部署,導致資源重復建設、數(shù)據(jù)共享和交換難度大、系統(tǒng)運行效率低、單點故障較多、新業(yè)務開發(fā)和部署周期長等問題,已成為智慧礦山進一步向前發(fā)展的主要瓶頸。
為解決這些問題,文獻[8]提出了“第三方建設公共服務承載平臺,煤礦企業(yè)通過購買服務的方式使用平臺資源”的商業(yè)模式。文獻[9]提出了煤礦企業(yè)建立大數(shù)據(jù)共享云服務平臺的思路。文獻[10]關注各種傳感器、煤礦設備和業(yè)務的連接,提出了面向服務體系結(jié)構的平臺架構。文獻[11]將大數(shù)據(jù)和物聯(lián)網(wǎng)技術應用于煤礦事故分析。文獻[12]提出了采煤、運輸、監(jiān)測等關鍵問題的技術解決思路。文獻[13]提出了綜采工作面自動化系統(tǒng)。通過分析可知,已有的智慧礦山平臺沒有很好的實現(xiàn)信息交換、應用系統(tǒng)的敏捷開發(fā)和快速上線、資源的彈性伸縮及自動化運維。為解決這些問題,基于容器、微服務、DevOps(Development 和Operations 的組合)等技術[14-16],本文提出了智慧礦山能力開放平臺架構設計,并對信息交換關鍵技術進行了研究。通過對平臺的應用過程分析可知,平臺有效實現(xiàn)了數(shù)據(jù)資源共享、應用系統(tǒng)的敏捷開發(fā)和快速上線、資源的彈性伸縮及自動化運維。
智慧礦山能力開放平臺,是一種智慧礦山業(yè)務驅(qū)動的,基于云計算、大數(shù)據(jù)、容器、微服務、DevOps 等多種技術構建的,具有多種異構系統(tǒng)的信息交換、數(shù)據(jù)共享能力的,面向應用敏捷開發(fā)、自動化運維的公共基礎開放平臺。該平臺的建設目標是:能夠有效幫助煤礦企業(yè)融合重構信息通信技術能力、提升核心業(yè)務競爭力、走向敏捷開發(fā)和智能化的大融合時代。
(1)面向未來的服務化架構:云原生(Cloud Native)、大數(shù)據(jù)是當前互聯(lián)網(wǎng)技術熱點和發(fā)展方向,基于這些新技術,可以確保平臺具有彈性擴展、自動化運維、敏捷化和智能化開發(fā)等能力[17-19]。其中,云原生包括微PaaS、微服務、DevOps 等關鍵技術。
(2)分布式的平臺架構:通過建立煤礦企業(yè)、煤礦集團、全國煤礦監(jiān)管的不同層級、不同區(qū)域的開放平臺,有效形成時空多維數(shù)據(jù)共享機制,實現(xiàn)信息的跨區(qū)域、實時遠程監(jiān)測。
(3)支持大數(shù)據(jù)應用框架:平臺架構需要充分考慮大數(shù)據(jù)相關環(huán)節(jié)的技術實現(xiàn)方式和實現(xiàn)細節(jié),同時,要深入分析大數(shù)據(jù)應用的場景,例如,大數(shù)據(jù)應用于煤礦安全生產(chǎn)中的災害預警、故障處理、隱患排查等場景。
(4)架構可以使用開源技術實現(xiàn):開源是互聯(lián)網(wǎng)精神中最重要的特征之一。開源技術和開源社區(qū)活躍度越來越高,在互聯(lián)網(wǎng)技術發(fā)展趨勢的話語權越來越重。
智慧礦山信息化架構發(fā)展示意圖如圖1所示。圖1(a)是煤礦企業(yè)的礦山信息化架構現(xiàn)狀,從圖1(a)可知,現(xiàn)有的大部分智慧礦山基于“自建、自用、自維”的傳統(tǒng)建設方法,即一個煤礦包含多個不同廠家的系統(tǒng),每套系統(tǒng)基于各自的硬件和軟件平臺。
基于云原生、大數(shù)據(jù)等新技術提出的智慧礦山能力開放平臺架構見圖1(b),該平臺包括資源融合層、數(shù)據(jù)融合層、應用融合層、運行融合層。資源融合層通過建設云操作系統(tǒng),融合計算、存儲、網(wǎng)絡為一個統(tǒng)一的資源池。信息交換層基于大數(shù)據(jù)引擎平臺,融合傳統(tǒng)數(shù)據(jù)庫、源數(shù)據(jù),便于進行大數(shù)據(jù)的挖掘和分析。應用融合層基于容器、中間件技術,實現(xiàn)微服務的敏捷開發(fā),有助于實現(xiàn)采煤、掘進、機電、運輸、通風、排水等煤礦系統(tǒng)的快速開發(fā)和部署。運行融合層通過融合運行環(huán)境,實現(xiàn)統(tǒng)一的安全、運營和運維管理。
圖1 智慧礦山信息化架構發(fā)展示意圖
為滿足智慧礦山的建設需求,基于ITIL(Information Technology Infrastructure Library,信息通信技術基礎設施庫)[20]、eTOM(enhanced Telecom Operation Map,增強的電信運營圖)框架[21]提出的智慧礦山能力開放平臺功能視圖如圖2所示,包括系統(tǒng)支撐、應用支撐、服務管理、運行與工具4個模塊。
(1)系統(tǒng)支撐模塊:該模塊包括通信技術能力、信息技術能力2個子模塊。通信技術能力子模塊主要是指平臺具有的各種通信能力,主要通過網(wǎng)絡虛擬化技術實現(xiàn)。信息技術能力子模塊主要是指平臺具有的計算能力和存儲能力,主要通過計算虛擬化、存儲虛擬化技術實現(xiàn)。
圖2 智慧礦山能力開放平臺功能視圖
(2)應用支撐模塊:該模塊是平臺服務層用到的公共能力的抽象,包括終端管理、數(shù)據(jù)處理、資源管理、業(yè)務管理4個子模塊。終端管理子模塊實現(xiàn)各種接入終端的監(jiān)控、配置、性能、故障等方面的管理。數(shù)據(jù)處理子模塊實現(xiàn)各種數(shù)據(jù)的融合、共享、存儲,并基于大數(shù)據(jù)技術進行數(shù)據(jù)挖掘和分析。資源管理子模塊對系統(tǒng)支撐模塊的資源進行申請、調(diào)度、分配等管理,以滿足服務對資源的需求,提高資源的使用效率。業(yè)務管理子模塊從煤礦安全生產(chǎn)應用的角度,分析和抽象微服務,提高應用的部署效率。
(3)服務管理模塊:該模塊主要是為解決微服務數(shù)量龐大而導致的調(diào)度和管理方面的復雜性問題,包括流程編排、服務注冊與管理、數(shù)據(jù)分析與展現(xiàn)3個子模塊。流程編排子模塊通過可視化和流程化的方法,精簡智慧礦山應用的部署方法,降低部署難度。服務注冊與管理子模塊將服務的注冊、發(fā)現(xiàn)、配置、路由等進行統(tǒng)一管理,實現(xiàn)服務的高效運行。數(shù)據(jù)分析與展現(xiàn)子模塊負責將應用支撐模塊中處理的數(shù)據(jù)進行深入分析和展現(xiàn),并將結(jié)果以可視化展現(xiàn)的方式應用到煤礦的安全生產(chǎn)環(huán)境。
(4)運行與工具模塊:該模塊主要用于保障其他3個模塊的正常運行,包括運維管理、運營管理、安全管理3個子模塊。運維管理子模塊將配置管理、性能管理、調(diào)度管理、故障管理等功能進行抽象,形成統(tǒng)一的運維管理工具,便于系統(tǒng)的運行和日常維護。運營管理子模塊與其他模塊的接口對接,主要負責對用戶使用其它模塊的頻率、數(shù)量等信息進行認證、計費、授權功能。安全管理子模塊為平臺的安全運行提供全生命周期的端到端安全管理。
大數(shù)據(jù)在煤礦安全生產(chǎn)、智能監(jiān)管等方面具有重要的應用價值,但是,信息缺乏共享是智慧礦山平臺當前面臨的一個重要問題。文獻[22]利用XML 技術實現(xiàn)異構數(shù)據(jù)源的有效集成。文獻[23]分析了安全數(shù)據(jù)的相互關系,實現(xiàn)了隱性知識的顯性化。文獻[24]提出了數(shù)據(jù)采集與共享的數(shù)據(jù)標準,實現(xiàn)對重大危險源的精細化管理。本小節(jié)以能力開放平臺的信息交換和數(shù)據(jù)融合為目標,提出了一種便于實現(xiàn)信息共享和系統(tǒng)融合的信息交換技術。
通常情況下,客戶端應用程序(Web 或者App)與微服務端的服務器之間以發(fā)送RESTful HTTP 請求的形式,實現(xiàn)客戶端與服務器之間的通信。但是,微服務架構中微服務的數(shù)量較多,導致系統(tǒng)的吞吐率較低。為解決這個問題,本平臺在服務器集群前面增加客戶服務網(wǎng)關,負責與客戶端對接,實現(xiàn)客戶端對服務器中微服務的透明調(diào)用,不但可以有效提高系統(tǒng)的吞吐率,而且實現(xiàn)了客戶端和服務器之間的轉(zhuǎn)換功能,服務器的改變不會影響服務使用方法的改變。
由于微服務數(shù)量較多,微服務之間的通信必須支持高并發(fā)。為解決這一問題,本文從訂閱者和消費者是否解耦合方面區(qū)分,將微服務之間的通信分為同步機制、異步消息處理機制兩種通信方式。其中,同步機制基于HTTP 協(xié)議,采用注冊中心技術進行通信,適用于并發(fā)通信量比較大的場景。異步消息處理機制方式下,消息的生產(chǎn)者只需要把消息發(fā)送給消息代理,消息的生產(chǎn)者不需要消費者一直在線。
企業(yè)服務總線(ESB)將中間件、SOA、Web Services 和XML 等技術融合到統(tǒng)一的分布式架構中,采用集中轉(zhuǎn)發(fā)請求的方式,實現(xiàn)新系統(tǒng)、遺留系統(tǒng)的集成,適合于異構系統(tǒng)的集成、數(shù)據(jù)共享的環(huán)境[25]?;诖耍疚膶⒐驳?、全局的系統(tǒng)間通信采用ESB 技術實現(xiàn),提出的基于企業(yè)服務總線的開放融合技術框架如圖3所示,各系統(tǒng)使用其原有的SOAP、XML、HTTP、私有協(xié)議等方式連接到服務總線,協(xié)議轉(zhuǎn)換等工作集中在ESB提供的開發(fā)環(huán)境中。
圖3 基于企業(yè)服務總線的開放融合技術框架
基于平臺的體系架構和功能視圖,平臺實現(xiàn)技術架構見圖4,包括資源層、內(nèi)核層、應用層。
(1)資源層:資源層以虛擬化、容器化為技術支撐,實現(xiàn)應用層服務的快速啟動、無限擴展、動態(tài)遷移。未來智慧礦山的IT將以資源池化的私有云為基礎,公有云和混合云為補充,通過一體化的云管理平臺實現(xiàn)應用系統(tǒng)的彈性部署和靈活調(diào)度。為了與主流開源系統(tǒng)兼容,云管理平臺將Openstack 解耦為基于Docker的多個解耦微服務,從而保障Openstack 及租戶應用負載零中斷的灰度升級。
圖4 平臺實現(xiàn)技術架構
(2)內(nèi)核層:內(nèi)核層為開發(fā)者隱藏部署和管理微服務的復雜工作,將其進行內(nèi)置處理,實現(xiàn)彈性伸縮架構、自動化運維、支持按需服務/付費。調(diào)度和任務管理器Mesos 用于跨數(shù)據(jù)中心的資源管理,與上層調(diào)度器配合來解決大數(shù)據(jù)的資源池化調(diào)度問題。容器編排引擎Marathon/K8S 用于集群管理,解決大規(guī)模應用部署的問題,實現(xiàn)集群的熱升級、動態(tài)伸縮、負載均衡、服務發(fā)現(xiàn)。鏡像倉庫中以容器為單位,實現(xiàn)鏡像存儲(靜態(tài))和容器托管(動態(tài))。負載與引流(Haproxy)實現(xiàn)資源的負載均衡功能。信息交換的同步機制采用Dubbo 實現(xiàn),異步消息處理機制采用Kaf ka 實現(xiàn),分布式協(xié)同采用Zookeeper 實現(xiàn),異構系統(tǒng)之間的通信采用ESB 實現(xiàn)。持續(xù)交付平臺實現(xiàn)源碼管理、自動構建、部署管理、集成測試、發(fā)布管理,采用Jenkins 實現(xiàn)。大數(shù)據(jù)框架主要由數(shù)據(jù)庫、應用框架組件、基礎服務組件構成,數(shù)據(jù)庫包括關系型MPP 數(shù)據(jù)庫、RDB 數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫,應用框架組件主要包括數(shù)據(jù)預處理ETL、Spark,基礎服務組件主要包括HDFS、YARN 等。
(3)服務層:服務層是直接面向程序開發(fā)人員,為開發(fā)者提供在分布式系統(tǒng)的斷路器、控制總線、配置管理、智能路由等開發(fā)工具包。當前比較流行的微服務開發(fā)框架包括Spr ing Boot、Netf lix、CONSUL、ZIPKIN 等。微服務治理與部署工具包括Consul、Docker Swarm。
(1)業(yè)務上平臺的途徑:煤礦企業(yè)的業(yè)務上平臺可采用以下兩條途徑:核心涉密信息部署在自建私有云平臺上、非核心涉密且突發(fā)要求高的應用負載部署在公有云平臺上,從而實現(xiàn)安全私密保障與彈性敏捷的無縫優(yōu)勢互補。
(2)分布式平臺架構的建設方式:煤礦企業(yè)的邊緣或分支站點通過部署一臺到幾臺服務器,實現(xiàn)輕量化的管理平臺;煤礦集團內(nèi)部部署私有云平臺,實現(xiàn)跨區(qū)域統(tǒng)一自動化管理的網(wǎng)絡和安全策略。全國煤礦監(jiān)管平臺采用混合云平臺,實現(xiàn)動態(tài)添加和減少站點、多站點管理擴展能力。
(3)傳統(tǒng)平臺與新平臺的雙模式運行:傳統(tǒng)平臺向新平臺的轉(zhuǎn)型需要一個過程,為了兼容傳統(tǒng)平臺,新平臺通過服務總線與傳統(tǒng)平臺進行互通。傳統(tǒng)平臺的軟件逐步實現(xiàn)微服務化改造,最終由新平臺實現(xiàn)統(tǒng)一運營。
為解決智慧礦山平臺無法做到計算和存儲資源的共享和按需使用,基于容器、微服務、DevOps 等技術,本文提出智慧礦山能力開放平臺架構設計,可以實現(xiàn)硬件資源的按需使用、各子系統(tǒng)低耦合集成和簡便的信息交換方式、面向微服務的敏捷開發(fā)環(huán)境。通過對平臺實現(xiàn)技術架構的分析,驗證了本文提出平臺有效實現(xiàn)了智慧礦山的設計思路和建設目標,平臺應用的分析驗證了平臺的可用性和可擴展性。