TPRI-DMP平台介绍
1 TPRI-DMP平台概述
TPRI-DMP为华能集团西安热工院自主产权的工业云PaaS平台,已经过13年的发展和迭代,其具备大规模能源电力行业生产应用软件开发和运行能力。提供TPRI-DMP平台主数据管理、业务系统开发与运行、应用资源管理与运维监控等功能,具备应用弹性伸缩、承载大规模并发、持续开发与集成的能力;制定统一的平台开发规范和流程,实现业务系统代码规范管理,实现集成、测试、部署与运维的标准化;大数据中心作为TPRI-DMP平台的数据支撑,由公共业务数据库(主数据)、各业务系统数据库、数据采集平台、数据仓库、自定义报表工具、BI分析工具、深度分析工具等组成,为云平台提供高可靠、高性能、开放共享的数据服务。
2 平台架构
TPRI-DMP平台在服务器虚拟化设施基础上,采用当前主流技术,通过Kubernetes容器集群管理服务、中间件服务、DevOps工具、轻量级容器管理工具、数据库服务、应用基础服务以及大数据中心,建立起一整套包含持续集成、持续交付和持续部署的、满足能源企业应用系统开发、部署、运行及维护的一整套PaaS平台。
2.1 容器平台
TPRI-DMP平台的容器平台包括K8S集群管理、容器面板、集群监控、日志收集和查看、容器镜像、容器编排等组件。通过容器云技术组件实现平台容器上规模后的统一编排、自动调度和实时监控,保证整个服务集群的可靠运行。
TPRI-DMP平台容器平台的核心是基于K8S开源的容器编排系统, 通过Rancher管理K8S集群中的各个资源对象。可以实现服务发现和负载均衡、存储编排、弹性伸缩、自动部署和回滚、自动完成装箱计算、自我修复、密钥与配置管理。TPRI-DMP平台运维监控主要包含状态监控、日志管理两部分。状态监控负责收集主机、K8S集群的资源使用状态,并通过图表展示结果。状态监控主要由两部分组成,分别是收集状态的Prometheus,展示状态结果的Grafana。日志管理采用EFK,EFK由ElasticSearch、Fluentd和Kiabana三个工具组成。其中Elasticsearch是一款分布式搜索引擎,能够用于日志的检索,Fluentd是一个实时开源的数据收集器,而Kibana 是一款能够为Elasticsearch 提供分析和可视化的 Web 平台,EFK的组合为日志数据提供了分布式的实时搜集与分析的监控系统。
2.2 DevOps
平台提供"开发运维一体化"DevOps的运维方式,实现研发、测试、运维的一体化。DevOps重视"软件开发人员(Dev)"和"IT运维技术人员(Ops)"之间沟通合作的文化、运动或惯例。透过自动化"软件交付"和"架构变更"的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
TPRI-DMP平台DevOps主要功能是管理开发人员提交或者合并的代码,触发构建工具实现代码的自动构建、自动打包、自动部署一整套流程。开发人员通过Git提交代码至Gitlab,触发Jenkins自动开始代码构建,在构建的过程中需要的依赖包从私有源仓库Nexus拉取,构建完成后打包镜像推送至Harbor,拉取镜像和配置文件部署应用至K8S集群。在这个过程中根据不同分支预设的不同脚本,推送的位置也不同,执行的方式也不同,部署的环境也不同,以实现部署的灵活性和自动化。
TPRI-DMP的DevOps还包括前、后端低代码工具,均为西安热工研究院自主研发,拥有完全知识产权。
TPRI-DMP前端设计器
TPRI-DMP前端设计器基于Vue、Element UI进行开发,实现应用功能前端界面可视化开发,与后端TPRI-DMP平台通过RESTful接口方式进行数据交互。
TPRI-DMP后端设计器
平台后端业务流低代码工具是用来开发后端API的工具。其采用所见即所得的编辑方式,无需编写代码,只需要通过拖拽组件和线段连接,即可开发出标准的后端API接口,实现后台业务的高效开发。业务流低代码工具主要包括:组件库、业务流清单、画布等模块。
2.3 云中间件服务
TPRI-DMP平台提供各类云中间件服务,包括消息队列、分布式缓存、微服务开发治理框架、微服务开发集成平台、通知消息和基础数据服务,为云原生应用的开发提供通用和高效的运行机制。
为了确保应用系统之间的消息通讯以及异步调用,平台提供统一的消息中间件服务,中间件采用ActiveMQ,为了确保消息服务的高可用性,采用分布式集群部署模式。
平台提供统一的基于Redis的分布式缓存服务,运行于平台上的所有应用都可以通过该服务进行数据的缓存。为了确保缓存服务的高可用性以及效率问题,Redis采用集群模式进行部署。
微服务管理框架通过Istio来实现,Istio由控制平面和Envoy的数据平面共同构成了一个服务网格实现。其中,控制平面Pilot负责管理和配置代理来路由流量,并配置Mixer以实施策略和收集遥测数据;数据平面由一组以Sidecar方式部署的智能代理(Envoy)组成,这些代理可以调节和控制微服务及Mixer之间所有的网络通信。