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集成,且阿里云Provider(terraform-provider-alicloud)目前已經提供了超過163個Resource和113個Data Source,覆蓋計算、存儲、網絡、負載均衡、CDN、容器服務、中間件、訪問控制、數據庫等超過35款產品,滿足了大量大客戶的自動化上云需求。
資源編排服務為Terraform提供了托管的能力,您可以創建Terraform類型的模板,定義阿里云、AWS或Azure資源,配置資源參數和資源間的依賴關系。更多信息,請參見創建Terraform類型模板、創建Terraform類型資源棧。
關于Terraform的更多信息,請參見Terraform。
使用優勢
將基礎架構部署到多個云
Terraform適用于多云方案,將類似的基礎架構部署到阿里云、其他云提供商或者本地數據中心。開發人員能夠使用相同的工具和相似的配置文件同時管理不同云提供商的資源。
自動化管理基礎架構
Terraform能夠創建配置文件的模板,以可重復、可預測的方式定義、預配和配置ECS資源,減少因人為因素導致的部署和管理錯誤。通過使用Terraform,您能夠多次部署同一模板,創建相同的開發、測試和生產環境。
基礎架構即代碼
可以用代碼來管理維護資源。允許保存基礎設施狀態,從而使您能夠跟蹤對系統(基礎設施即代碼)中不同組件所做的更改,并與其他人共享這些配置。
降低開發成本
您可通過按需創建開發和部署環境來降低成本。并且您可以在系統更改之前進行評估。
通過Terraform使用可觀測監控 Prometheus 版
可觀測監控 Prometheus 版支持通過Terraform管理以下Resource和Data Source。
表 1. Resource
名稱 | 描述 |
管理Prometheus實例。 | |
管理Prometheus實例的集成中心組件Exporter。 | |
管理Prometheus實例的RemoteWrite。 | |
管理Prometheus實例的Monitoring(包括ServiceMonitor、PodMonitor、自定義Job和Probe)。 | |
管理環境實例。 | |
管理環境實例的ServiceMonitor。 | |
管理環境實例的PodMonitor。 | |
管理環境實例的自定義Job。 | |
管理環境實例的插件發布包。 | |
管理環境實例的Feature(包括metric-agent、app-agent-pilot、service-check、ebpf-agent等)。 |
表 2. Data Source
名稱 | 描述 |
列舉所有Prometheus實例。 | |
列舉所有Prometheus實例的集成中心組件Exporter。 | |
列舉所有Prometheus實例的RemoteWrite。 |