基于云计算的装备保障信息系统集成
2021-08-12李文俊杨学强杜家兴
李文俊,杨学强,杜家兴
(1.陆军装甲兵学院 装备保障与再制造系,北京 100072;2.装备发展部军事代表局驻上海地区军事代表室,上海 200437;3.陆军装甲兵学院 信息通信系,北京 100072)
0 引言
装备保障信息系统集成对于消除信息孤岛、促进各类装备保障信息资源共享、提升基于信息系统的装备保障能力具有重要作用。当前装备保障信息系统集成采用“服务器+客户端”的系统架构,在这种架构模式下,每个单位都需要购置服务器建立数据中心机房,这些数据中心的构建是为本单位甚至本业务服务的,面向的是特定用户,存在基础设施利用率不高、终端运维压力大、数据共享度低、不适应陆军装备管理转型要求等一系列问题。云计算是目前信息领域的前沿技术之一[1],它通过网络将分散的计算与存储、应用运行平台、软件等资源整合在一起形成一个共享虚拟资源池,并以动态按需和可度量的方式向用户提供服务[2]。在云计算模式下,基础设施由云服务提供商负责建设和维护[3],能够将用户从各类服务器、网络交换等硬件设备的配置、升级、维护等繁杂事务中解放出来,使其专注于装备管理业务应用本身,有利于降低信息系统建设成本、提升信息基础设施利用效率。云计算技术为解决装备保障信息系统集成问题提供了新的解决思路和方案。
国内外学者围绕基于云计算的系统集成展开了许多研究。文献[4]为提升服务可用性,研究了基于云平台的建筑信息管理系统集成平台;文献[5-7]分别针对了云集成中基础设施即服务层(Infrastructure as a Service, IaaS)、平台即服务(Platform as a Service, PaaS)层、软件即服务(Software as a Service, SaaS)层应用集成问题展开研究;文献[8]研究了云计算条件下数据中心构建问题,有效提升了大数据管理效率;文献[9]基于云计算技术搭建了铁路信息共享平台,并针对基于云计算的平台架构、共享信息存储、服务检索和安全机制等关键技术展开研究;文献[10]研究了信息系统向云平台迁移中遗留系统组件重用问题,降低了云集成的成本;文献[11]设计了云制造环境下加工制造资源虚拟化架构,并对加工制造资源的语义建模、虚拟化映射、选择与优化等关键问题进行了研究;文献[12]针对基于云平台的多供应链协同问题,构建了基于云平台的多供应链协同模型,提出了基于云平台的业务功能、业务流程、业务数据库定制方法;文献[13]设计了电子政务管理网站群云计算平台,针对信息安全问题提出了数字签名密码机制和网站群安全审计方法,建立了基于PSO-BP神经网络的电子政务管理网站管理效能评价;文献[14]设计了一种基于云计算的装备信息集成框架;文献[15]采用云计算技术设计了面向服务的分布式海战场指挥控制系统架构。
从现有研究可以看出,云计算在地方电子政务、制造业、铁路和供应链等领域的系统集成中均取得了成功,为基于云计算的装备保障信息系统集成提供了经验,也证明了云计算技术在装备保障信息系统集成中应用的技术可行性。虽然部分学者对基于云计算的装备保障信息系统集成架构进行了探索,但是装备保障军事特性不强,且关于云计算条件下装备保障应用服务化构建和服务调用、治理和部署等应用集成关键问题的研究较为缺乏。
为此,本文以云计算为契机,在参考美军和地方基于云计算系统集成经验做法的基础上,结合装备保障信息系统特点,提出基于云计算的装备保障信息系统集成方法——一种新的装备保障信息系统开发与集成模式。
1 基于云计算的装备保障信息系统集成平台框架分析
基于云计算的装备保障信息系统集成平台,用户通过提供统一数据资源管理、强大的计算能力、分布式微服务开发环境、可复用的公共业务模块和自动化运维手段,可以直接使用“云”提供的标准软件或使用“云”提供的服务组件进行系统开发并将其部署到“云”端以供调用,有利于实现装备管理信息系统快速开发、部署。下面从物理架构和技术架构两方面分析集成平台框架。
1.1 集成平台物理架构
依托当前军队网络基础设施建设成果,借鉴互联网云平台、APP应用等先进理念,构建如图1所示装备保障信息系统集成云平台。
充分运用云计算、大数据分析等先进技术,构建“物理分布、逻辑一体、架构一致”的“1+N”分布式装备保障云数据中心体系,逐步形成面向全军的基于微架构的信息服务能力;依托军事综合信息网、军用CDMA/4G网、北斗卫星通信、大S卫星通信,利用长期演进(Long Term Evolution,LTE)区域组网和虚拟专用网络(Virtual Private Network, VPN)、传输加密、隔离交换等技术,形成一套全域联通的安全网络体系,实现固定场区和机动条件下各类终端的按需接入;在武器平台、装备分队(场所)、业务机关等配置专用信息终端如基于总线的装备运行参数记录仪、嵌入式装备技术状况监测设备、装备场区传感器网络、便携式信息处理终端、授权管理终端等,通过部署于集成平台中丰富的装备保障APP应用和网络接入方式,实现终端与云中心的数据交互访问;形成以装备保障信息系统集成云中心为核心、以安全可靠随域接入网络为支撑、以多样化的装备保障应用终端和在线采集设备为末梢的“云、网、端”一体化的系统架构。
1.2 集成平台技术架构
根据装备保障信息系统集成需求,设计集成云平台技术架构时,在传统云平台IaaS、PaaS和SaaS层之间加入军事支撑服务层。系统集成平台采取层次结构,由基础设施层、状态感知层、基础云平台层、军事支撑服务层、业务流程层、应用系统层、用户层和安全保密层等构成,如图2所示。
(1)基础设施层 基础设施层为整个集成平台提供物理资源,包括计算、存储、网络等基础设施,具体由数据中心机房、军综网资源、无线网络条件、军用CDMA网络资源、服务器设备、存储设备及网络设备组成。
(2)状态感知层 该层通过应用射频识别、传感器采集、总线数据获取等智能感知手段,实现装备技术状况、装备运行参数、弹药器材物资等各种装备状态和业务数据的采集,为优化装备保障资源配置,实施装备精细化管理提供实时、在线的数据支持。
(3)基础云平台层 基础云平台层为整个集成平台提供快速创建、按需调度、自动伸缩、安全可靠的云计算环境,包括云操作系统、IaaS、PaaS三个层次。其中,云操作系统利用虚拟化技术将基础设施层的物理资源组织成资源池,为上层的服务和应用提供基础;IaaS层以服务化的方式向Paas层及业务系统提供计算、存储、网络、安全、负载均衡等服务;Paas层是一种分布式平台服务,通过提供数据库服务、中间件服务和大数据服务,为用户定制开发装备保障信息系统提供开发环境。
(4)军事支撑服务层(Army PaaS,APaaS) APaaS层与软件工厂功能类似,为装备保障信息系统创建提供可复用的公共业务模块,包括统一数据管理平台、统一业务服务支持平台和统一应用接口。
统一数据管理平台以数据运用为核心,提供数据收集、数据处理、数据分析、数据分发、数据服务等公共数据服务,覆盖数据使用的全生命周期。统一数据管理平台对外以RESTful 应用程序接口(Application Programming Interface, API)和软件开发工具包(Software Development Kit, SDK)的形式提供数据服务,实现数据来源于业务又应用于业务,有助于提升装备保障数据的应用价值。
统一业务服务支持平台通过积累军事业务通用功能,抽象出公共可复用的软件组件,这些组件主要包括统一权限管理、军事应用商店、地理信息服务、即时通讯、跨域访问代理、实时数据采集、视频服务、图像识别、知识图谱构建、指数分析和资源实时在线管理等,这些服务以RESTful或SDK的方式发布给应用,能够大大提升装备保障信息系统的生产率、缩短装备保障信息系统研制周期。
(5)业务流程层 该层在APaaS层支撑下,根据一体化联合作战装备保障任务需求,对相应装备保障业务流程进行管理和优化,再根据优化后的业务流程对装备管理服务进行编排、组合,有助于装备管理资源和装备管理业务自组织协调动态重组、高效完成装备管理任务。
(6)应用系统层 该层采取微服务架构,通过创建不同层次、不同粒度的装备管理微服务,再根据一体化联合作战装备保障任务需求,结合相应业务流程对装备管理微服务进行组合,形成种类丰富的装备管理信息系统应用,如数字化装备车场、网络化维修作业、物联化仓库物流、自动化调控中心等装备业务应用;装备在线管理、数据采集控制、营区资源管控、物资精准保障等装备物联网应用;挖掘分析、任务规划、决策预判、态势掌控等装备保障辅助决策应用和态势支撑、方案支撑、行动支撑等作战支撑应用。
(7)用户层 该层是用户访问系统集成平台的入口,它可根据任务需求,灵活配置。用户在取得权限许可访问资格后,可通过PC客户端、PDA(personal digital assistant)和手机APP应用客户端等多种应用终端访问并获取装备管理服务。
(8)安全保密层 根据装备保障业务需求和相关保密规定,建立预警、防护、监控、响应、恢复环环相扣的防护链条,形成集成云平台安全保密体系,为用户提供网络安全、主机安全、操作系统安全、数据安全、应用安全和终端安全等安全保障服务,实现装备保障数据和信息系统应用的安全、受控访问。
2 装备保障微应用设计
当前装备保障信息系统集成建设采用大而全的整体式应用架构,存在研制周期长、部署更新困难、通用性与专用性不兼容等问题。微服务是由MARTIN[16]提出的一种架构风格,它将应用系统分解为多个功能独立的业务应用,每个微应用对外提供RESTful API接口,彼此之间通过服务网关统一进行接口调用,并通过容器对微应用进行封装,使其独立部署运行,保障应用和服务分解成更小的、松散耦合的组件,以便于应用与服务更加容易的升级和扩展。因此,本文采用微服务架构对装备保障应用进行设计。
2.1 装备保障微服务划分
微服务边界划分对于系统性能具有重要影响,划分过细会增加分布式系统管理复杂度,降低系统可靠性;划分过粗会使系统灵活性降低,不利于快速响应装备保障业务需求变化。为此,装备保障微服务划分应遵循以下原则。
(1)高内聚、低耦合 每个装备保障微服务内部是高内聚的,专注于完成一项装备保障业务能力,装备保障微服务之间是松散耦合的,采用异构开发、可独立部署,提供对外接口,实现灵活部署和弹性伸缩。
(2)面向装备保障业务划分 根据管理层次不同,可分为业务操作层、统筹管理层、决策规划层3个层次。在每个层次中,按照“所有事务性要求和数据一致性要求的逻辑放在一个服务中”[17]的方法进行微服务划分。
(3)符合微服务粒度规范 设计的装备保障微服务应符合“一个微服务只提供一个对象资源模型RESTful API接口”[18]微服务粒度规范,可通过解析jar包对外接口是否只有一种对象资源类来检测微服务是否符合规范。
2.2 装备保障微应用架构设计
基于微服务的装备保障信息系统应用(简称装备保障微应用)依托集成云平台,为各类云点设备的APP软件提供统一业务服务。Spring Cloud、Dubbo、Dropwizard和Consul是常见的几种微服务开发框架[19],本文选取当前流行的Spring Cloud框架为例,对装备保障微应用架构进行设计,其具体结构如图3所示。
从图3中可以看出,装备保障微应用架构主要分为以下4层:
(1)云点设备层 云点设备层主要包括电脑终端、平板电脑、手机、行车记录仪和其他设备等,这些云点设备上安装有各类装备保障APP软件。
(2)通信网络层 通信网络层主要包括军事综合信息网、军用CDMA/4G网、军用LTE区域网和北斗、大S卫星通信等全域联通的安全网络,各类终端APP依托通信网络层进行服务调用和结果反馈。
(3)微服务层 微服务层向上为终端APP应用提供统一的业务服务支撑,向下操作各种类型的数据管理系统。
(4)数据存储层 数据存储层主要包括不同种类数据库,如关系型数据库、NoSQL数据库和Redis等。其中,关系型数据库主要存储结构化数据,NoSQL数据库主要存储半结构化、非结构化数据,Redis数据库存储高并发数据的缓存。
2.3 微服务网关设计
装备保障微应用中服务众多,如图4左侧的微服务访问方式直接将服务暴露给用户,既不利于信息安全保证,也对用户不友好。为此,如图4右侧所示,在微服务架构后台多个服务与UI(user interface)之间加入API Gateway使其解耦,提供安全、过滤、流控等API管理功能,通过统一服务入口使得微服务对前台透明并聚合后台服务,解决传统Web开发无法满足业务快速迭代、变化的问题。本文采用Spring Cloud提供的Zuul组件担任路由网关的角色,负责路由的转发与过滤。微服务网关提供了统一的服务出口,有着很高的负载,往往成为性能的瓶颈。因此,选取Spring Cloud提供的Ribbon组件作为负载均衡器,对外部访问进行分流和负载均衡。
2.4 服务治理
服务治理问题解决的是“服务在哪?”的问题。在基于云计算的装备保障微应用中,装备保障微服务的网络位置是动态分配的,由于服务扩展、失效和更新等原因,服务配置可能发生变化,为此需要一种服务发现机制。目前,有客户端发现和服务端发现两种主要服务发现模式[20]。以业务服务1调用装备服务A过程为例,客户端发现模式中,服务提供者将装备服务A的服务信息注册到服务注册中心,并通过心跳维持长链接,实时更新链接信息,服务消费者业务服务1通过服务注册中心寻址拿到可用的装备服务A的地址和端口,并根据实现制定好的负载均衡算法,选择一个可用装备服务A实例响应请求;服务端发现模式中,服务消费者业务服务1通过负载均衡器发送请求,负载均衡器查询服务注册中心,并将请求路由到可用装备服务A实例上。本文选取Spring Cloud提供的Euraka组件作为服务治理框架,其工作模式为客户端发现方式,去掉了中间的一些操作,具有简单、方便等特点。
2.5 服务调用
服务调用解决的是“怎么调用?”的问题,在装备保障微应用中,服务之间均遵守标准的HTTP REST轻量级通信协议[21]来发布接口,基于HTTP的REST支持各个语言、跨客户端,具有技术实现灵活、简便等特点。本文采用Spring Cloud提供的restTemplate组件进行服务调用,restTemplate提供了Restful远程调用的模板,装备保障应用开发人员在远程调用时,可以像本地调用方法一样进行服务调用。针对异步调用,本文选取RocketMQ消息系统[22]作为消息总线,通过轻量消息代理连接各分布节点,为分布式系统提供异步处理、系统解耦、数据同步、流量削峰等功能。
2.6 服务可靠性保障与管理
微服务拥有异构开发、独立部署测试、按需伸缩和故障隔离等诸多好处的同时,也存在以下挑战[23,27]。微服务应用是分布式系统,分布式条件下,服务调用性能会因为网络时延、网络故障等问题而降低,数据一致性和系统可靠性问题会随着微服务数量的增加变得越来越突出。此外,微服务化后,服务间的相互依赖关系加大了服务管理的复杂度;众多的服务实例也会增加服务的部署和监控难度。
针对上述挑战,本文采取链路追踪、服务容错和服务配置等手段进行解决。
2.6.1 链路追踪
装备保障微应用中,用户请求时服务间的相互调用关系构成了一张复杂的调用网。某一服务的调用失败或网络超时可能造成整个请求的失败,为了准确地进行问题定位,需要对服务链路进行追踪。本文采用Spring Cloud提供的Spring Cloud Sleuth组件进行服务链路追踪。
2.6.2 服务容错
装备保障微应用调用服务集群时,如果一个微服务调用异常,如超时、连接异常、网络异常等,故障在调用链路上的传播可能会引发“雪崩”效应,导致整个微应用系统崩溃。为了解决该问题,通常使用降级、限流、熔断器、超时重试等容错方法进行服务容错[28]。本文采用Spring Cloud提供的Hystrix组件进行服务容错,当服务调用失败次数达到一定阈值时,开启继电器,Hystrix会自动禁用该服务的访问以防止错误进一步扩大。此外,Spring Cloud提供的Turbine组件,可结合Hystrix监控微服务集群。
2.6.3 服务配置
装备保障微应用中,服务众多,而每个服务配置信息可能不同。为此,需要一个分布式配置中心对服务的配置文件进行统一管理并实时更新。本文采用Spring Cloud提供的Spring Cloud Config组件统一管理服务的配置信息。
3 基于Docker和k8s的装备保障微应用部署
装备保障微应用架构中,装备保障微服务异构开发加之服务组件之间的交互关系,增加了整个装备保障微应用的开发、部署及运维的复杂度,而容器与与传统虚拟技术相比,体积小很多且能够快速部署,其与生俱来的轻量级特性和速度[29],非常适用于装备保障微服务架构,既能够使用较少的资源,又能够快速响应装备保障需求变化。
3.1 装备保障微应用部署架构
Docker[30]是一个基于Linux容器技术的开源工具。通过将应用程序及其依赖包打包成一个标准格式的镜像,并以容器的方式运行,消除了环境不一致性,做到“一次封装,到处运行[31]”。同一台宿主机上的容器共享系统Kernel[32],使得容器可以做到秒级启动和停止。此外,容器的Linux Namespace、Linux Cgroups(control groups)[33]等功能可以实现资源的隔离与限制。容器技术的可移植性、迅速启动、隔离特性等特点,有利于降低装备保障应用开发的复杂度,提升装备保障应用研发的效率。为此,本文基于Docker容器技术,将装备保障微应用以容器的方式发布到集成云平台解决应用部署问题。
一体化联合作战条件下,装备保障应用需要适应战场态势迅速变化进行快速柔性重组,单台主机负荷无法完全满足装备保障应用的成长,对容器集群、编排工具的需求应运而生。Kubernetes[34](简称k8s)是Google为满足该需求而开发的开源集群管理系统,具有可靠的容器重启、自愈、高集群利用率、分组隔离、便于横向扩展、微服务友好、简化运维等功能特性[35]。为此,本文使用k8s应用编排工具对Docker容器进行编排和管理,以提升装备保障应用可用性和资源利用率。关于k8s高可用架构,已经有成熟的社区实践,本文不再赘述。
本文基于Docker容器技术和k8s容器集群编排工具,构建如图5所示的装备保障微应用部署架构,以实现装备保障微应用的高可用、高性能、高稳定和高安全的一站式开发、部署和运维。通过集成云平台提供的镜像管理、容器管理和应用编排功能,将装备保障微应用部署到PaaS层上,从而实现应用资源的按需调度、应用实例的自动伸缩、负载均衡和应用的容错自愈,并且可以直观查看应用的资源使用状况、健康状况,满足装备保障业务应用的高可用性、稳定性和可扩展性。
由图5可以看出,IaaS层利用Docker技术和k8s工具完成基础设施层物理资源集群的虚拟化,向上提供计算、存储和网络等服务;资源管理能够实现对CPU、内存、存储和网络等虚拟资源的统一管理,包括资源综合使用情况的监测和统计、虚拟主机运行状态的监测、容器的运行状态监测等;应用管理以装备保障应用开发人员为中心,包括代码管理、持续集成和装备保障微应用创建、升级、回滚和删除的全生命周期管理等镜像管理功能,能够对容器镜像进行统一管理,支持镜像的创建、存储、删除,支持根据镜像启动容器以及镜像的分类管理;容器管理能够实现对容器的全生命周期管理,包括容器的创建、启动、重启和删除,容器的自动化调度、故障诊断和自动转移、负载均衡、弹性伸缩以及容器的共享存储等;容器注册发现能够实现容器IP、端口等配置信息的集中管理,支持容器配置信息的自动注册,提供RESTful API形式的访问接口,支持动态获取容器配置信息。
3.2 装备保障微应用部署流程
集成云平台条件下,装备保障微应用的开发、部署和运维全都交给集成云平台,使得开发人员可以专注于装备保障微应用程序开发,无需担心装备保障微应用后续的部署和运维问题,对于优化装备保障微应用使用效果、提升基础设施利用率、缓解终端运维压力具有重要作用。基于容器技术的装备保障微应用部署流程如图6所示。
(1)装备保障微应用开发人员对不同技术体制装备保障业务应用及其运行环境进行封装,将含有dockerfile文件的应用程序代码提交至代码仓库。
(2)代码仓库通过trigger触发Jenkins持续集成(Continuous Integration,CI)流水线[36],将代码编译、打包成镜像。
(3)CI工具将打包好的镜像上传至镜像仓库,然后推送至持续交付平台(Continuous Delivery,CD),然后部署到测试环境中进行测试。
(4)测试通过后,通过k8s进行调度、编排和部署,使装备保障微应用上线。
4 典型装备保障微应用分析
器材管理是装备保障中的一项典型业务,本文以该业务应用为例进行分析。根据管理层次不同,器材管理信息系统应用可分为业务操作层、统筹管理层、决策规划层3个层次。其中,业务操作层应用主要面对的是分队用户,包括器材日常收发和请领工作等应用;统筹管理层应用主要面对的是机关用户,包括计划制定与管理等应用;决策规划层应用主要面对的是首长用户,包括器材保障态势分析与方案制定等应用。传统模式下器材管理系统的总体结构如图7所示。
根据装备保障信息系统集成需求,通过整合商用成熟基础云平台产品提供大数据、云计算、机器学习等基础云环境支撑以及专用业务支撑,部署了某系统集成云平台原型系统。该系统采用阿里云的企业级分布式应用服务(Enterprise Distributed Application Service, EDAS)产品作为微服务中间件,支撑装备保障微应用的开发、部署和运维,提供门户及桌面系统、权限管理、应用商店和典型装备保障微应用等应用服务。云计算模式下,器材管理系统结构如图8所示。
结合图7和图8,从部署开发、管理维护和和使用便捷性3方面对装备保障微应用进行分析。
(1)部署开发方面 在装备保障微应用中,可以根据业务特征选择不同的技术方案进行异构开发,并且可以独立部署测试、按需伸缩;而传统模式下,一个系统中所有装备保障服务都采用一种技术架构,对其中一个服务进行改动就要牵一发而动全身,并且只能纵向扩展。
(2)管理维护方面 云计算模式下,用户无需自己安装数据库、配置服务器、部署网络等操作,所有管理维护工作都交给“云”端,大大减轻了装备保障信息系统管理维护压力。据粗略测算,装备保障信息系统的平均发布时间由数周至数月减少到15分钟以下,服务器购置费用可节省80%左右,运维人数降至原来模式得10%左右。
(3)使用便捷性方面 云计算模式下,装备保障微应用中的微服务组件是模块化的,其专注于完成一项业务功能,粒度很细,占用资源相对较少,使用灵活性强。以业务操作层仓库保管员进行入库处理作业为例,入库单开据人员和回填人员只需在系统集成平台中下载安装相应功能的APP即可,无需安装整个器材管理系统,大大提升了应用灵活性。
装备保障信息系统由C/S架构转向B/S架构后,能否应对用户高并发调用的需要,是制约系统集成成效的关键问题之一。为了验证该问题,选取装备代码查询和资源在线监控2款微应用,使用多个客户端并发调用这2个APP,计算客户端从发出请求到请求得到响应的平均时间。通过使用不同数量的客户端并发调用这2个APP微应用各500次,计算平均响应时间,试验结果如图9所示。
由图9可以看出,资源在线监控APP的平均响应时间高于装备代码查询APP。究其缘由,是因为资源在线监控APP相较于装备代码查询APP,属于密集计算型APP的缘故。此外,随着并发调用客户端数量的增加,两个微应用的平均响应时间随之增加,但并发数高达500个时,响应时间仍是ms级。从试验结果可知,本文研究能够满足一体化联合作战装备保障条件下高并发调用的需求。
5 结束语
本文针对当前装备保障信息系统集成存在的问题,构建了“云、网、端”一体的装备保障信息系统集成平台,采用微服务架构进行装备保障应用开发,基于Docker和k8s设计了装备保障微应用部署方法,有效提升了装备保障信息系统集成的敏捷性和灵活性,对于快速响应装备保障任务需求变化,适应新型陆军战略需求具有重要意义。下一步将对系统集成机制、标准体系构建和信息安全等内容进行重点研究。