Terraform是一种开源工具,用于安全高效地预览,配置和管理云基础架构和资源。本文介绍Terraform的基本概念、使用优势和应用场景。
基本概念
Terraform是一个云上资源编排工具,实现基础设施即代码。
Terraform能够让您在阿里云上轻松使用简单模板语言定义、预览和部署云基础架构。更多信息,请参见Configuration Syntax。
Terraform是一个安全、高效地部署、更改、版本化基础设施和应用程序的工具,可以用来管理多层次的资源。
Terraform统一管理从上层的软件到底层的网络、系统的配置。
Terraform可以创建、修改、删除ECS、VPC、RDS、SLB等多种阿里云云产品资源。
有关Terraform应用场景的具体介绍,请参见应用场景。
Terraform资源
Terraform的资源分为2类:
Resource:资源,指新创建的资源。
Data Source:数据资源,查询已有的资源信息并获取其属性。
如何使用Resource和Data Source的示例如下:
### Data Source
# 列出2 Core 4 GB这种规格的机器的型号。
# 参考文档:https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types
data "alicloud_instance_types" "c2g4" {
cpu_core_count = 2
memory_size = 4
}
## Resource
# 创建一个SLB。
# 参考文档:https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance
resource "alicloud_slb" "default" {
name = var.name
specification = "slb.s2.small"
vswitch_id = alicloud_vswitch.default.id
}
关于可观测监控 Prometheus 版的Resource和Data Source的相关信息,请参见通过Terraform使用。
Terraform工具
Terraform工具分为2部分:
Terraform CLI:Terraform客户端命令行工具。
Terraform Provider:各个云厂商都提供了自己的Provider,用于将云产品接入到Terraform中。关于Terraform Provider的更多信息,请参见Provider。
您可以下载Terraform工具。具体操作,请参见在本地安装和配置Terraform和在Cloud Shell中使用Terraform。
阿里云已与Terraform集成,且阿里云Provider(terraform-provider-alicloud)目前已经提供了超过163个Resource和113个Data Source,覆盖计算、存储、网络、负载均衡、CDN、容器服务、中间件、访问控制、数据库等超过35款产品,已经满足了大量大客户的自动化上云需求。
关于Terraform的更多信息,请参见Terraform。
使用优势
将基础架构部署到多个云
Terraform适用于多云方案,将类似的基础架构部署到阿里云、其他云提供商或者本地数据中心。开发人员能够使用相同的工具和相似的配置文件同时管理不同云提供商的资源。
自动化管理基础架构
Terraform能够创建配置文件的模板,以可重复、可预测的方式定义、预配和配置ECS资源,减少因人为因素导致的部署和管理错误。通过使用Terraform,您能够多次部署同一模板,创建相同的开发、测试和生产环境。
基础架构即代码
可以用代码来管理维护资源。允许保存基础设施状态,从而使您能够跟踪对系统(基础设施即代码)中不同组件所做的更改,并与其他人共享这些配置。
降低开发成本
您可通过按需创建开发和部署环境来降低成本。并且,您可以在系统更改之前进行评估。
通过Terraform使用可观测监控 Prometheus 版
可观测监控 Prometheus 版支持通过Terraform管理以下Resource和Data Source。
名称 | 描述 |
管理Prometheus实例。 | |
管理Prometheus实例的集成中心组件Exporter。 | |
管理Prometheus实例的RemoteWrite。 | |
管理Prometheus实例的Monitoring(包括ServiceMonitor、PodMonitor、自定义Job和Probe)。 | |
管理环境实例。 | |
管理环境实例的ServiceMonitor。 | |
管理环境实例的PodMonitor。 | |
管理环境实例的自定义Job。 | |
管理环境实例的插件发布包。 | |
管理环境实例的Feature(包括metric-agent、app-agent-pilot、service-check、ebpf-agent等)。 |
名称 | 描述 |
列举所有Prometheus实例。 | |
列举所有Prometheus实例的集成中心组件Exporter。 | |
列举所有Prometheus实例的RemoteWrite。 |