基础架构 · 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 |
id、group、owner、visibility、default_branch |
代码项目主数据。 |
| PipelineRun |
pipeline_id、commit_sha、status、runner、duration |
流水线执行。 |
| ArtifactVersion |
name、version、digest、type、signature |
制品版本。 |
| ReleaseRecord |
tag、artifact_id、approver、deployer、env |
发布审计。 |
8. 验收点
| 验收点 |
标准 |
| 主干保护 |
核心仓库 100% 启用保护分支和 MR 审核。 |
| 制品可追溯 |
正式发布 100% 可追溯 commit、pipeline、artifact 和审批人。 |
| 构建稳定性 |
核心流水线成功率不低于 90%,失败可定位到阶段和负责人。 |
| 密钥泄漏 |
新增仓库默认接入密钥扫描,生产密钥 0 入库。 |
9. 人力评估
| 角色 |
估算 |
| DevOps |
1 人 4 周 |
| 研发代表 |
2 人各 1 周 |
| 安全 |
0.5 人 1 周 |
| 测试 |
1 人 1.5 周 |
10. 风险点
| 风险 |
应对 |
| 本地包绕过流水线 |
正式环境只允许从受控制品仓发布。 |
| 流水线过重影响研发 |
v0.1 只放必要测试、构建、扫描,复杂质量门禁逐步增加。 |
| 权限过宽 |
按项目角色和环境密钥拆分权限,定期审计离职和转岗账号。 |