现代应用程序在设计时考虑到了可扩展性、可靠性和多云兼容性。这些应用程序依赖于各种基础设施资源,而人工管理这些资源具有挑战性。基础设施即代码(IaC)技术的出现就是为了应对这一挑战。IaC 使开发人员能够在配置文件中定义应用程序所需的全部基础设施,根据配置文件,基础设施可以被自动配置和管理。Terraform 和 Crossplane 是提供 IaC 解决方案的两种流行工具。
Terraform 由 HashiCorp 公司开发,是一款开源 IaC 工具,可让用户使用配置文件以声明的方式定义和管理云计算和内部部署基础架构,这些配置文件可进行版本控制、重复使用和跨平台共享。
Crossplane 是一种现代控制平面,用于在 Kubernetes 集群中调配基础设施。Crossplane 基于 Kubernetes 构建,作为一种控制平面,它扩展了 Kubernetes 集群使用 Kubernetes 工具和 API 提供、协调和管理云基础设施资源的能力。
本文基于以下内容介绍了这两种工具之间的主要区别:
- 核心功能
- 架构
- 配置类型
- 许可
- 社区支持
- 供应商支持
- CI/CD 集成和自动化
- 开发者经验
01 Terraform
Terraform 的核心工作流程由三个阶段组成:
- 编写:您将基础架构资源声明为用 HCL 编写的代码。这些资源可以来自多个供应商。例如,一个实际的例子可能涉及连接到 Amazon S3 bucket,为应用程序读取数据。
- 计划:如上所述,Terraform 将所需的基础设施映射到基础设施的当前状态。然后,Terraform 会将基础设施的声明状态与当前状态进行比较,并创建执行计划来添加、删除或修改必要的资源。
- 应用:如果该计划得到开发人员的批准,则将执行配置文件中指定的操作以实现所需的基础设施状态。
Terraform 架构