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