尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【CI/CD·落地篇】企业级 CI/CD 平台搭建路线图:从规划到落地

【CI/CD·落地篇】企业级 CI/CD 平台搭建路线图:从规划到落地 前言前19篇讲了 CI/CD 的各种概念、工具和实践。本篇作为 CI/CD 系列收官把这些知识串联成一个完整的企业级 CI/CD 平台搭建路线图。你可以把这篇当作 checklist对照检查你的平台缺什么。一、企业级 CI/CD 平台架构┌─────────────────────────────────────────────────────────┐ │ 开发者工作流 │ │ 代码编写 → 提交 PR → 代码审查 → 合并 → 自动部署 │ └────────────────────────┬────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ 代码托管层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ GitLab │ │ GitHub │ │ Gitea │ │ │ │ (代码仓库)│ │ (代码仓库) │ │ (代码仓库)│ │ │ └──────────┘ └──────────┘ └──────────┘ │ └────────────────────────┬────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ CI/CD 引擎层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ GitLab CI│ │ Jenkins │ │ Actions │ │ │ │ (流水线) │ │ (流水线) │ │ (流水线) │ │ │ └─────┬────┘ └─────┬────┘ └─────┬────┘ │ │ └──────────┬───┘─────────────┘ │ │ ↓ │ │ ┌──────────────────────────────────────┐ │ │ │ 共享库 / 模板仓库 │ │ │ │ (标准流水线模板、安全检查、部署策略) │ │ │ └──────────────────────────────────────┘ │ └────────────────────────┬────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ 制品管理层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Harbor │ │ Nexus │ │ GHCR │ │ │ │ (镜像仓库)│ │ (制品仓库)│ │ (镜像仓库)│ │ │ └──────────┘ └──────────┘ └──────────┘ │ └────────────────────────┬────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ 部署运行层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ K8s Prod │ │ K8s Stage│ │ K8s Test │ │ │ │ (生产) │ │ (预发) │ │ (测试) │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └────────────────────────┬────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ 可观测性层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │Prometheus│ │ Grafana │ │ Alertmgr │ │ │ │ (监控) │ │ (看板) │ │ (告警) │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────┘二、搭建路线图6个阶段阶段一基础搭建第1-2周目标代码托管 基础 CI 跑通 □ 部署代码托管平台 - 选择 GitLab / GitHub Enterprise / Gitea - 配置 LDAP/SSO 集成 - 设置分支保护策略main 分支只允许 PR 合并 □ 部署 CI/CD 工具 - 选择 GitLab CI / Jenkins / GitHub Actions - 部署 Runner推荐 Docker executor - 配置 Agent/Runner 标签 □ 建立标准流水线模板 - 构建阶段编译打包 - 测试阶段单元测试 - 代码检查lint format check □ 配置基础安全 - CI/CD 管理员权限 - 代码仓库访问权限 - Secret/Variable 基础管理阶段二制品管理第3-4周目标构建产物可追溯、可管理 □ 部署制品仓库 - Docker 镜像仓库: Harbor / GHCR - 包仓库: Nexus / GitLab Package Registry - 配置存储和备份 □ 规范镜像构建 - 多阶段 Dockerfile 模板 - 镜像标签策略: BRANCH-COMMIT-TIMESTAMP - 镜像清理策略保留最近50个版本 □ 流水线扩展 - 增加 Docker 镜像构建和推送阶段 - 增加镜像签名Cosign - 增加镜像扫描Trivy阶段三自动部署第5-8周目标自动化部署到测试和预发环境 □ 部署测试环境 - K8s 命名空间: myapp-test - 配置 CI Runner 到 K8s 的访问权限 - 编写部署 Jobkubectl set image rollout status □ 部署预发环境 - K8s 命名空间: myapp-staging - 与生产环境同构相同配置、相同数据量级 - 手动触发部署when: manual □ 配置管理 - ConfigMap 模板化envsubst - Secret 管理SOPS 或 Sealed Secrets - 多环境配置文件管理 □ 部署验证 - 健康检查readiness probe - 冒烟测试 - 自动回滚机制阶段四质量保障第9-12周目标质量门禁 安全扫描 测试自动化 □ 代码质量 - SonarQube 部署和集成 - 质量门规则定义 - 代码覆盖率报告 □ 安全扫描 - SAST源代码安全扫描 - 依赖扫描CVE 检查 - 容器镜像扫描Trivy - DAST运行时安全扫描 □ 测试自动化 - 单元测试覆盖率 70% - 集成测试套件 - E2E 测试关键链路 - 性能基线测试 □ 质量门禁 - 统一质量门 Job - 低于阈值阻断流水线 - MR 中展示质量报告阶段五生产部署第13-16周目标安全的生产部署 金丝雀 自动回滚 □ 生产环境部署 - K8s 命名空间: myapp-prod - 人工审批environment: production - 部署审计日志 □ 金丝雀发布 - Argo Rollouts 或 Flagger 安装 - 金丝雀策略: 10% → 观察5分钟 → 50% → 观察5分钟 → 100% - 自动指标分析Prometheus 查询 □ 自动回滚 - 指标: 错误率 1% → 回滚 - 指标: 延迟 P99 基线 200% → 回滚 - 指标: 成功率 99% → 回滚 □ 数据库变更 - 扩展-收缩模式Expand-Contract - 数据库迁移版本化Flyway / Liquibase - 回滚脚本准备阶段六度量优化第17-20周目标可度量、可视化、持续优化 □ CI/CD 度量 - 部署频率统计 - 变更前置时间 - 变更失败率 - MTTR □ 监控告警 - Prometheus 指标采集 - Grafana Dashboard - 流水线失败告警 □ 性能优化 - 构建缓存优化 - 并行执行 - 增量构建 - 流水线提速到 15分钟 □ 持续改进 - 月度回顾 - 瓶颈分析 - 优化计划三、组织与流程保障团队角色角色职责技能要求平台工程师维护 CI/CD 平台和共享库K8s Docker CI/CD 工具DevOps 工程师维护流水线和部署策略流水线编写 部署策略开发工程师编写应用代码和测试编程 单元测试SRE监控和可靠性保障Prometheus K8s流程规范1. 代码提交规范 - 分支命名: feature/xxx, fix/xxx, hotfix/xxx - Commit message: type(scope): description - PR 必须有至少1人审查 CI 通过 2. 部署规范 - 测试环境: 自动部署 - 预发环境: 手动触发 自动验证 - 生产环境: 人工审批 金丝雀 自动回滚 3. 应急流程 - 流水线失败: 自动通知 → 责任人15分钟内响应 - 生产故障: 自动回滚 → 人工介入 → 事后复盘 - 安全事件: 阻断流水线 → 安全团队审查 → 修复后放行四、常见问题与对策问题原因对策流水线太慢无缓存、串行执行加缓存、并行化、增量构建构建经常失败环境不一致容器化构建、固定镜像版本密钥泄漏硬编码Vault/SOPS 最小权限部署后故障缺乏验证金丝雀 自动回滚 健康检查团队不用太复杂、门槛高共享库 模板 培训文档插件/工具升级出问题没有测试环境先 staging 验证再升级五、CI/CD 成熟度自评Level 1入门级手动脚本[ ] 有代码仓库[ ] 有手动构建脚本[ ] 部署靠手动操作[ ] 无自动化测试Level 2CI 基础级[ ] 有自动化流水线构建测试[ ] 有 CI Runner[ ] 有代码审查流程[ ] 有基础的单元测试Level 3CD 持续交付级[ ] 有 Docker 镜像构建和推送[ ] 有制品仓库[ ] 自动部署到测试环境[ ] 有预发环境[ ] 有质量门禁Level 4DevOps 成熟级[ ] 有金丝雀/蓝绿部署[ ] 有自动回滚[ ] 有安全扫描SAST/DAST/依赖/镜像[ ] 有监控告警[ ] 有度量指标DORA 四指标[ ] 流水线 15分钟Level 5持续部署级[ ] 通过测试自动部署到生产[ ] 功能开关Feature Flags[ ] 混沌工程[ ] 每天部署多次[ ] MTTR 1小时培训要点绝大多数企业达到 Level 3 就已经是行业领先。Level 4-5 需要团队文化和工程能力的长期积累。不要急于求成每个 Level 至少稳定运行3个月再向下一个 Level 迈进。六、本篇要点回顾企业级 CI/CD 平台五层架构代码托管 → CI/CD 引擎 → 制品管理 → 部署运行 → 可观测性20周路线图基础搭建 → 制品管理 → 自动部署 → 质量保障 → 生产部署 → 度量优化组织保障平台工程师 DevOps 开发 SRE 协同流程规范代码规范 部署规范 应急流程成熟度五级评估多数企业达到 Level 3 即领先CI/CD 系列结语20篇文章从CI/CD 是什么开始经过 Jenkins、GitLab CI、GitHub Actions 三大工具实战到安全实践、度量优化最后到企业级平台搭建路线图。读完并实践后你应该具备从零搭建一个生产级 CI/CD 平台的能力。下一篇系列预告接下来进入 GitOps 系列。GitOps 是 CI/CD 的升级版——用 Git 作为唯一可信源实现声明式交付。我们将从理念到 ArgoCD/Flux 实战带你进入下一代交付方式。系列下一篇《GitOps·入门篇》GitOps是什么从基础设施即代码到声明式交付的演进》
返回列表