1、  摘要(300)

2021年4月,我参与了某轻化工产品生产制造公司的离型膜生产管理系统项目的建设,并担任系统架构设计师,负责系统架构设计工作。该系统包括原膜追溯、涂布追溯、分切追溯、品质检测、报表信息查看等功能,能够完整管理离型膜生产的全流程及记录产生的相关数据,实现了对离型膜生产全过程的数据化和智能化,从而提升工厂的生产效率同时也增加了公司的经济收益。该项目共投入565万元人民币,历时14个月,于2022年6月正式交付运行至今,受到了客户的一致好评。

本文结合笔者的实际工作情况首先介绍该项目的项目背景,然后分析了云原生架构技术对于该项目的重要性,并以离型膜生产制造执行系统为例,结合云原生架构的特性与实际情况,分别讨论了云原生技术架构的应用情况。实践证明,在大型的应用系统构建过程中,使用云原生架构技术,能够实现各应用分区自治、自动化部署,具有弹性、强韧性及安全性等特点。(371)    

2、项目背景(500-600)

离型膜是一种具有特殊粘性表面的薄膜,广泛应用于电子产品、汽车泡棉、印刷等领域。离型膜在制作过程中需要将不同类型的有机化学混合剂涂至原膜表面,以产生不同的粘性而满足使用需求。因此,在生产过程中,需要对配料试剂及其各比例进行严格把控,以达到生产物料的准确性。离型膜生产具有客户多、产量大、单产品利润低的特点,工厂为提高收益需采用薄利多销的方式,但人工管控存在难度大、原料配比复杂、客诉率高、生产过程混乱等问题,故公司管理层决策开发使用离型膜生产制造执行系统(以下简称“离型膜MES”)解决以上问题。2021年4月到2022年6月,我参与了离型膜MES开发的工作,负责项目架构设计,系统主要分为三大流程:一、根据公司已有企业资源管理系统(ERP系统)中的数据,获取到当日需生产的订单并下发车间。二、车间根据订单信息进行配料并涂布生产,如果客户有特殊规格需求,则对涂布成品进行分切操作,生产完成后通过品质检测记录相关数据。三、品质检测合格后需与公司已有仓库管理系统(WMS)进行对接,完成成品入库操作,仓库后续再与物流联系发货,最终完成生产全部步骤。四、生产主管及部门领导可以查看生产从原膜到涂布再到分切及最终是否入库的全工程信息。在本项目中,我担任系统架构师的职务,主要负责系统的架构设计相关工作。(532)

3、正文(200+1000)

云原生架构以微服务和容器化技术为代表的,有服务化、强韧性、可观测性和自动化四类设计原则。通过服务化的设计原则,应用被分解为多个服务,可分别选择不同的技术,单个服务模块很容易开发、理解和维护,无需协调其他服务对本服务的影响;通过强韧性的设计原则,微服务可以分布式云化部署,负载均衡管理请求的分发,避免单机失败对整体服务的影响,以及弹性调整资源容量:通过可观测性的设计原则,能够对系统进行健康检查、指标监控、日志管理和链路追踪,提高系统运维、管理和排错能力;通过自动化的设计原则,可实现系统的自动化部署、自动化扩展伸缩、自动化运维、持续交付和集成,有效减少人工操作的工作量。(285)

离型膜MES基于Spring Cloud框架开发,将平台服务划分为三类,分别为前端Web服务,平台保障服务,业务服务。下面就这三类业务中运用到的技术及相关架构方法进行说明。

前端Web服务主要提供用户使用的界面,负责接收用户的请求并返回相应的响应。前端Web服务使用HTML、CSS、JavaScript等前端技术,以及Vue框架来构建用户界面。前端用户通过网络访问系统时,首先会通过前置的Nginx负载均衡服务器,再将请求转发送到前端网站的Nginx集群,前端网站通过发起Http请求来和后端建立连接,具体是通过调用后端REST API接口,通过Nginx等负载均衡器,将用户的请求分发到多个前端服务器实例上,以实现高并发和负载均衡,即使部分服务发生故障时,系统仍可正常向外提供服务。前端服务器以集群的方式部署,通过负载均衡器来管理和分发请求,确保服务的可用性和稳定性,在负载均衡算法的选择上,使用最小连接法,每当用户的请求来临时,任务分发单元会将任务平滑地分配给最小连接数的网关节点。

    平台保障服务主要实现后端微服务的基础框架,包括API路由网关、服务注册中心、服务监控组件等。API网关负责接收前端的请求,并根据请求从服务注册中心获取对应的服务配置,然后调用已注册的服务,主要通过Nginx进行负载均衡管理及反向代理。服务注册中心是整个云原生架构体系的核心部分,提供微服务的服务注册和发现功能,由Spring Cloud和Eureka组件来实现。涉及三种角色:服务提供者,服务消费者和服务注册中心。API网关路由、所有业务服务以及服务监控平台组件都注册到服务注册中心。服务监控平台通过注册到服务注册中心,获取所有到注册服务中的后端业务服务,并负责监控所有后端业务服务的运行状态,最后收集并展示整个微服务系统的运行状态。

    业务服务按功能模块,相应划分为原膜信息录入、涂布信息录入服务、分切信息录入服务、品质检测服务、报表数据查看服务及其他人员、设备、模具、能耗管理统计等。每个服务单独打包,基于Docker容器,连同运行环境一起封装,根据实际情况在一台或多台服务器部署多个实例。服务启动后会自动注册到服务注册中心。服务间协同工作,通过松耦合的服务发现机制,动态调用对方REST API接口。对于压力较大的服务,如综合信息查看服务、能耗信息统计服务,将部署为多实例集群。以综合信息查看服务为例,当用户进入综合信息查看界面时,调用原膜信息、涂布信息、分切信息和品质检测细信息,这几个模块分别传回数据,报表信息服务再将数据组合处理,并返回前端页面展示,即实现了对原膜、涂布、分切、品种监测一系列完整操作流程记录的信息查看。(1304)

4、结尾(400)

经过14个月的开发,该离型膜生产管理系统顺利投入使用,协助客户对软件进行全面的功能和性能上的测试,运行至今反馈良好。该系统由于保密性高、性能要求高、技术难度高,项目建设周期长等原因,建设过程中遇到了一些麻烦,例如在测评阶段,客户输入了大量不符合预期的数据和代码,造成了测评机宕机的情况,我们对此引入了心跳机制、快照回滚机制等,可以使系统在一分钟内恢复到正常工作状态,最终解决了该问题,并没有对项目正常开发及上线产生太大影响。由于笔者及项目团队成员十分重视项目的框架技术选型及搭建,最终保证了项目按质按量顺利交付。

通过此次云原生架构的设计及开发后,我也看到了自己身上的不足之处,在后续的学习和工作中,我将不断地充电学习,和同行进行交流,提升自己的专业技能水平,并对MES进行不断地更新机优化,更好地帮助公司生产提高效率。(356)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐