Module Document

基础架构 · GitLab / CI/CD / 制品仓概要设计文档

基础架构 · GitLab / CI/CD / 制品仓概要设计文档

版本: v0.1
日期: 2026-07-06
归属: 基础架构 / GitLab / CI/CD / 制品仓

1. 顶层设计

把代码、流水线、镜像、软件包和发布记录收口为研发事实源,避免试产期靠本地包和群文件交付。

层级 设计
代码事实源 GitLab 保存代码、分支、MR、评审和 tag。
构建事实源 CI Pipeline 保存构建日志、测试结果、扫描报告和构建参数。
制品事实源 Registry/Package 保存镜像、软件包、固件包和签名结果。

2. 核心业务流

flowchart LR
  N1["提交 MR"] --> N2["代码评审"]
  N2["代码评审"] --> N3["测试/构建/扫描"]
  N3["测试/构建/扫描"] --> N4["保存制品"]
  N4["保存制品"] --> N5["确认版本"]
  N5["确认版本"] --> N6["发布/回滚"]
  N6["发布/回滚"] --> N7["归档记录"]

3. 业务概要设计

业务能力 概要设计
项目创建 按业务域创建 group/project,默认套用分支、MR、流水线和安全模板。
发布准入 正式制品必须来自通过流水线的 tag,不允许人工上传覆盖。
版本留存 试产版本至少保留源码、制品、构建日志和测试报告 18 个月。

4. 系统边界

负责 不负责
GitLab 项目、分支权限、MR 规则、CI 模板、Runner、镜像仓、软件包仓、制品签名、发布记录。 需求管理、代码质量详细规则、业务发布策略细节、终端 OTA 策略。

5. 系统顶层设计

组件 职责
GitLab 代码托管、MR、权限、CI 配置和发布记录入口。
Runner Pool 隔离执行测试、构建、扫描和打包任务。
Artifact Registry 保存镜像、软件包、固件包和 SBOM。
Release Ledger 聚合 commit、pipeline、artifact、审批和部署记录。

6. 系统流图

flowchart LR
  N1["Developer"] --> N2["GitLab MR"]
  N2["GitLab MR"] --> N3["CI Runner"]
  N3["CI Runner"] --> N4["Test/Scan"]
  N4["Test/Scan"] --> N5["Build"]
  N5["Build"] --> N6["Artifact Registry"]
  N6["Artifact Registry"] --> N7["Release Approval"]
  N7["Release Approval"] --> N8["Deploy"]
  N8["Deploy"] --> N9["Release Ledger"]

7. 模型设计

模型 关键字段 说明
CodeProject idgroupownervisibilitydefault_branch 代码项目主数据。
PipelineRun pipeline_idcommit_shastatusrunnerduration 流水线执行。
ArtifactVersion nameversiondigesttypesignature 制品版本。
ReleaseRecord tagartifact_idapproverdeployerenv 发布审计。

8. 验收点

验收点 标准
主干保护 核心仓库 100% 启用保护分支和 MR 审核。
制品可追溯 正式发布 100% 可追溯 commit、pipeline、artifact 和审批人。
构建稳定性 核心流水线成功率不低于 90%,失败可定位到阶段和负责人。
密钥泄漏 新增仓库默认接入密钥扫描,生产密钥 0 入库。

9. 人力评估

角色 估算
DevOps 1 人 4 周
研发代表 2 人各 1 周
安全 0.5 人 1 周
测试 1 人 1.5 周

10. 风险点

风险 应对
本地包绕过流水线 正式环境只允许从受控制品仓发布。
流水线过重影响研发 v0.1 只放必要测试、构建、扫描,复杂质量门禁逐步增加。
权限过宽 按项目角色和环境密钥拆分权限,定期审计离职和转岗账号。