跳转到主要内容

持续交付与 GitOps (Continuous Delivery & GitOps)

Harness 持续交付 (CD) 模块提供强大的部署自动化能力,支持多种部署策略和目标环境。结合 GitOps 方法,实现基础设施和应用的双重 Git 管理。

核心功能

部署策略

  • 蓝绿部署:同时运行两套环境,实现零停机切换
  • 金丝雀发布:逐步将流量切换到新版本,降低发布风险
  • 滚动部署:按批次滚动更新,无须额外基础设施
  • 内置部署:直接替换旧版本

GitOps 工作流

  • 声明式配置:以代码形式定义期望状态
  • 自动同步:监控系统状态,自动纠正偏差
  • 多环境支持:管理开发、测试、预生产、生产等多套环境

部署目标

  • Kubernetes:原生 Kubernetes 部署
  • Helm:Helm Chart 部署
  • 自定义脚本:支持任意部署方式
  • 云服务:AWS、Azure、GCP 等主流云平台
  • 虚拟机:物理机或虚拟机部署

质量门禁与审批

  • 手动审批:人工确认后再继续部署
  • 自动验证:结合测试结果决定是否继续
  • 策略执行:使用 OPA 定义部署策略

适用场景

场景推荐策略
高可用应用金丝雀发布 + 自动回滚
快速迭代滚动部署 + 蓝绿切换
关键系统蓝绿部署 + 多阶段审批
GitOps 管理GitOps 自动同步

快速开始

1. 创建应用

在 Harness 中创建一个 CD 应用,定义部署目标。

2. 配置服务

定义要部署的服务(Artifact)和目标基础设施。

3. 定义环境

创建开发、测试、生产等环境,并配置对应的基础设施。

4. 配置流水线

设计包含部署阶段的流水线,添加质量门禁和审批节点。

5. 设置触发器

配置基于 CI 完成、Git 事件或手动触发的部署规则。

与其他模块集成

  • CI:接收 CI 构建的产物并自动部署
  • FF:在部署过程中管理功能标志
  • CE:部署前运行混沌实验验证系统韧性
  • CCM:监控部署过程中的云成本
  • STO:在部署阶段执行安全扫描

GitOps 优势

  1. 版本控制:所有变更都有完整的审计追踪
  2. 一致性:环境配置与应用部署保持一致
  3. 回滚简便:通过 Git 命令即可回滚到任意版本
  4. 团队协作:利用 PR 流程进行变更审核

最佳实践

  1. 小步快跑:频繁小量发布,降低风险
  2. 自动化一切:减少人工操作,降低错误率
  3. 监控回滚:配置自动回滚条件
  4. 渐进式发布:逐步扩大影响范围

相关资源