韓建萍
(山西能源學院,太原 030600)
數字礦山的相關概念自2000年被吳立新等提出后[1,2],隨著生產環境的變化和科學技術的發展,得到逐步更新和完善,先后被修改為智能礦山、智慧礦山[3-7]。通過對智慧礦山建設進行調研后發現,我國大部分煤礦的信息化系統建設仍然采用自建數據中心、各個子系統分批由不同廠家開發和部署,導致資源重復建設、數據共享和交換難度大、系統運行效率低、單點故障較多、新業務開發和部署周期長等問題,已成為智慧礦山進一步向前發展的主要瓶頸。
為解決這些問題,文獻[8]提出了“第三方建設公共服務承載平臺,煤礦企業通過購買服務的方式使用平臺資源”的商業模式。文獻[9]提出了煤礦企業建立大數據共享云服務平臺的思路。文獻[10]關注各種傳感器、煤礦設備和業務的連接,提出了面向服務體系結構的平臺架構。文獻[11]將大數據和物聯網技術應用于煤礦事故分析。文獻[12]提出了采煤、運輸、監測等關鍵問題的技術解決思路。文獻[13]提出了綜采工作面自動化系統。通過分析可知,已有的智慧礦山平臺沒有很好的實現信息交換、應用系統的敏捷開發和快速上線、資源的彈性伸縮及自動化運維。為解決這些問題,基于容器、微服務、DevOps(Development 和Operations 的組合)等技術[14-16],本文提出了智慧礦山能力開放平臺架構設計,并對信息交換關鍵技術進行了研究。通過對平臺的應用過程分析可知,平臺有效實現了數據資源共享、應用系統的敏捷開發和快速上線、資源的彈性伸縮及自動化運維。
智慧礦山能力開放平臺,是一種智慧礦山業務驅動的,基于云計算、大數據、容器、微服務、DevOps 等多種技術構建的,具有多種異構系統的信息交換、數據共享能力的,面向應用敏捷開發、自動化運維的公共基礎開放平臺。該平臺的建設目標是:能夠有效幫助煤礦企業融合重構信息通信技術能力、提升核心業務競爭力、走向敏捷開發和智能化的大融合時代。
(1)面向未來的服務化架構:云原生(Cloud Native)、大數據是當前互聯網技術熱點和發展方向,基于這些新技術,可以確保平臺具有彈性擴展、自動化運維、敏捷化和智能化開發等能力[17-19]。其中,云原生包括微PaaS、微服務、DevOps 等關鍵技術。
(2)分布式的平臺架構:通過建立煤礦企業、煤礦集團、全國煤礦監管的不同層級、不同區域的開放平臺,有效形成時空多維數據共享機制,實現信息的跨區域、實時遠程監測。
(3)支持大數據應用框架:平臺架構需要充分考慮大數據相關環節的技術實現方式和實現細節,同時,要深入分析大數據應用的場景,例如,大數據應用于煤礦安全生產中的災害預警、故障處理、隱患排查等場景。
(4)架構可以使用開源技術實現:開源是互聯網精神中最重要的特征之一。開源技術和開源社區活躍度越來越高,在互聯網技術發展趨勢的話語權越來越重。
智慧礦山信息化架構發展示意圖如圖1所示。圖1(a)是煤礦企業的礦山信息化架構現狀,從圖1(a)可知,現有的大部分智慧礦山基于“自建、自用、自維”的傳統建設方法,即一個煤礦包含多個不同廠家的系統,每套系統基于各自的硬件和軟件平臺。
基于云原生、大數據等新技術提出的智慧礦山能力開放平臺架構見圖1(b),該平臺包括資源融合層、數據融合層、應用融合層、運行融合層。資源融合層通過建設云操作系統,融合計算、存儲、網絡為一個統一的資源池。信息交換層基于大數據引擎平臺,融合傳統數據庫、源數據,便于進行大數據的挖掘和分析。應用融合層基于容器、中間件技術,實現微服務的敏捷開發,有助于實現采煤、掘進、機電、運輸、通風、排水等煤礦系統的快速開發和部署。運行融合層通過融合運行環境,實現統一的安全、運營和運維管理。

圖1 智慧礦山信息化架構發展示意圖
為滿足智慧礦山的建設需求,基于ITIL(Information Technology Infrastructure Library,信息通信技術基礎設施庫)[20]、eTOM(enhanced Telecom Operation Map,增強的電信運營圖)框架[21]提出的智慧礦山能力開放平臺功能視圖如圖2所示,包括系統支撐、應用支撐、服務管理、運行與工具4個模塊。
(1)系統支撐模塊:該模塊包括通信技術能力、信息技術能力2個子模塊。通信技術能力子模塊主要是指平臺具有的各種通信能力,主要通過網絡虛擬化技術實現。信息技術能力子模塊主要是指平臺具有的計算能力和存儲能力,主要通過計算虛擬化、存儲虛擬化技術實現。

圖2 智慧礦山能力開放平臺功能視圖
(2)應用支撐模塊:該模塊是平臺服務層用到的公共能力的抽象,包括終端管理、數據處理、資源管理、業務管理4個子模塊。終端管理子模塊實現各種接入終端的監控、配置、性能、故障等方面的管理。數據處理子模塊實現各種數據的融合、共享、存儲,并基于大數據技術進行數據挖掘和分析。資源管理子模塊對系統支撐模塊的資源進行申請、調度、分配等管理,以滿足服務對資源的需求,提高資源的使用效率。業務管理子模塊從煤礦安全生產應用的角度,分析和抽象微服務,提高應用的部署效率。
(3)服務管理模塊:該模塊主要是為解決微服務數量龐大而導致的調度和管理方面的復雜性問題,包括流程編排、服務注冊與管理、數據分析與展現3個子模塊。流程編排子模塊通過可視化和流程化的方法,精簡智慧礦山應用的部署方法,降低部署難度。服務注冊與管理子模塊將服務的注冊、發現、配置、路由等進行統一管理,實現服務的高效運行。數據分析與展現子模塊負責將應用支撐模塊中處理的數據進行深入分析和展現,并將結果以可視化展現的方式應用到煤礦的安全生產環境。
(4)運行與工具模塊:該模塊主要用于保障其他3個模塊的正常運行,包括運維管理、運營管理、安全管理3個子模塊。運維管理子模塊將配置管理、性能管理、調度管理、故障管理等功能進行抽象,形成統一的運維管理工具,便于系統的運行和日常維護。運營管理子模塊與其他模塊的接口對接,主要負責對用戶使用其它模塊的頻率、數量等信息進行認證、計費、授權功能。安全管理子模塊為平臺的安全運行提供全生命周期的端到端安全管理。
大數據在煤礦安全生產、智能監管等方面具有重要的應用價值,但是,信息缺乏共享是智慧礦山平臺當前面臨的一個重要問題。文獻[22]利用XML 技術實現異構數據源的有效集成。文獻[23]分析了安全數據的相互關系,實現了隱性知識的顯性化。文獻[24]提出了數據采集與共享的數據標準,實現對重大危險源的精細化管理。本小節以能力開放平臺的信息交換和數據融合為目標,提出了一種便于實現信息共享和系統融合的信息交換技術。
通常情況下,客戶端應用程序(Web 或者App)與微服務端的服務器之間以發送RESTful HTTP 請求的形式,實現客戶端與服務器之間的通信。但是,微服務架構中微服務的數量較多,導致系統的吞吐率較低。為解決這個問題,本平臺在服務器集群前面增加客戶服務網關,負責與客戶端對接,實現客戶端對服務器中微服務的透明調用,不但可以有效提高系統的吞吐率,而且實現了客戶端和服務器之間的轉換功能,服務器的改變不會影響服務使用方法的改變。
由于微服務數量較多,微服務之間的通信必須支持高并發。為解決這一問題,本文從訂閱者和消費者是否解耦合方面區分,將微服務之間的通信分為同步機制、異步消息處理機制兩種通信方式。其中,同步機制基于HTTP 協議,采用注冊中心技術進行通信,適用于并發通信量比較大的場景。異步消息處理機制方式下,消息的生產者只需要把消息發送給消息代理,消息的生產者不需要消費者一直在線。
企業服務總線(ESB)將中間件、SOA、Web Services 和XML 等技術融合到統一的分布式架構中,采用集中轉發請求的方式,實現新系統、遺留系統的集成,適合于異構系統的集成、數據共享的環境[25]。基于此,本文將公共的、全局的系統間通信采用ESB 技術實現,提出的基于企業服務總線的開放融合技術框架如圖3所示,各系統使用其原有的SOAP、XML、HTTP、私有協議等方式連接到服務總線,協議轉換等工作集中在ESB提供的開發環境中。

圖3 基于企業服務總線的開放融合技術框架
基于平臺的體系架構和功能視圖,平臺實現技術架構見圖4,包括資源層、內核層、應用層。
(1)資源層:資源層以虛擬化、容器化為技術支撐,實現應用層服務的快速啟動、無限擴展、動態遷移。未來智慧礦山的IT將以資源池化的私有云為基礎,公有云和混合云為補充,通過一體化的云管理平臺實現應用系統的彈性部署和靈活調度。為了與主流開源系統兼容,云管理平臺將Openstack 解耦為基于Docker的多個解耦微服務,從而保障Openstack 及租戶應用負載零中斷的灰度升級。

圖4 平臺實現技術架構
(2)內核層:內核層為開發者隱藏部署和管理微服務的復雜工作,將其進行內置處理,實現彈性伸縮架構、自動化運維、支持按需服務/付費。調度和任務管理器Mesos 用于跨數據中心的資源管理,與上層調度器配合來解決大數據的資源池化調度問題。容器編排引擎Marathon/K8S 用于集群管理,解決大規模應用部署的問題,實現集群的熱升級、動態伸縮、負載均衡、服務發現。鏡像倉庫中以容器為單位,實現鏡像存儲(靜態)和容器托管(動態)。負載與引流(Haproxy)實現資源的負載均衡功能。信息交換的同步機制采用Dubbo 實現,異步消息處理機制采用Kaf ka 實現,分布式協同采用Zookeeper 實現,異構系統之間的通信采用ESB 實現。持續交付平臺實現源碼管理、自動構建、部署管理、集成測試、發布管理,采用Jenkins 實現。大數據框架主要由數據庫、應用框架組件、基礎服務組件構成,數據庫包括關系型MPP 數據庫、RDB 數據庫、內存數據庫,應用框架組件主要包括數據預處理ETL、Spark,基礎服務組件主要包括HDFS、YARN 等。
(3)服務層:服務層是直接面向程序開發人員,為開發者提供在分布式系統的斷路器、控制總線、配置管理、智能路由等開發工具包。當前比較流行的微服務開發框架包括Spr ing Boot、Netf lix、CONSUL、ZIPKIN 等。微服務治理與部署工具包括Consul、Docker Swarm。
(1)業務上平臺的途徑:煤礦企業的業務上平臺可采用以下兩條途徑:核心涉密信息部署在自建私有云平臺上、非核心涉密且突發要求高的應用負載部署在公有云平臺上,從而實現安全私密保障與彈性敏捷的無縫優勢互補。
(2)分布式平臺架構的建設方式:煤礦企業的邊緣或分支站點通過部署一臺到幾臺服務器,實現輕量化的管理平臺;煤礦集團內部部署私有云平臺,實現跨區域統一自動化管理的網絡和安全策略。全國煤礦監管平臺采用混合云平臺,實現動態添加和減少站點、多站點管理擴展能力。
(3)傳統平臺與新平臺的雙模式運行:傳統平臺向新平臺的轉型需要一個過程,為了兼容傳統平臺,新平臺通過服務總線與傳統平臺進行互通。傳統平臺的軟件逐步實現微服務化改造,最終由新平臺實現統一運營。
為解決智慧礦山平臺無法做到計算和存儲資源的共享和按需使用,基于容器、微服務、DevOps 等技術,本文提出智慧礦山能力開放平臺架構設計,可以實現硬件資源的按需使用、各子系統低耦合集成和簡便的信息交換方式、面向微服務的敏捷開發環境。通過對平臺實現技術架構的分析,驗證了本文提出平臺有效實現了智慧礦山的設計思路和建設目標,平臺應用的分析驗證了平臺的可用性和可擴展性。