跳转到主要内容

基础设施即代码管理 (Infrastructure as Code Management)

Harness 基础设施即代码管理 (IaCM) 模块帮助团队以声明式的方式定义、版本控制和治理云基础设施。

核心功能

基础设施管理

  • Terraform 支持:完整支持 Terraform 工作流
  • Terragrunt 支持:管理复杂的 Terraform 模块结构
  • 多云支持:AWS、Azure、GCP 等主流云平台
  • 蓝图库:预置的基础设施模板加速配置

版本控制

  • Git 集成:所有基础设施变更通过 Git 管理
  • 变更历史:完整的审计追踪
  • 回滚能力:轻松回滚到之前的版本
  • 代码审查:通过 PR 流程进行变更审核

策略治理

  • OPA 集成:强制执行基础设施安全策略
  • 合规检查:确保基础设施符合行业标准
  • 漂移检测:识别实际状态与期望状态的偏差
  • 自动纠正:自动修复基础设施漂移

模块注册表

  • 模块化管理:注册和复用基础设施模块
  • 版本管理:管理模块的不同版本
  • 治理规则:为模块设置使用策略

适用场景

场景说明
基础设施标准化通过蓝图统一团队的基础设施配置
合规治理确保基础设施符合安全策略
漂移管理自动检测和修复配置漂移
成本优化识别未使用的资源

快速开始

1. 连接基础设施

配置云账户和基础设施连接器。

2. 创建/导入基础设施

  • 创建新的 Terraform 配置
  • 或导入现有的 Terraform 状态

3. 定义基础设施

使用 Terraform HCL 定义资源:
resource "aws_instance" "app_server" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.micro"
  
  tags = {
    Name        = "app-server"
    Environment = "production"
    ManagedBy   = "Harness"
  }
}

4. 配置触发器

设置触发基础设施变更的条件。

5. 执行计划

查看变更预览,确认后执行 apply。

漂移检测

IaCM 提供自动漂移检测:
计划状态 → 实际状态 → 漂移检测 → 自动纠正
功能说明
定时检测按计划执行漂移检测
手动检测随时触发检测
自动纠正检测到漂移时自动修复

与 CI/CD 的关系

场景IaCMCI/CD
时机基础设施变更应用部署
工具Terraform容器编排
目标云资源应用程序
触发Git 变更镜像更新

最佳实践

  1. 模块化设计:创建可复用的 Terraform 模块
  2. 状态管理:使用远程状态存储,确保团队协作
  3. 变更审核:所有变更通过 PR 流程
  4. 策略先行:先定义策略,再创建资源
  5. 监控漂移:定期检查基础设施状态

相关资源