4. CI/CD 服务目录架构总览:整体架构分层、核心组件、数据流与交互关系

在平台工程视角下,CI/CD 服务目录并非一个单体应用,而是一个由多个层次、组件和管道构成的有机系统。本章从宏观视角出发,拆解其整体架构分层、定义核心组件职责,并梳理数据流与交互关系,为后续章节的深度设计奠定基础。

4.1 整体架构分层

我们将 CI/CD 服务目录架构划分为四个核心层次,每一层解决特定的关注点,并通过明确的接口与上下层交互。

层次 名称 核心职责 典型组件
L4 交互与体验层 面向开发者与平台工程师的自助服务门户,提供目录浏览、模板选择、参数配置、状态可视化。 Web UI、CLI 工具、API Gateway、Backstage 插件
L3 编排与策略层 服务目录的核心大脑,负责模板解析、策略校验、工作流编排、资源配额管理及审批流触发。 Catalog Engine、Policy Engine、Workflow Engine、Approval Service
L2 CI/CD 执行层 对接底层基础设施,执行具体的构建、测试、部署任务,并反馈执行状态与制品信息。 CI Runner (Jenkins/GitHub Actions)、CD Operator (ArgoCD/Flux)、Artifact Registry
L1 基础设施与资源层 提供计算、存储、网络等运行时资源,以及集群、命名空间、云服务账号等底层抽象。 Kubernetes 集群、Terraform Providers、云服务 API、Vault
架构原则: 每一层仅依赖其直接下层提供的抽象接口,禁止跨层直接调用。例如,交互层不能直接调用执行层的 API,必须经过编排层进行策略校验与资源准备。

4.2 核心组件与数据流

下图展示了服务目录在接收到一次“创建微服务”请求时的核心组件交互与数据流向。

CI/CD 服务目录核心组件与数据流 服务目录核心组件交互与数据流(创建微服务场景) L4 交互与体验层 开发者门户 (UI/CLI) API Gateway L3 编排与策略层 Catalog Engine Policy Engine Workflow Engine Approval Service L2 CI/CD 执行层 CI Runner (Jenkins) CD Operator (ArgoCD) Artifact Registry L1 基础设施与资源层 Kubernetes 集群 云服务 API / Vault ① 提交创建请求 ② 策略校验 ③ 编排工作流 ④ 触发 CI 构建 ⑤ 推送制品 ⑥ 部署到集群 ⑦ 状态回写 说明:实线箭头表示请求/数据下发,虚线箭头表示状态反馈。所有跨层调用均通过 API Gateway 进行身份认证与路由。

4.3 核心交互关系详解

基于上述架构图,我们将关键交互关系拆解为以下步骤,并明确每个环节的输入与输出。

  1. 请求提交与解析: 开发者通过门户选择“微服务”模板,填写参数(如服务名、语言栈、团队)。API Gateway 将请求转发至 Catalog Engine。
  2. 策略校验: Catalog Engine 调用 Policy Engine,校验命名规范、资源配额、安全基线等。若校验失败,直接返回错误。
  3. 工作流编排: 校验通过后,Workflow Engine 根据模板定义生成执行计划,包括:创建代码仓库、初始化 CI 流水线、配置 CD 部署策略。
  4. CI 执行与制品产出: Workflow Engine 触发 CI Runner 执行构建与单元测试。CI 完成后将容器镜像或 Jar 包推送至 Artifact Registry。
  5. CD 部署与基础设施配置: CD Operator 监听新的制品版本,结合 Approval Service 的审批结果,将应用部署至目标 Kubernetes 集群,并调用云服务 API 创建数据库或缓存实例。
  6. 状态聚合与反馈: 执行层将部署状态、资源地址、日志链接回写至 Catalog Engine,最终在开发者门户上呈现完整的服务卡片。
关键设计决策: 所有跨层数据流必须携带 Correlation ID(关联 ID),以便在分布式追踪中串联一次完整的服务创建请求。Catalog Engine 作为唯一的状态聚合点,负责维护服务目录的最终一致性。

4.4 数据模型与状态流转

服务目录的核心数据模型围绕“服务实例”展开,其状态机定义了从请求到运行的全生命周期。

状态 描述 触发动作 所属层次
Pending 请求已提交,等待策略校验与审批 用户提交表单 L3 编排层
Provisioning 正在创建基础设施与 CI/CD 流水线 审批通过,Workflow Engine 开始执行 L3 / L2
Building CI 流水线正在执行构建与测试 CI Runner 接收任务 L2 执行层
Deploying CD 正在将制品部署到目标环境 制品就绪,触发 CD Operator L2 / L1
Running 服务已成功部署并对外提供服务 健康检查通过 L1 基础设施层
Failed 任一环节发生不可恢复错误 策略拒绝/构建失败/部署超时 任意层
注意: 状态流转必须幂等。例如,当 Deploying 状态因网络闪断未能及时更新时,Catalog Engine 应通过定时补偿任务重新查询执行层状态,避免服务实例永久卡在中间状态。

4.5 架构总览小结

本章从分层、组件、数据流与状态四个维度,完整呈现了 CI/CD 服务目录的宏观架构。核心要点如下:

  • 四层架构 确保了关注点分离,交互层、编排层、执行层与基础设施层各司其职。
  • Catalog Engine 作为编排核心,承担了模板解析、状态聚合与工作流触发的枢纽角色。
  • 数据流 遵循“请求下发-策略校验-工作流编排-执行-状态回写”的闭环,所有跨层调用均通过 API Gateway 统一管控。
  • 状态机 定义了服务实例的完整生命周期,幂等设计与补偿机制是保障一致性的关键。