LELexEdge词汇锋面
DevOps专业术语

CDKvsTerraform

DevOps领域术语对比 — 快速理解两者的核心差异

概览对比

CDK

CDK 让你用熟悉的编程语言(TypeScript、Python、Go 等)定义 AWS 基础设施,享受 IDE 补全、类型检查和代码复用,最终编译为 CloudFormation 模板。

Terraform

Terraform 让你用声明式代码定义云基础设施(服务器、网络、数据库等),一条命令就能创建或更新整个环境。它支持 AWS、GCP、Azure 等所有主流云平台。

核心要点

CDK

  • 用编程语言替代 YAML/HCL 定义基础设施
  • 支持 TypeScript、Python、Go 等语言
  • 编译为 CloudFormation 模板部署

Terraform

  • 基础设施即代码(IaC)的事实标准
  • 声明式语法:描述期望状态而非操作步骤
  • 支持所有主流云平台和数百种 Provider

正式定义

CDK

用通用编程语言定义 AWS 基础设施的开源 IaC 框架

Terraform

使用声明式代码定义和管理云基础设施资源的开源 IaC 工具

应用场景

CDK

  • AWS 基础设施的代码化管理
  • 可复用基础设施组件的封装
  • 多环境的参数化部署

Terraform

  • 多云环境的基础设施管理
  • 基础设施变更的版本控制和审计
  • 环境的可重复创建和销毁

详细解读

CDK

CDK 是 AWS 对「Infrastructure as Code」的另一种回答:与 Terraform 的 HCL 不同,CDK 使用通用编程语言,可以利用循环、条件、抽象等编程能力。CDK Construct 是可复用的基础设施组件,L1(低级)直接映射 CloudFormation 资源,L2(高级)提供合理默认值,L3(Pattern)封装完整架构模式。CDK 的局限是只支持 AWS。

Terraform

Terraform 使用 HCL(HashiCorp Configuration Language)声明式地定义基础设施。核心工作流是:编写代码 → terraform plan(预览变更)→ terraform apply(执行变更)。Terraform 的 State 文件记录了基础设施的当前状态,用于计算变更差异。Terraform 的优势在于多云支持和丰富的 Provider 生态,但 State 管理和大规模使用时的性能是常见挑战。OpenTofu 是 Terraform 的开源分支,在 HashiCorp 修改许可证后获得了社区关注。

快速对比

维度CDKTerraform
类型专业术语专业术语
标签IaC、云平台IaC、云平台
热度6682

共同关联术语

GitOpsCI/CD