CopyRight 2009-2020 © All Rights Reserved.版权所有: 中国海关未经授权禁止复制或建立镜像
微服务平台提升直属海关信息化应用支撑能力的实践与探索
作者:李鑫 甘帅
李鑫 甘帅
李 鑫 1 甘 帅 1
摘 要 随着海关业务量的持续增长和国产化替代工作的深入推进,应用需求朝着敏捷开发、快速迭代、低耗能及高时效运维方向发展,传统的单体应用开发框架与运维机制对直属海关的应用支撑能力提出了更高要求。本文以拱北海关微服务平台为研究对象,结合建设目标、部署架构和应用情况,深入探讨基于微服务架构的应用支撑能力提升路径,为直属海关层面的应用支撑能力提升提供参考。
关键词 微服务;应用支撑;服务网格;开发运维一体化
Practice and Exploration of Enhancing Regional Customs Informatization Application Support Capacity by Microservices Platform
LI Xin 1 GAN Shuai 1
Abstract With the continuous growth of customs control volume and the in-depth advancement of Localization-Substitution, application requirements are evolving towards agile development, rapid iteration, low energy consumption and high-efficiency operation and maintenance. Traditional monolithic application development frameworks and operation and maintenance mechanisms have imposed higher demand for the application support capability of regional customs. This paper takes the microservices platform of Gongbei Customs as the research object, combines the construction objectives, deployment architecture and application situation, and delves into ways of improving the application support capability by microservices architecture, so as to provide a reference for the improvement of the application support capability at the regional customs level.
Keywords microservices; application support; service mesh; DevOps
微服务架构凭借着简单清晰、灵活可拓展、独立部署等优势,逐渐成为分部署架构的主流。在H2018工程中,更是引入了“大平台、微服务”的先进技术架构,构建了海关新一代通关管理系统。拱北海关微服务平台参考相关的应用支撑平台技术路线,将应用支撑能力提升有机融入地方数字政府建设整体框架,为关区应用提供全生命周期管理、数据化运营、立体化监控和服务治理等功能,从而统一应用开发框架、革新开发运维流程机制。
1 基于微服务平台的应用支撑能力提升方案
微服务是一种分布式架构模式,因能有效化解大型系统的复杂性,实现各业务模块的精细化运作,达成高内聚低耦合的理想状态,从而在分布式架构领域崭露头角并占据重要地位。微服务将大型复杂软件应用拆分成多个微小的服务,服务之间是松耦合的,每个服务描述一个小业务,可以独立地进行升级、部署、扩展和重新启动等流程,并通过接口契约、标准协议等保持彼此互通。
随着云计算市场的成熟和用户对更高级服务的需求,平台即服务(Platform as a Service,PaaS)平台逐渐受到关注。PaaS是面向开发者提供服务的软件研发平台,提供了更高级别的抽象,使开发团队能够更高效地开发、测试和部署应用。而微服务平台就是一个提供了必要的工具和服务来简化微服务的开发、部署和运维过程的PaaS平台。
微服务平台的应用支撑能力提升方案,应用容器及编排平台、服务网格(Service Mesh)、微服务治理、持续集成与持续部署(Continuous Integration/Continuous Delivery,CI/CD)和云原生等技术理念,基于微服务架构集成容器平台、应用服务、开发流程和数据服务,从而解决服务间跨环境部署运维、服务监控告警、服务治理、集中化配置管理、集中化日志管理、微服务接口规范和调用链跟踪排障等微服务架构难题。
2 微服务平台在直属海关层面的应用
拱北海关微服务平台作为关区信息化支撑体系的PaaS层,依托其提供的开发工具和框架、自动化部署管理工具和授权管理体系等,实现架构统一、运维高效。该平台主要有以下五大核心建设目标:
(1)构筑关区应用支撑平台核心能力。对标相关的建设方案,以微服务平台为关级应用技术能力核心,结合已在本地部署的移动应用平台,全面覆盖Web和移动应用开发运维,构建直属关层面的应用支撑平台。
(2)统一关区应用开发框架,减轻国产化重构压力。在已符合国产化要求的基础设施云基础上,构建一套以Spring Cloud为应用开发框架,集成业界成熟的开源技术,实现容器编排、服务治理和CI/CD的应用全生命周期管理微服务平台。
(3)提升关区开发敏捷性和快速交付能力。微服务架构具备模块化开发、服务独立部署更新、持续集成和持续交付等特点,可以帮助直属海关更快捷可靠地交付新功能和服务。小型的独立团队甚至可以在业务最繁忙的时候仍旧发布新的功能,同时进行A/B测试,以便提升转化率或改善用户体验。
(4)革新关区开发交付流程机制,提升应用测试部署效率。通过微服务平台集成的业界成熟开源CI/CD工具链,以平台固化的流水线模板为抓手,实现开发和运维岗位的分离,革新关区开发运维流程机制,辅之以整个软件发布流程的自动化,进一步提升应用测试部署效率。
(5)集成多类运维监控组件,提升关区应用运维效率。通过微服务平台集成的服务治理和服务网格能力,实现实例的弹性扩缩容,并通过对运行状况、流量数据、延迟和错误率等指标的实时监控可视化展示,从而提升系统可用性,快速定位故障节点,帮助诊断和解决问题。
2.1 微服务平台总体架构
拱北海关微服务平台以关级基础设施即服务(Infrastructure as a Service,IaaS)层为技术底座,平台资源由基础设施云分配和管理,并实现了全国产化替代的底层部署。该平台由管理集群、业务集群和测试集群构成。其中,管理集群负责管理和协调业务集群和测试集群的资源和服务,业务集群和测试集群都包含相应的服务和组件,但依赖管理集群进行全局协调和管理。管理集群统一调度平台资源,同时实现测试环境与生产环境的彻底隔离,确保生产环境的稳定性和测试结果的可靠性。
管理集群部署架构如图1所示。管理集群中的K8s(Kubernetes)控制平面负责管理整个平台的资源调度和状态维护,Prometheus收集和处理整个平台的指标数据和监控功能,Elasticsearch提供日志管理和搜索功能,均采用3个节点部署模式,在确保高可用性、负载均衡能力和故障恢复能力外,还能避免K8s中etcd数据库出现KV数据暴增、event消息暴增等问题,同时确保Prometheus的数据持久性和Elasticsearch的冗余存储和高效访问。Containerd作为容器运行时,负责管理容器的生命周期,所以每个节点都需要容器运行时来运行在该节点上的容器化程序。此外,出于一致性和兼容性、资源的有效调度、高可用性和故障恢复等角度考虑,均需要Containerd作为容器运行时在所有节点上予以部署。Harbor、Nexus和Jenkins作为关键的基础设施组件和资源密集型应用,应与业务应用隔离,故而部署在管理集群中。Harbor作为容器镜像仓库,需要处理大量的镜像存储、拉取和推送操作,可能会占据大量的磁盘I/O和网络带宽,将其单独设立一个节点可以确保高并发存储和网络需求不影响其他组件的性能。Nexus用于管理构建工件,而Jenkins作为DevOps流程自动化的核心枢纽,提供了灵活的CI/CD流水线,部署在同一节点上便于集成和协作,减少传输开销。
为确保测试环境与生产环境尽可能接近,从而使得测试结果在生产环境中的适用性更高,业务集群和测试集群应采用一致的部署架构,如图2所示。K8s控制平面、中间件和TopoLVM部署在同一节点,采用3个节点部署模式,出于业务集群的高可用性外,还由于TopoLVM需要与K8s控制平面密集集成从而提供一致的存储服务,以提高数据一致性和性能。负载均衡器(Load Balancer,LB)负责分发网络流量,以确保服务的高可用性和负载均衡。在2个节点上部署负载均衡器,形成一个高可用的负载均衡器集群,保证服务的连续性和可靠性,同时与业务运行部署在同一节点上的LB可以更快速地将流量分配给本地的业务实例,提高系统响应速度。图中的3个应用节点仅为示例,实际部署中业务运行分散在多个节点上,可以根据实际负载情况进行弹性伸缩,灵活调整资源分配。每个节点在业务运行的基础上配合Prometheus、OpenTelemetry Agent、Istio Sidecar和Jaeger等组件,这些组件提供了强大的运维支持和故障诊断能力,实现对应用的全面监控和管理,以确保业务系统的高可用性、可观测性和稳定性。
2.2 微服务平台应用特点
拱北海关微服务平台已运行55个实例,上线横琴粤澳深度合作区智慧监管平台及中山港暂存仓业务应用。如图3所示,微服务平台功能分为三大部分,即容器平台、DevOps和Service Mesh,它们分别提供角色和空间授权管理、容器配置编排及弹性伸缩、流水线构建、测试管理、代码和制品管理、服务网格全生命周期管理、服务全局可视化、灰度发布、可视化服务运维等功能。下面结合实际使用情况,以“建立细粒度管理体系”“探索关区开发交付工作流革新”“实现智能运维和状态可视化”等3个重点实践为切入点对平台功能进行介绍。
2.2.1 基于平台管理底座建立“二维度三层面”细粒度管理体系
微服务平台具备一站式平台管理底座,提供产品管理、K8s资源管理、集群管理、平台运维、用户角色管理、审计和运营统计等能力。平台在K8s的集群、命名空间分层基础上,新增了“项目”的层次,从而具备集群、项目和命名空间三级层次。同时,在用户角色管理功能中,具备平台管理员、项目管理员和开发人员等角色,提供了项目管理工作细粒度开展的能力。
拱北海关基于平台管理底座能力,与现有关级系统开发体系相结合,建立角色权限和平台资源管理的“二维度三层面”细粒度管理体系。(1)角色权限方面,由基础设施云管理人员担任“平台管理员”角色,集IaaS层、PaaS层管理于一身,依托运管平台项目资源申请流程,减少管理节点,统筹分配PaaS平台各项目计算资源;由应用开发科室担任对应项目的“项目管理员”角色,自行管理项目中各命名空间的计算资源、权限分配;由内/外部开发人员担任指定命名空间“开发人员”角色,实现授权最小化管理。(2)平台资源管理方面,“集群层级”分为管理集群、业务集群和测试集群。管理集群统筹管理业务和测试机群,业务集群和测试集群实现测试环境与生产环境的彻底隔离;“项目层级”对应直属海关层面的项目管理名称,以实际的项目为单位进行划分,从而实现项目与责任的授权和管理对应;“命名空间”在项目的基础上,以项目的分期情况或实施单位进行划分,比如人脸识别项目分为一期和二期且非相同实施单位,则在人脸识别项目中划分“一期”命名空间和“二期”命名空间,实现细颗粒度的项目开发运维管理,杜绝不同实施单位间的“扯皮”和推诿。
2.2.2 构建DevOps体系探索关区开发交付工作流革新
DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障部门之间的沟通、协作与整合。DevOps其实是一个体系,而不仅仅是某个岗位,其目的是从总体上提高企业IT部门的运作效率。
基于微服务平台集成的代码管理、CI/CD工具(如Jenkins、Tekton)、容器和编排(如Containerd、K8s)、监控和日志(如Prometheus、Grafana)及服务网格(如Istio)等工具提供的能力,由传统的单体架构向微服务架构转变。从代码、构建、测试、集成到部署阶段,通过统一的工具链和工作流,实现开发、测试和运维团队的紧密协作,减少沟通成本和协作障碍,并在每个阶段都尽量采用自动化工具,减少人工干预,提升效率和准确性,通过自动化的构建、测试和部署流程,实现代码的快速集成和频繁交付。
探索关区交付工作流和职责革新,基于平台自动化能力所实现的工作效率提升和人力资源释放,依托CI/CD工具所固化的工作流,逐步推进开发与运维角色的彻底分离,破解直属海关长期存在的信息化开发团队及力量相对薄弱的难题,进一步扩大微服务架构对小而专团队的红利释放;尝试通过CI/CD工具集成H4A授权管理等总署组件在本地集成,同步预留对接总署CI/CD工具链功能,进一步强化本地开发基础能力。
2.2.3 依托服务网格技术实现智能运维和状态可视化
服务网格是一个独立的基础设施层,用来处理服务间的通信。目前典型的服务网格通常提供了一组轻量级的网络代理,这些代理会在应用无感知的情况下,同应用进行部署、运行。而在微服务平台中集成的服务网格所使用的便是由Google、IBM和Lyft等公司合作开发的开源服务网格代表产品Istio。
Istio扩展了K8s的能力,利用强大的Envoy服务代理建立了一个可编程的、应用感知的网络。Envoy代理负责截获和处理所有进出该服务的网络流量,并与 Istio 的控制平面进行通信,以获取流量管理、策略和安全配置,拱北海关现已完成全部35个微服务的sdecar代理注入,实现了服务拓扑可视化、服务列表和调用链查看、服务流量监控和告警日志查看等功能,服务拓扑如图4所示。微服务平台集成Istio、Prometheus和Grafana,由Istio及sidecar管理和监控微服务的通信和流量治理,通过Prometheus从中间件收集和存储指标,最后基于Grafana提供的统一可视化平台,将采集的数据经过加工、清洗,并以图表形式展示,方便用户进行监控和管理,从而实现服务网格管理、组件健康检查、功能健康检查和可视化监控视图等服务网格全生命周期管理。
3 结语
依托拱北海关微服务平台建设项目,本文总结了基于微服务平台提升直属海关信息化应用支撑能力的可行路径。通过应用微服务框架、DevOps和服务网格等理念,统一关区应用开发框架,结合“二维度三层面”细粒度管理体系,提升关区开发敏捷性、快速交付能力和应用测试部署及运维效率,从而构筑关区应用支撑平台核心能力。同时,还对关区开发交付工作流革新进行了探索,为直属海关层面应用开发交付管理提供了可行方案。
参考文献
[1]王思轩. 数字化转型架构:方法论与云原生实践[M]. 北京: 电子工业出版社, 2021: 31.
[2]王祎晨. PaaS云平台建设研究分析[J]. 电子技术与软件工程, 2023(1): 226-231.
[3]鲍里斯·肖勒, 特伦特·斯旺森, 彼得·加索维奇. 运用容器、函数计算和数据构建下一代应用[M]. 北京: 机械工业出版社, 2020: 77.
[4]张杨.基于Kubernetes的容器云平台的高可用研究与实现[D].西安: 电子科技大学, 2023. DOI: 10.27005/d.cnki.gdzku.2023.005326:13-15.
[5]罗志强. 基于DevOps的信息管理软件研发与应用[J]. 信息记录材料, 2024, 25(11): 88-90.
[6]余洪春. DevOps和自动化运维实践[M]. 北京: 机械工业出版社, 2018: 1.
[7]崔秀龙. 深入浅出istio:Service Mesh快速入门与实践[M]. 北京: 电子工业出版社, 2019: 9.
[8]王兆熠, 于千慧, 袁迎迎, 等. 基于服务网格的访问控制的实践研究[J]. 中国新通信, 2024, 26(4): 30-34.
[9]戴华杰, 刘东, 邓甜妞, 等. 基于Prometheus的自动化运维及优化[J]. 办公自动化, 2024, 29(20): 52-54+86.
第一作者:李鑫(1994—),男,汉族,江西吉安人,本科,主要从事信息化系统架构研究工作,E-mail: 691133683@qq.com
1. 拱北海关 珠海 519000
1. Gongbei Customs Office of Science and Technology, Gongbei 519000
图1 微服务平台管理集群架构
Fig.1 Microservices platform management cluster architecture
图2 微服务平台业务集群(测试集群)架构
Fig.2 Microservices platform business cluster (test cluster) architecture
图3 微服务平台主要功能
Fig.3 Main functions of microservices platform
图4 微服务平台服务拓扑实例
Fig.4 Microservices platform service topology instances