Terraform是一種開源工具,用於安全高效地預覽,配置和管理雲基礎架構和資源。本文介紹Terraform的基本概念、使用優勢和應用情境。
基本概念
Terraform是一個雲上Resource Orchestration Service工具,實現基礎設施即代碼。
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、Container Service、中介軟體、存取控制、資料庫等超過35款產品,滿足了大量大客戶的自動化上雲需求。
Resource Orchestration Service服務為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。 |