韩建萍
(山西能源学院,太原 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 等技术,本文提出智慧矿山能力开放平台架构设计,可以实现硬件资源的按需使用、各子系统低耦合集成和简便的信息交换方式、面向微服务的敏捷开发环境。通过对平台实现技术架构的分析,验证了本文提出平台有效实现了智慧矿山的设计思路和建设目标,平台应用的分析验证了平台的可用性和可扩展性。