CopyRight 2009-2020 © All Rights Reserved.版权所有: 中国海关未经授权禁止复制或建立镜像
微服务架构在海关信息化建设中的应用实践
作者:李飞 李志鹏 孙培
李飞 李志鹏 孙培
摘 要 本文系统梳理了微服务架构在海关信息化建设中的实践路径与方法,结合容器化、服务通信、分布式计算与云原生等关键技术,构建了标准化、模块化的应用开发体系,可为海关复杂业务场景下的分布式系统构建提供支撑。首先,本文分析了微服务架构发展的技术驱动力,明确了海关微服务应用的开发技术路线与设计原则;其次,结合海关微服务架构的落地部署,解析了前后端分离、服务拆解、注册发现、配置管理与服务治理等关键能力的系统设计;最后,结合分层SDK与公共组件库的建设经验,提出组件化、可运营、可持续的支撑框架体系。研究成果为行业级复杂业务系统构建提供了参考,对保障微服务架构的可扩展性、可维护性与标准化具有实践价值与推广意义。
关键词 微服务架构;容器;云原生;统一开发框架;组件库;软件开发工具包
Application and Practice of Microservice Architecture in Customs Informatization Construction
LI Fei 1 LI Zhi-Peng 1 SUN Pei 1
Abstract This paper systematically reviews the practical paths and implementation strategies of microservice architecture in customs informatization construction. Leveraging key technologies such as containerization, service communication, distributed computing, and cloud-native platforms, a standardized and modular development system has been established to support distributed systems under complex customs control scenarios. The paper first analyzes the technological drivers behind the evolution of microservice architecture and outlines the technical roadmap and design principles adopted in customs applications. It then examines the practical deployment of the microservice architecture, focusing on system design aspects such as frontend-backend separation, service decomposition, service registration and discovery, configuration management, and service governance. Furthermore, based on the development experience of layered software development kits (SDK) and common component libraries, the study proposes a component-based, operable, and sustainable framework. These practices offer valuable references for building large-scale business systems and contribute to improving the scalability, maintainability, and standardization of microservice architecture in the public sector.
Keywords microservice architecture; containerization; cloud-native; unified development framework; component library; software development kit (SDK)
海关统一应用开发架构作为海关信息化建设的重要成果,采用云计算、微服务技术,对海关信息化技术服务能力和业务服务能力予以深度整合,构建了标准化、模块化的技术体系,为信息化应用建设和运行提供了强大的公共支撑能力。
1 微服务架构发展的技术驱动力
微服务架构的普及伴随着一系列关键技术的成熟与发展,这些技术共同构成了微服务架构落地的基石,推动了其从理论走向实践,并最终成为主流的应用开发架构。
(1)容器技术的兴起为微服务架构提供了稳定的运行环境。Docker等容器技术通过轻量级的虚拟化方式,实现了应用及其依赖的标准化打包和部署,解决了微服务架构下服务数量庞大、环境复杂带来的挑战。容器技术的快速启动、资源隔离和弹性伸缩等特性,完美契合微服务架构对敏捷性、可扩展性和资源利用率的需求。
(2)服务网络通信技术,尤其是网络虚拟化的发展,为微服务架构在开发与运维过程中的可靠性与灵活性提供了坚实支撑。通过虚拟网络对服务通信路径的抽象,微服务之间的连接不再依赖底层物理网络配置,极大简化了部署与拓扑调整的复杂度。表述性状态转移应用程序编程接口(Representational State Transfer Application Programming Interface,RESTful API)、高性能远程过程调用框架(Remote Procedure Calls,gRPC)等高效通信协议简化了服务之间的数据交互[1-2],进一步实现了服务通信逻辑与业务代码的完全解耦,通过统一提供负载均衡、服务发现、熔断限流、安全控制等服务治理能力,显著提升了微服务系统的可观测性、可维护性和故障应对能力。
(3)分布式计算技术的成熟为微服务架构提供了坚实的理论基础和实践经验。分布式数据库、分布式缓存等技术解决了微服务架构下的数据一致性和性能问题,而分布式事务框架保障了跨微服务的数据一致性。这些技术的发展有效应对了微服务架构带来的分布式系统复杂性挑战。
(4)云原生技术的发展进一步加速了微服务架构的普及。容器编排引擎(Kubernetes,K8s)等容器编排平台简化了微服务的部署和管理[3-4],开发与运维(Development and Operations,DevOps)理念和实践则促进了开发和运维的协同,提升了应用的交付效率。此外,基础设施即服务(Infrastructure as a Service,IaaS)和平台即服务(Platform as a Service,PaaS)的成熟也为微服务架构提供了强大的基础设施支持。IaaS提供了弹性的计算、存储和网络资源,使得微服务能够根据需求动态扩展;PaaS则通过提供消息队列、API网关、服务注册发现、日志管理等托管服务,提高了微服务应用的开发和运维效率。
总之,通过容器、服务通信网络、分布式计算和云原生等关键技术的革新,共同推动了微服务架构的普及。这些新技术解决了微服务架构落地过程中遇到的各种挑战,使其能够更好地满足应用开发对敏捷性、可扩展性和可维护性的需求。目前微服务架构已成为海关信息化建设主要的分布式开发架构。
2 微服务应用开发技术路线与设计原则
在基于微服务架构开展应用开发时,遵循明确的技术路线和设计原则至关重要。通过建立一个统一、高效、可靠的开发架构和支撑框架,可以进一步提高应用开发效率、提升代码质量、降低维护成本、增强系统的稳定性。海关信息化应用在使用微服务架构研发时,需遵循7项关键技术路线与设计原则。
(1)采用B/S架构与前后端分离模式。海关信息化应用采用B/S架构,前端使用Node.js开发环境,技术栈包括Vue、TypeScript和JavaScript;后端采用Java语言,基于SpringCloud和SpringBoot构建。前后端分离的设计使得前端和后端可以独立开发、测试和部署,降低了系统耦合度,提升了开发和维护效率。同时,这种模式能够更好地支持多端适配和快速迭代,满足业务灵活性和扩展性需求。
(2)基于平台化原则开发。海关信息化应用依托海关应用云平台、海关大数据云平台和移动支撑平台进行开发。通过海关应用云平台和电子口岸PaaS平台,发布统一定制化的开发脚手架,为微服务应用提供一致的环境和工具链。这种平台化开发模式能够显著降低开发和运维复杂度,提升资源利用效率,并确保系统的一致性和标准化。
(3)符合国产化环境要求。在应用开发架构设计时,需严格遵循国产化硬件、操作系统、数据库、中间件和浏览器的相关技术要求。通过国产化适配,提升系统的自主可控性和安全性,降低对国外技术的依赖,保障业务连续性和数据安全,同时满足政策合规性要求。
(4)优先选用海关已采购的第三方产品。对于分布式缓存、消息队列(Message Queue,MQ)、全文检索、实时计算、NoSQL数据库和时序数据库等第三方产品,优先选择已采购的产品。对于超出已购范围的产品,需从必要性、技术成熟度、技术支持可获得性、资源需求、授权费用等多维度进行评估。这一原则主要为了降低技术选型风险,减少采购和维护成本,同时确保系统的稳定性和可扩展性。
(5)通用业务与技术能力的封装复用。对于具有通用性的业务或技术能力,按照服务化思想进行设计和建设,确保功能的可复用性和处理效率。服务接口以RESTful API方式对外提供,并纳入海关能力目录统一管理,其他应用可通过HTTP+JSON方式进行调用。通过通用能力的封装和复用,减少重复开发,提升开发效率。
(6)遵循高内聚、低耦合的设计原则。每个微服务应专注于单一业务功能,服务之间通过RESTful API接口、数据报文、消息队列或者海关事件发布平台进行通信。高内聚、低耦合的设计能够提高系统的模块化程度,降低服务间的依赖,便于独立开发、测试和部署。
(7)强化安全集成约束设计。应用集成海关H4A平台实现身份管理、认证授权和用户登录;使用统一审计日志平台实现日志记录和监控告警;采用支持国密的统一密码服务,实现数据存储加密、传输加密、签名和验签等功能;对重要数据和核心数据采取技术保护措施。通过强化安全设计,保障微服务应用的安全性,满足海关信息化系统对数据安全的高要求。
总之,通过明确的技术路线与设计原则,使得应用能够在微服务架构下实现高效开发、稳定运行和灵活扩展。这些原则不仅提升了系统的可维护性和可扩展性,还降低了开发和运维成本,为应对业务的持续发展和复杂需求提供了有力支撑。同时,国产化要求和安全设计的强化进一步保障了系统的自主可控性和安全性,为信息化建设奠定坚实技术基础。
3 微服务开发在海关的实际落地架构
微服务架构相较于传统单体架构主要在两个方面具有优势,一是微服务架构具备独立部署与维护的特性,能够有效控制故障影响范围,避免因局部问题导致整个系统崩溃。二是微服务架构凭借轻量级通信协议,实现了更为高效的服务间通信,并可依据业务需求动态扩展服务实例,提高服务开发治理的效能。
目前,微服务架构已经成为海关信息化应用建设的主流架构,H2018通关管理系统已基于微服务架构重构,通过将复杂的应用拆解成多个小型、独立的服务模块(例如计税、修撤、验估、放行、结关等微服务),每个模块负责特定的业务功能,并能够独立部署、扩展和维护,提升应用业务快速变化的技术响应能力。本文结合图1所示对微服务架构的实现原理和关键模块进行阐述。
目前的微服务应用开发架构中已实现落地的模块构成包括前端模块(Web服务)、后端微服务模块(Service服务)、服务注册与发现、配置中心、健康检查与监控以及后台作业处理等多个组件。架构图中Framework-web(海关作业系统统一入口)、aaa-main-web和bbb-main-web代表了应用的前端,它们处于同一层级,分别负责不同的应用前端程序。用户通过域名访问应用集群的入口,通过ALB反向代理将用户请求转发到对应的应用前端程序[5]。所有应用前端当要通过后端服务获取、处理数据时,通过访问统一的Web网关将请求发送给应用后端进行处理,实现应用系统基本的前后端分离设计模式。
部署在集群中的应用后端由多个部署组及微服务构成,如图1所示aaaa-main-service、bbbb-main-service、cccc-main-service等分别代表了一个微服务。这些微服务负责实现具体的业务逻辑,每个服务分别单独部署,并通过架构抽象层(图中标记为蓝色的file-service、heps-api-service、heai-api-service等公共SDK和公共服务)访问后台Redis缓存数据库、交易型和分析型数据库、MQ和文件系统等各类存储介质。
服务之间通过Feign通信客户端进行调用,Feign作为声明式HTTP客户端简化了服务间调用的复杂度,提升了微服务间的协作效率。在微服务通信的过程中,Web网关(处理携带用户登录信息的请求)和应用网关(处理不携带用户登录信息的请求)作为流量的中转站,负责将前端的请求转发给相应的后端服务。
在海关的微服务架构中广泛应用了容器技术,所有的微服务都在Docker容器中运行,海关应用云平台(微服务PaaS平台)负责进行容器编排和管理,实现服务实例的动态调度、扩展以及负载均衡,保持众多微服务系统在高负载下的稳定性和灵活性。
微服务架构包含服务注册与发现功能,集群里集中部署了服务注册中心,每个微服务实例在启动时都会将自身注册到注册中心,其他服务则通过服务注册中心获取到需要调用的服务实例的地址信息。这种方式保证了微服务的动态扩展与缩减,服务发现机制还使得系统能够根据实际负载自动调整服务实例数量,进一步提高了系统的可用性和灵活性。
微服务架构还包含了配置中心的核心功能,通过配置中心,所有微服务的配置文件可以集中管理,并且支持动态更新,开发人员可以在不中断服务的情况下更新系统的配置,确保不同环境下的配置一致性。为确保服务的健康运行,微服务架构中还引入了健康检查与监控机制[6-7]。每个微服务都定期执行健康检查,系统自动发现并处理异常服务实例,避免用户请求被转发到已宕机的服务。
总之,在海关微服务架构实际部署应用过程中,通过将业务功能模块化、容器化部署、使用服务注册与发现、集中式配置管理以及健康检查与监控等技术,确保了系统的高可用性、灵活性与可维护性。目前,H2018通关管理系统已基本采用微服务架构建设,在平台化运维、应用上线部署效率、资源扩展能力、故障诊断处置等方面相比传统架构均有很大提升,持续保障了通关系统的运行稳定。
4 架构SDK分层研发与应用
在推动微服务架构落地的过程中,研究团队逐渐认识到实施统一的技术架构标准,研发复用标准化的公共组件SDK,可显著降低应用系统对基础功能服务的重复开发,为应用架构自主可控提供了重要抓手。
为实现公共组件SDK在应用开发中的有效利用与高效维护,研究团队提出了一种分层化的组件设计模式,即核心包、扩展包与增强包三层结构[8],按照图2所示,内容包括:
核心包(Core Package)位于SDK分层架构的底层,为微服务应用提供最基础且必需的公共组件,包括服务注册与发现功能、微服务网关、调用链路追踪组件、集中配置管理工具、数据库抽象访问层以及异常统一处理机制等。这些组件属于微服务架构的基础性技术服务,支撑整个微服务体系的稳定运行,因而要求核心包具备极高的稳定性与可靠性,代码质量需满足严格的质量管控标准,防止频繁变动影响整个架构的稳定性。
扩展包(Extension Package)位于核心包之上,主要面向具体业务场景提供更丰富的功能组件。该层包括认证与权限管理模块、分布式事务支持、审计日志记录服务、文件管理服务、数据交接、数据预定接口以及统一作业调度组件。扩展包重点关注组件的业务适配性、通用性和可扩展性以适应不同业务场景(业务类及政务类场景等),从而满足不同业务需求的研发要求。
增强包(Enhancement Package)处于公共组件SDK的最高层,强调对技术平台与第三方工具的深度封装和高度集成,以满足应用在技术能力方面更高级别的需求。增强包包括但不限于对统一门户入口、存储附件平台、工作流引擎的封装,更重要的是涵盖对第三方技术服务平台的集成与封装,例如即时通信、视频会议等主流技术工具。这一层组件的设计重点在于抽象和统一第三方工具的技术接口,屏蔽底层技术差异,降低技术接入门槛,实现统一的技术服务能力供各应用系统便捷调用。
总之,通过设计、研发分层结构的公共组件SDK,明确了不同层组件的功能边界、技术实现目标与质量控制标准,既满足微服务架构对稳定性的基本要求,又能实现对多样化业务场景和复杂技术需求的快速适配,促进应用开发架构的推广落地。
5 公共组件库运营机制的构建
公共组件库的高效运营是保持微服务架构体系可持续发展的重要保障。通过提出公共组件库的闭环运营机制,进一步阐述公共组件库运营机制建设的战略意义与长期效益。具体设计如图3所示。
图3 公共组件运营闭环图
Fig.3 Closed-loop diagram of common component operations
公共组件库闭环运营涵盖需求分析、开发规划、组件升级、推广应用、问题反馈和优化完善6个关键环节,体现了组件库从规划到落地实施再到持续优化的全过程管理模式。通过从管理部门、实施单位、研发技术人员反馈、技术合作方等渠道收集、分析公共组件的技术需求,为公共组件的开发规划提供明确的方向和依据;通过版本管理和功能迭代,保持公共组件的持续优化与升级,用以适应业务与新技术的快速变化;通过从署级、关级实际应用项目中吸纳优秀组件,并改造提升为公共组件,不断丰富完善组件库内容;通过积极的宣传、培训和示范应用等手段,加快组件库在署级项目中的广泛应用。
问题反馈环节应注重构建有效的问题收集渠道和快速响应机制,确保在组件使用过程中发现的问题能够迅速得到处理与解决。最终,通过优化完善阶段,将反馈意见和积累的知识经验纳入组件的持续改进中,形成长期有效的良性循环。
公共组件库运营强调可扩展、可复用、可维护、可升级、内网开源和权威性6个方面的关键特征。可扩展性使组件能够快速适应不断变化的业务需求与技术环境;可复用性保证组件能够广泛应用于不同的业务项目,有效避免重复开发;可维护性着重强调组件的长期稳定运行和低维护成本;可提级可转化性使得组件库能够吸纳优秀的项目成果,持续丰富技术与业务能力,内网开源机制则鼓励开发资源的开放共享,增强团队之间的协作互动;权威性特征通过制定明确的标准规范与严格的质量控制体系,保证组件库的可靠性和可信赖性,进一步提升成果质量。
总之,通过构建实施闭环运营机制并按照6个方面的目标推进实施,保障开发技术资源的利用效率,保持微服务架构体系的长期稳定和可持续发展。
6 展望
随着新一代信息技术的持续演进,微服务架构已成为支撑大型复杂业务系统建设的重要基础。在海关信息化体系的建设过程中,通过引入以容器化、服务通信、分布式计算和云原生技术为核心的微服务架构,初步实现了架构标准统一、开发运维解耦、系统弹性伸缩与服务可观测性的提升。
本文结合海关应用场景,系统性总结了微服务架构的关键技术支撑、开发原则与落地实践,从架构设计、组件复用、SDK分层开发到组件运营闭环,全面展示了微服务架构在海关信息化建设中的工程化推进路径与阶段性成效。实践证明,统一的架构治理体系不仅显著提升了系统的可维护性与敏捷交付能力,也为技术服务能力的持续演进提供了坚实基础。
面向未来,随着业务的不断复杂化和数字化转型深入推进,海关信息化系统需进一步加强研发生态运营、技术平台自主可控能力建设以及微服务治理的智能化水平,从而在复杂业务环境下持续构建安全、稳定、灵活、高效的技术支撑体系,全面支撑海关信息化建设迈向更高阶段。
参考文献
[1] Richardson C. Microservice Patterns and Best Practices: Designing Fine-Grained Systems [M]. Manning Publications, 2019.
[2]腾讯云. 腾讯云微服务实践白皮书[EB/OL]. https://cloud.tencent.com/developer/article/2425592?policyId=1004.
[3]腾讯云. 腾讯云容器服务TKE微服务治理指南[EB/OL]. https://cloud.tencent.com/document/product/649/16621.
[4] Davis C. Cloud Native Design Patterns: Building Applications and Systems with Containers Serverless and Cloud Foundry [M]. O’Reilly Media, 2019.
[5]张逸. 基于Spring Cloud的微服务落地. Java技术栈[EB/OL]. 2018-04-06. http://zhangyi.xyz/micro-service-based-on-spring-cloud/.
[6]侯诗军. 腾讯云原生微服务治理实践及企业落地建议.微信公众号[EB/OL]. 2024-09-17. https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651219064&idx=3&sn=8c94ae8b59cb48b1ba7b74ebab5c2d2d&chksm=bc4a44d6bee21fbf8d7acacc454f626cc9e27a43c96da7e8648c4803a516789e6d66729a2dda#rd http://theory.people.com.cn/n1/.
[7] Allen.Wu.微服务化框架的模型和治理能力设计后端系统和架构[EB/OL]. 2023-01-03. https://cloud.tencent.com/developer/article/2230713?policyId=1004.
[8]杨勇.微服务框架落地实践之路. EAWorld[EB/OL]. 2016-10-17. https://cloud.tencent.com/developer/article/1081301?policyId=1003.
第一作者:李飞(1982—),男,汉族,北京人,本科,主要从事海关作业类系统开发测试工作,E-mail: lifei@mail.customs.gov.cn
1. 全国海关信息中心(全国海关电子通关中心) 北京 100005
1. National Information Center of GACC (General Administration of Customs of China), Beijing 100005
图1 微服务应用架构示意图
Fig.1 Application architecture diagram of microservice
图2 架构SDK分层图
Fig.2 Layered architecture diagram of SDK