1. 验收与交付总览

GitLab 研发平台的验收与交付,不是“装完软件、点一遍页面”这么简单。它本质上是一次围绕可交付能力展开的系统性确认:平台是否按设计目标建成、关键研发链路是否真正跑通、安全与权限边界是否可控、运维与备份是否具备接管条件,以及最终能否把平台连同文档、配置、账号、数据和责任一起移交给使用方与运维方。理解这一点,才能避免把验收做成“功能演示”,把交付做成“文件拷贝”。

一、定义:验收与交付分别确认什么

验收回答的是“建得对不对、够不够用”。它以需求与设计为基准,通过检查、测试和证据比对,确认 GitLab 平台的功能、性能、安全、可用性和集成能力达到约定标准。交付回答的是“能不能接得住、用得起”。它把平台资产、配置、文档、权限、运维流程和责任边界完整转移给接收方,使对方在不依赖原建设团队的情况下可以独立运行、维护和扩展。

两者关系紧密但不等同:验收偏“确认符合性”,交付偏“转移可运营性”。一个常见误区是验收通过就认为交付完成,结果运维方拿到平台却不知道备份策略、不知道 Runner 注册令牌放在哪里、不知道升级窗口如何安排。因此本课程始终把两者放在同一条链路上看待。

二、目标:四个可判定的结果

  • 功能可用:代码托管、合并请求、CI/CD、制品库、议题与看板等核心能力按预期工作。
  • 链路贯通:从代码提交到流水线执行、再到制品产出与部署的端到端路径可复现。
  • 安全可控:认证、授权、审计、密钥与令牌管理符合安全基线,越权路径被关闭。
  • 可运维可接管:监控、日志、备份恢复、升级与容量扩展有明确责任人和操作依据。

三、范围:验收与交付覆盖哪些对象

范围界定不清是验收争议的主要来源。建议从五个维度圈定边界:平台组件(GitLab 应用、数据库、对象存储、Redis、Gitaly、Runner、容器镜像仓库等)、集成接口(LDAP/SSO、邮件、Jira、制品仓库、Kubernetes 集群等)、研发流程(分支策略、MR 评审、流水线阶段、环境与发布方式)、非功能指标(并发、响应时间、可用性、备份 RPO/RTO)、交付物(架构文档、部署清单、配置基线、账号清单、测试报告、运维手册、培训记录)。

范围文档中应明确写出“不包含什么”,例如“本次不包含历史 Jenkins 流水线迁移”“不包含生产数据迁移”,避免验收阶段被追加需求拖入无限范围。

四、关键角色与职责

角色核心职责在验收交付中的关注点
建设方/实施团队部署、配置、集成、自测、整理交付物提供可复现的部署与配置证据
平台负责人/产品方确认需求与验收标准功能与流程是否符合研发诉求
运维/SRE接管监控、备份、升级与容量可运维性、故障恢复能力
安全与合规审核权限、审计与数据保护越权、密钥、日志留存
研发代表/试点团队真实业务场景试用端到端链路是否顺畅
项目经理/验收组织者组织评审、跟踪问题闭环问题分级、整改与复验

五、整体流程:从基线到移交

端到端流程可以概括为:需求与验收标准基线 → 环境与配置核查 → 功能与链路测试 → 安全与权限验证 → 非功能与故障演练 → 问题整改与复验 → 交付物整理 → 移交与培训 → 签字确认与质保。其中“验收标准基线”必须在建设早期冻结,否则后期测试无据可依;“问题整改与复验”是闭环关键,未关闭的高风险问题不应进入正式移交。

GitLab 研发平台验收与交付端到端链路 需求与验收基线 范围·指标·标准 环境与配置核查 组件·版本·参数 功能与链路测试 提交→流水线→制品 安全与权限验证 认证·授权·审计 非功能与故障演练 性能·备份·恢复 问题整改与复验 分级·闭环·回归 交付物整理 文档·清单·基线 移交与培训 账号·流程·责任 签字确认与质保 验收单·质保期 贯穿全程的三条主线 ① 证据链:每项结论都要有可复查的截图、日志、配置或测试记录 ② 责任链:建设方、平台方、运维方、安全方职责在移交前书面确认 ③ 风险链:未关闭的高风险问题不得进入正式移交,需有整改计划与复验结论

六、一个可参考的验收判定示例

以“代码提交到制品产出”这条核心链路为例,验收时不应只看页面能否打开,而应设计可复现的判定用例。假设试点项目为 payment-service,验收环境为预生产环境,判定标准可写成:

用例编号:AC-CICD-001
前置条件:项目已创建,Runner 在线,镜像仓库可写
操作步骤:
  1. 向 main 分支推送一次提交,提交信息含 [verify]
  2. 观察流水线是否自动触发,阶段为 build → test → package
  3. 检查制品库是否生成 payment-service:<commit-sha> 镜像
  4. 检查流水线日志中单元测试通过率与退出码
判定标准:
  - 流水线在 5 分钟内完成,状态为 passed
  - 镜像 tag 与提交 SHA 一致,可被部署环境拉取
  - 测试退出码为 0,无跳过关键用例
证据留存:流水线页面截图、镜像列表截图、Runner 日志片段

这样的用例把“功能可用”转化为可观察、可留证、可复验的结论。验收报告中的每一条“通过”,都应能追溯到类似的具体用例和证据,而不是一句主观评价。

七、常见误区与规避建议

  • 只验功能不验运维:上线后才发现备份未配置、监控无告警。建议在验收阶段就执行一次恢复演练。
  • 验收标准后置:建设完成才讨论“怎样算通过”,容易产生争议。标准应与需求同步冻结。
  • 交付物缺失或过期:文档版本与现场配置不一致。建议交付前做一次配置与文档一致性核对。
  • 权限移交不清:管理员账号仍留在建设方手中。移交时应完成账号归属变更与最小权限收敛。
验收签字不等于风险消失。对于遗留问题,应在验收单中明确问题描述、影响范围、临时规避措施、整改责任人与计划完成时间,并约定复验方式,避免“带病移交”。