Linux 上用 GitLab 落地敏捷开发的可执行方案
一 架构与角色
- 在 Linux 服务器上部署 GitLab(Omnibus 或容器化均可),为团队提供集成的 代码托管、Issue/看板、CI/CD、安全扫描 等能力,天然适配 Scrum/Kanban 等敏捷实践。
- 建议角色分工:产品负责人(PO) 管理 Backlog,Scrum Master(SM) 保障流程顺畅,开发/测试团队 自组织交付,QA 负责验收与质量内建。
二 规划与跟踪
- 组织层级:以 Group/Subgroup 对齐组织架构,按 项目/服务 划分代码与议题边界,便于权限与度量统一。
- 需求分解:用 Epics 表达跨迭代目标,拆解为 Issues(用户故事/缺陷/任务),为议题设置 优先级、权重(故事点) 与验收标准。
- 迭代节奏:在组或项目上启用 Iteration Cadence,建议 2–4 周 一个迭代,可配置 自动/手动 生成迭代;也可使用 Milestones 标记迭代或发布阶段。
- 看板与标签:建立 Issue Boards(如“待办/进行中/待测/已完成”),用 作用域标签 规范分类,如 type::feature/bug/refactor、priority::high/medium/low、workflow::planning/in_progress。
- 度量与回顾:利用 燃尽图 跟踪迭代进度,迭代结束通过 Releases 标记产出,并在 Retrospective 中沉淀改进项。
三 开发与交付流水线
- 分支策略:采用 GitFlow + Feature Branch,如 main/develop/feature//hotfix//release/;所有变更走 Merge Request(MR),禁止直接 push 到主分支。
- 示例 .gitlab-ci.yml(可按需扩展测试、质量门禁、部署阶段):
stages:
- build
- test
- deploy
build_app:
stage: build
script:
- echo "Building application..."
- npm run build
unit_test:
stage: test
script:
- echo "Running unit tests..."
- npm run test
deploy_staging:
stage: deploy
script:
- echo "Deploying to staging..."
- ssh user@server 'cd /path && git pull && npm run deploy'
only:
- develop
deploy_prod:
stage: deploy
script:
- echo "Deploying to production..."
- ssh user@server 'cd /path && git pull && npm run deploy'
only:
- main
- 质量与合规:在 MR 流程中强制执行 Code Review、CI 通过、静态检查(如 ESLint/SonarQube) 与 测试覆盖率阈值;内置 SAST、Dependency Scanning、License Compliance 降低安全与合规风险。
四 日常节奏与度量
- 会议与看板:固定 Sprint Planning/每日站会/评审/回顾;站会前更新 看板 状态,识别阻塞并快速协同。
- 度量与改进:结合 燃尽图、完成率、在制品(WIP)限制、MR 周期时间/合并频率 进行过程改进;发布用 Releases 标记版本并与 里程碑/迭代 关联,便于追溯。
五 落地清单与最佳实践
- 规划与跟踪:启用 Iteration Cadence(2–4 周);建立 Epics→Issues→任务 层级;用 作用域标签 与 权重 规范化管理;配置 燃尽图 与 里程碑/Releases。
- 开发与质量:统一 分支策略 与 MR 模板;强制 至少 1 人评审 与 CI 通过;接入 SAST/依赖扫描/许可证合规;设置 覆盖率阈值 与 质量门禁。
- 交付与运维:在 develop/main 环境分别部署 预发/生产;完善 回滚机制 与 发布记录;接入 监控/APM 观察发布后指标;保留 Changelog/ADR 与 Wiki 文档沉淀。