基于微服务架构的生产管控系统设计与实现

2021-10-29 02:07杨建新姚志强宋旭杰
新技术新工艺 2021年9期
关键词:部署架构框架

杨建新,姚志强,宋旭杰,王 博,袁 野

(1.中国兵器工业信息中心,北京 100089;2.北京北方车辆集团有限公司,北京 100072)

智能制造作为中国制造业转型升级的重要战略方针,已经得到了从国家到地方的全方面支持,整个制造业的产业生态正在发生急剧变化[1]。车间生产管控系统作为实现数字化、自动化、网络化生产的软件平台,在整个智能制造技术体系中占据着重要的地位和作用。企业想要在复杂的市场竞争中获得长期生存和长远发展的能力,除了提供优质的产品,还需要具有先进的生产设备以及良好的数字化生产管理水平,这是影响公司生产力的基本要素,也是生产高质量产品的重要条件之一[2-3]。随着个性化定制生产逐渐成为制造业新的发展趋势,企业的业务场景越来越复杂,传统的单体架构、SOA架构已经很难满足互联网技术的发展要求。

基于此,优化传统的车间生产管控系统技术架构,提升平台的敏捷性、可扩展性、维护性以及容错性,已成为众多生产企业的共性需求。因此,为提升离散制造车间生产管控系统的可靠高效服务能力,本文采用先进的微服务架构思想[4-5],提出了一种基于微服务架构的生产管控系统设计方法。该系统将原来业务服务按照业务领域划分为独立的服务单元,每个服务之间相互独立,服务之间使用轻量级的协议进行通信,从而保障系统的高可扩展性。通过实际应用表明,本文所设计应用系统能够弥补传统架构的不足,可满足用户灵活多变的业务需求。

1 基于微服务架构的开发技术

1.1 软件开发架构的演进

1.1.1 单体架构

在单体结构模式下,软件所有功能代码都集中在一起,将所有业务模块及数据库封装成一个WAR包或JAR包,直接部署到服务器中运行[6]。这种模式对开发而言结构简单,方便部署和调试。由于各个功能模块的耦合程度高,随着企业业务需求的扩展与变化,导致单体式的应用系统变得越来越臃肿,造成可维护性低、开发速度缓慢、难以扩展等问题。极端情况下,单一业务模块发生变更会造成整个系统重新开发,造成极大的浪费。单体架构如图1所示。

图1 单体架构

1.1.2 SOA架构

SOA架构(Service-Oriented Architecture),即面向服务的架构[7-8]。不同于单体架构,SOA架构(见图2)将应用系统的业务功能模块拆分成多个细粒度、独立可重用的服务模块,并为各服务单元提供了统一的接口和通信规范,通过在企业服务总线对服务组合编排,实现对应用系统解耦。同时简化了复杂的业务流程,可以根据业务需要从不同入口进行处理,提高了系统调度的灵活性。然而,企业服务总线关注的是解决异构系统集成问题,并没有针对一个大型应用系统模块划分与组合提供具体解决方案,与此同时企业总线往往需要花费巨资才可实现。

图2 SOA架构

1.1.3 微服务架构

微服务架构是在SOA框架基础上的进一步优化,解决了SOA框架过度依赖于企业服务总线的问题,是一个真正意义上去中心化的分布式架构[9]。微服务的服务拆分遵循高内聚低耦合的原则,将企业应用拆分解耦成为功能独立的一系列服务实体,各个服务之间是不同的进程,不管是在开发的过程中还是在部署更新时,相互之间没有任何依赖,同时服务之间的通信也不局限于接口的规范和约定,有效地解决了SOA架构过于集中化的问题。微服务架构中每个独立的服务之间没有任何关系,不同的业务之间是完全分离的,任意服务部署更新并不影响其他服务,依然可以独立正常运行。因此,采用微服务架构设计的软件产品交付更加方便,容易达到快速开发和部署系统的目的。典型的微服务框架流程图如图3所示。

图3 微服务架构

单体架构、SOA架构与微服务架构在组件大小、耦合程度、团队架构等方面的对比见表1。

表1 单体架构、SOA架构、微服务架构对比

1.2 微服务的特点

微服务的特性使其在软件系统设计与研发应用中具有一定的优势,包括如下几个方面[10]。

1)系统易扩展。

微服务的业务独立、高内聚、低耦合使其在开发、维护和部署上具有优势,也使微服务架构较容易扩展。系统以业务功能为模块细粒化成一个个独立、专注的功能组件,每一个微服务是对单一职责的业务功能的封装,只专注于单一功能,微服务保证了系统在快速变化的业务环境中,根据需要快速调整服务的能力。在增加业务功能时,微服务架构只需要增加微服务节点,并调整关联的微服务节点的调用配置便可满足业务需求。

2)技术多样性。

由于微服务独立部署,每个微服务不仅可以根据自身的业务需求研发团队的特点进行技术和架构的选型,而且可以由不同的语言基于不同的平台异构开发,通过定义良好的接口和清晰的服务范围,使微服务间协同的复杂度能够简化。

3)较高容错性。

由于每一个微服务都是独立运行的,通过采取合理的方案,在微服务架构中可以实现更好的故障隔离。系统发生故障时,传统架构需要进行整个系统的修复,而微服务架构仅仅需要将有问题的服务进行变更或停止,其他服务可通过熔断机制实现应用层面的容错。

4)自动化部署。

在微服务架构中,每个服务都围绕业务构建,拥有独立的业务逻辑、数据源和适配器,且可发布服务接口给其他微服务和客户端应用使用,实现独立的可扩展自动部署机制,运行在自己的进程中,采用HTTP API轻量化机制进行相互通信,服务之间互相协调,互相配合,为用户提供最终价值。

2 基于微服务架构的生产管控系统设计

2.1 微服务框架的选择

随着微服务体系结构的不断发展及成熟,微服务框架已逐渐成为企业应用系统从传统架构转型到微服务架构的首选。微服务框架通常由服务注册与发现、路由、负载均衡、服务网关、分布式消息传递和服务容错等核心部件组成。当前较为主流的微服务框架有Dubbo、Motan、gRPC和Spring Cloud等4种,根据服务调用方式以及功能特色可将它们分为RPC(Remote Procedure Call)型微服务框架和RESTful微服务框架2种[11],这些框架的基本特征比较见表2。

表2 微服务框架基本特征比较

经过技术对比,选择Spring Cloud作为本项目开发的微服务应用框架。Spring Cloud是基于Spring Boot框架发展而来的[12],本质上是一种RESTful的微服务框架,具有高质量、稳定性、可持续性、便捷性等特性。Spring Cloud提供了一系列分布式基础设施的功能,如配置管理、服务发现、决策竞选、消息总线、负载均衡、智能路由和服务追踪等,使用简单方便且有强大的Spring社区支持,是一个标准化的、全站式的分布式解决技术方案。

Spring Cloud的结构框图如图4所示。当外部的请求想调用系统内部的服务时,首先通过API网关Zuul进行处理,API网关收到请求进行路由或者负载均衡处理后,将请求分发至具体的服务进行请求处理。各个服务在Eureka中进行注册,API网关可以从Euraka中获取可用的服务。另外,在Spring Cloud微服务开发框架中,采用Hystrix负责服务超时熔断的处理,服务监控和服务熔断相关指标的监控采用Turbine技术。

图4 Spring Cloud组件架构

2.2 生产管控系统总体架构设计

离散车间生产管控系统微服务平台采用总体架构如图5所示,自下至上包含5个层次,即基础环境层、微服务平台层、数据服务层、信息服务层以及平台应用层。

1)基础环境层。

基础环境层主要为上层服务提供基础设施服务,主要涉及工业网络、业务功能服务器、存储设备、系统软件等基础设施。

2)微服务平台层。

微服务平台层是通过微服务架构技术对现有已部署的物理资源抽象封装成微服务,实现服务的统一管理,为服务的注册、路由、调用、协作、容错、链路跟踪及治理提供技术支撑,实现资源管理优化和负载均衡,向外提供动态、灵活的基础设施动态服务。

3)数据服务层。

数据服务层由数据采集、数据存储管理以及数据服务3个子层构成。主要涉及车间运行的各类自动化设备、物流系统以及能耗管理系统等相关系统内主要设备的接入,系统通过不同协议(TCP/IP Webservice、Opc service、RS232和控制接口等)对设备运行数据进行采集、交互和存储。数据存储中心的各类数据都通过标准的数据服务接口为上层业务系统及第三方应用提供数据读写服务,每一类数据服务都是作为一个独立的微服务部署。

4)信息服务层。

信息服务层是按照业务需求进行划分的平台微服务,也是微服务层。依据业务场景、调用颗粒度、业务主题、数据库的存储结构等因素,生产管控系统将生产订单管理、工艺管理等业务模块按照微服务拆分原则拆分为独立微服务模块,例如物料微服务、工艺微服务、工序微服务、设备微服务等,它们是企业业务流程聚合中不可分割的、单一业务功能的服务。每一个服务部署在独立且相互隔离的运行环境,通过微服务网关采用RESTful模式进行相互调用。各个不同的制造企业可以根据生产业务的需求,配置和部署相应的微业务模块以满足企业自身的生产制造业务,达到个性化的需求。值得注意的是,对于服务的拆分粒度,没有统一的标准,不宜过细也不宜过粗,应尽量保证服务本身所具有的业务独立性和完整性,尽量减少服务间的依赖,特别是多层依赖以及链式调用。因此,按照业务划分的各个微服务应做到高内聚,尽量减少分布式事务。

图5 基于微服务的生产管控系统架构

5)API网关。

API代理网关位于信息服务层与平台应用层之间,主要作用包括以下3个方面:a.提供统一服务入口,让信息服务层的微服务对平台应用层相对透明;b.聚合业务服务,提升软件平台性能;c.提供安全、过滤、流控等API管理功能。

6)平台应用层。

生产管控系统应用层是通过根据业务需求,面向不同用户和应用场景,对业务系统中存在的标准业务流程进行抽取,通过调用不同的API服务形成不同功能的业务模块,包括生产订单管理、工艺管理、质量检测管理、监控中心、统计分析、物流管理、综合展示、数据采集和系统管理等功能于一体的综合性应用软件。该平台支持浏览器和移动终端的访问方式,用户可以按租用的形式按需获取生产管控应用服务,能够合理降低应用成本。

3 系统部署及功能实现

根据某企业车间生产的实际需求,基于Spring Cloud微服务架构定制化开发了数字化生产管控系统(见图6)。系统使用9台服务器、2台存储、2台千兆交换机、2台光纤交换机等作为硬件资源,基于K8S搭建了容器云环境为系统提供运行环境的支撑,使用Docker部署微服务应用,使用K8S来管理Docker集群,部署详情见表3。

图6 基于微服务架构的生产管控系统

表3 生产管控系统部署情况

经过近一年的应用,已经取得了良好的效果:1)系统的实施和应用提升了企业制造管理过程基础管理水平,实现了生产过程管控的电子化;2)通过实时的生产进度及物料消耗监控,实现了及时备料、送料,避免物料在生产线的堆积和供应不及,减少了搬运浪费;3)通过关键质量信息采集能够实时了解生产质量信息,从而实现对生产现场质量的及时管控;4)松耦合的微服务架构减少了各个服务之间的相互影响,不仅系统交付周期大大缩短,而且系统调整优化时间大大降低。

4 结语

本文采用微服务架构构建离散制造车间生产管控系统,将业务功能拆分成一个个独立的微服务部署并独立运行在各自的容器中,面向不同用户和应用场景,通过调用不同的API服务形成不同功能的业务模块,为企业提供生产订单管理、工艺管理、质量检测管理等个性化业务服务。该平台的优势如下:开发效率高,配置灵活,易于维护,扩展伸缩性强,具有广阔的推广前景和良好的经济社会效益。

猜你喜欢
部署架构框架
基于FPGA的RNN硬件加速架构
框架
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
功能架构在电子电气架构开发中的应用和实践
广义框架的不相交性
部署
WebGIS架构下的地理信息系统构建研究
部署“萨德”意欲何为?
关于原点对称的不规则Gabor框架的构造