微服务架构技术及其在航天装备MES系统中的应用建议

 

点击

“航天软件和数字化”

关注我们

 

作  者:谢鹏志 宋友

前言
近年来我国航天事业发展迅速,以运载火箭发射次数为例,从2010的15次发射增长到2021年的48次发射。随着我国空间站的建立、太空探索的深入,航天发射任务执行频次将只增不减,这将缩减火箭、卫星、深空探测器等装备的设计与制造周期,提高产品质量的控制力度,面对这样的挑战,更灵活、柔性的航天装备设计与制造软件将成为重要的支撑力量。
微服务软件架构是一种具备云原生、高复用、高可用等特性的新兴软件设计模式,与传统基于单体架构的软件相比,基于微服务架构的软件将业务按模块划分,形成高内聚、低耦合的模块服务。模块服务独立演进,协同组成业务敏捷的柔性软件系统。微服务架构的灵活与柔性,使其能够快速响应市场变化,已被广泛应用于互联网行业,在航天领域也有相关应用,如肖海朋提出了一种基于微服务架构的航天企业试验管理系统构建方案,改进了传统单体系统存在的系统孤立、功能建设重复等问题[1],钟伟宏等设计并实现了一套基于Kubernetes微服务管理的航天地面应用软件架构,一定程度上满足了航天地面应用软件功能组成日益复杂,资源动态重组等需求[2],宋友等设计了一套基于微服务的空间任务协同计算平台,解决了涉及多领域多任务的空间科学计算问题[3]。航天装备的设计与制造作为航天工程重要一环,微服务架构在其软件系统上的应用,将有望进一步提高航天装备的生产效率和质量。

微服务架构简介

 

微服务架构定义

微服务架构出现之前,软件应用普遍采用单体架构,即软件中的所有功能模块全部集中在一个应用程序,比如一个EXE文件、WAR文件或者JAR文件等。软件之间的集成采用以企业服务总线(Enterprise Service Bus,ESB)为中心的面向服务的架构(Service-Oriented Architecture,SOA)架构实现。随着互联网、云计算等技术的发展,传统的单体架构与SOA架构难以应对市场需求的快速变化,于是微服务架构在2013年前后开始出现,并受到业界的讨论和关注,由于其概念与SOA架构表面看起来有一些相似性,导致其定义一直处于模糊和争议状态,直至2014年,由ThoughtWorks首席科学家Martin Fowler等首先提出了微服务架构的确切定义【4】,定义为:微服务架构是一种将单个应用程序开发为一套小型服务的方法,每个服务具备独立的运行进程,并运用轻量级机制(通常采用HTTP协议)相互通信。这些服务围绕业务能力构建,并可通过全自动部署机制独立部署。对这些服务采用去中心化管理,不同服务可以采用不同的编程语言实现功能,使用不同的数据库存储数据。

微服务架构与单体架构的区别显而易见,如图1所示,单体架构将所有功能模块集中在一个应用程序中,而微服务架构将功能模块拆解,形成多个独立运行的服务。单体架构的扩容必须连带复制所有的功能模块,而微服务架构扩容可根据业务需求,分别对服务进行复制,复制的服务可以部署在不同的服务器。

图2展示了微服务架构与SOA架构的差异,主要有两点不同:首先,适用场景不同,SOA架构适用于企业级应用之间的集成,着力于解决不同应用之间的数据交互,从而打破信息孤岛,而微服务架构适用于对应用本身的服务化拆解,着力于提高应用本身的敏捷性与高可用;其次,服务模式也不同,SOA架构以ESB总线为中心的方式提供服务,而微服务架构以去中心化的方式提供服务。

1 单体架构与微服务架构

 

2 SOA架构与微服务架构

微服务框架能力构成

随着微服务架构的完善,以及其云原生、高柔性、高可用等特性,迅速诞生了一批微服务框架,如Spring Cloud、ServiceComb、Go Micro等等,并得到广泛应用。虽然微服务框架发展繁荣,但并未形成一个框架标准,通过分析Spring Cloud、ServiceComb、Go Micro等框架,以及其在工程中的应用,本文尝试总结了微服务框架应该具备的五种能力,如图3所示。

(1) 网关保护能力:为外部系统访问微服务提供统一地址,并具备访问微服务时的身份认证、权鉴能力,保证访问的合法性,同时能够对访问进行路由,确保外部系统访问到正确的服务。此外,负载均衡、服务限流、服务降级、服务熔断都是网关重要的能力体现。 

666666

图 3 微服务框架能力构成

(2) 服务注册能力:为微服务提供服务注册和服务发现等功能,使得微服务之间、微服务与网关之间彼此可见。

(3) 服务配置能力:为微服务的启动、运行提供配置指导,保证微服务的正产启用与运行。

(4) 分布式事务处理能力:微服务架构中不可避免地存在这样的业务请求,它需要调用多个微服务来协同完成业务,如果任意一个微服务的调用执行失败,则所有的微服务调用需要进行事务回滚,此时,就需要微服务框架具备分布式事务处理的能力,保证业务请求执行的原子性。

(5) 日志管理能力:微服务架构中所有微服务均有产生日志并记录日志的需求,由于微服务独立运行,甚至部署在不同的服务器,导致日志分散,难以管理,此时需要微服务框架具备分布式日志的管理能力。此外,为防止微服务的调用形成环状,导致调用形成死循环,需要具备调用链跟踪与预警能力。

 

 

航天领域微服务架构的研究与应用建议

 

航天装备体系结构复杂、分系统之间交互耦合,更新迭代快,呈现多型号并举、研制与批产并重的局面,造就了航天装备制造的高离散特性[6]。多品种、小批量的离散制造特点要求航天装备的生产执行系统(manufacturing execution system,MES)具备高柔性和适应性。此外,航天装备需要在恶劣的环境中执行各种任务,要求装备具有极高的可靠性[6],而高可用的航天装备MES系统将在装备生产过程中为其质量提供更好保证。

微服务架构将软件按照功能模块划分为高内聚、低耦合的微服务,微服务独立演进,使得软件实现高柔性成为可能。制造执行系统协会(Manufacturing Execution System Association,MESA)将MES系统功能划分为工序详细调度、生产单元分配、文档管理、性能分析等11大模块[7],面对航天装备的品种、小批量特性,MES系统的柔性需求主要体现在与工艺相关的生产过程控制相关模块,而文档管理、性能分析等模块具备相当大的可通用性。结合微服务架构与MES系统特点,针对不同专业、不同型号的航天装备制造工艺,提炼个性化生产过程控制特征,形成多版本生产过程控制微服务,实现MES系统的高柔性。微服务可以通过共享锁技术[8],启动多实例分布式运行,一方面可以实现业务计算的负载均衡,另一方面可避免因为单实例崩溃导致MES系统不可用的风险,最大限度保证MES系统高可用。

运用DevOps工具作为应用支撑,以航天装备MES系统微服务架构应用探索为例,如图4所示。首先对现有MES或生产执行模型按照业务拆解,如拆解为基础数据管理、订单管理等等。然后进一步细化业务模型,并完成微服务模型设计,如基础数据管理中可细化为人员管理模块、组织机构管理模块和制造模板定义等等,而其中人员管理模块、组织机构管理模块在各专业生产现场的MES中均存在,可以抽象为通用微服务模块;而制造模板定义与工艺挂钩,不同专业生产现场的制造模板定义通常不相同,属于专业微服务模块。最后随着微服务的业务边界越来越清晰,提取的通用功能不断增加,持续对微服务进行迭代演进,达到微服务的高内聚、低耦合状态,最终实现MES系统具备柔性支持不同专业现场生产管控的能力,从而提升生产效率与质量。 

4 航天装备MES系统微服务架构应用探索

航天装备制造涉及专业广泛、产品众多,可以首先为那些业务相对简单、独立性较好、历史包袱较轻的专业或产品构建微服务架构的MES系统。然后将该MES系统作为模板纳入微服务池,复用到新的专业或产品。复用过程中结合模板与新专业或产品的需求,将微服务划分为全部复用微服务、部分复用微服务和全新微服务。其中,全部复用微服务是直接复用微服务模板;部分复用微服务是复用微服务模板并加以改进以适应新专业或产品的需求;全新微服务是新建微服务以满足新专业或产品的个性化需求。所有新专业或产品的微服务均作为模板纳入微服务池,便于进一步的复用,助力实现航天装备众多专业或产品的MES系统的敏捷构建,迭代过程如图5所示。

 

图 5 航天装备多专业MES系统敏捷构建示意

基于微服务架构,中国航空制造技术研究院研发了一套完全自主知识产权的工业云应用平台——Agile Shop,基于该平台实施了包括蜂窝复材、金属成型、紧固件等多专业的MES系统,并取得良好应用效果。航空与航天装备的生产制造具有很大共性,微服务架构在航天装备MES系统的应用将具有重大应用前景。航天装备制造的高离散性要求MES系统必须具备高柔性,方能满足日新月异的航天装备发展速度。微服务架构的化整为零,分而治之的设计理念,让软件从设计、开发到运维均变得更加灵活,具备更高的适应性,是实现高柔性MES系统的重要技术手段。

 
参考文献
 

[1] 肖海朋, 陈晓棠, 王天琪. 一种基于微服务架构的试验管理系统构建研究[J]. 航天制造技术, 2022(1):5.

[2] 钟伟宏, 孙甲琦, 朱宏涛,等. 基于Kubernetes的航天地面应用软件架构设计与实现[J]. 遥测遥控, 2021, 42(3):9.

[3] You Song, Xinxing Huang, Siyu Yang, etc. A Microservice-Based Multi-Cluster Computation Platform for Space Mission Design. The 8th International Systems & Concurrent Engineering for Space Applications Conference (SECESA 2018), 26–28 September 2018, Glasgow, United Kingdom.

[4] https://martinfowler.com/microservices.

[5] https://martinfowler.com/articles/microservices.html.

[6] 张楠楠, 董正强, 安孟长. 世界航空航天制造技术特点与发展趋势研究[J]. 军民两用技术与产品, 2013(12):4.

[7] https://mesa.org/topics-resources/mesa-model/history-of-the-mesa-models.

[8] 赖歆. 基于Redis的分布式锁的实现方案[J]. 信息通信, 2016(10):2.

 

END

点击阅读原文,了解更多

 

浏览量:0
首页    学术交流    微服务架构技术及其在航天装备MES系统中的应用建议
创建时间:2022-08-26 16:38