全部產品
Search
文件中心

Terraform:瞭解基礎設施即代碼(IaC)

更新時間:Feb 26, 2026

手動管理雲上基礎設施(建立 ECS、配置網路、設定儲存等)通常依賴控制台操作。當基礎設施規模增長時,手動操作容易出現配置錯誤、環境不一致、變更難以回溯等問題。基礎設施即代碼(Infrastructure as Code,IaC)通過代碼定義、部署和管理基礎設施,替代手動操作,實現自動化、可重複的基礎設施交付。

為什麼要使用IaC

IaC工作原理

主流 IaC 工具以設定檔描述基礎設施,根據檔案中的資源描述,通過 API 與雲端服務互動,自動建立和配置資源。

以典型情境為例:一個應用需要部署到開發、測試和生產三個環境,每個環境包含 ECS 執行個體、RDS 資料庫和 SLB 負載平衡。通過控制台手動建立,需要重複操作三次,且難以保證配置一致。使用 IaC,只需編寫一份設定檔,傳入不同的環境變數,即可自動建立三套完全一致的環境。當情境擴充到數百個應用、數百套許可權配置時,將設定檔製作成模板並傳入變數,即可接入 CI/CD 流水線實現自動化交付。

IaC 的基本工作流程如下:

  1. 定義基礎設施:使用配置語言或程式設計語言編寫設定檔,描述所需的資源及其依賴關係。

  2. 自動化部署:IaC 工具根據設定檔,通過雲端服務 API 自動建立和配置資源。

  3. 變更管理:設定檔變更時,工具自動識別差異,累加式更新基礎設施以保持與配置一致。

IaC的優勢

  • 複用性:同一份設定檔可持續建立和管理多個環境(開發、測試、生產等),確保環境一致性。

  • 自動化:自動化建立和管理雲資源,可整合到 CI/CD 流水線實現持續傳遞。

  • 流程化:設定檔的修改經過代碼審查和自動驗證,以變更管理的方式處理基礎設施更改。

  • 可審計:設定檔納入版本控制,保留完整的變更歷史,支援審計和復原。

如何選擇 IaC 工具

阿里雲適配了多種 IaC 工具,各工具在編寫方式、阿里雲雲產品接入程度和適用情境上有明顯差異:

編寫方式

工具

適用情境

圖形介面,無需編碼

Terraform Explorer

快速體驗 IaC,可視化產生和執行配置

HCL 配置語言

Terraform(推薦)

多雲管理、團隊協作、生產環境

JSON/YAML 模板

ROS

純阿里雲環境,與阿里雲控制台深度整合

通用程式設計語言

CDKTF

Team Dev偏好 Java、Python、Go、TypeScript

YAML Playbook

Ansible

組態管理、應用部署、營運編排

說明

Pulumi 等工具也提供阿里雲 Provider,但云產品接入覆蓋度不如 Terraform,建議優先選擇上表中的工具。如果對以上工具都不熟悉,推薦從 Terraform 開始。

阿里雲支援的 IaC 工具

阿里雲與多種 IaC 工具整合,根據使用情境選擇合適的工具:

工具

說明

瞭解更多

Terraform Explorer

基於 Terraform 的視覺化檢視,提供配置產生和自動執行能力,無需安裝用戶端、編寫配置或管理狀態

Explorer 介紹

Terraform(推薦)

HashiCorp 開源的聲明式工具,通過 HCL 定義雲上和本地資源,支援版本控制、模板複用和自動化工作流程。阿里雲是 Terraform 官方四大主要雲端服務供應商之一,Provider 持續更新

瞭解阿里雲Terraform

ROS

阿里雲原生自動化部署服務,免費使用。通過 JSON/YAML 模板定義資源,提供可視化介面和模板庫,支援一鍵部署和託管 Terraform 模板

什麼是Resource Orchestration Service服務

CDKTF

使用通用程式設計語言(Java、Go、Python、TypeScript 等)自動產生 Terraform 配置並執行部署,兼具聲明式的自動化和命令式的靈活性

CDK for Terraform

Terraform Cloud / Enterprise

HashiCorp 面向企業的 Terraform 產品,統一管理組織級基礎設施資源

Terraform 版本

Pulumi

使用通用程式設計語言定義基礎設施,但阿里雲雲產品接入覆蓋度低於 Terraform,推薦優先使用 CDKTF

Pulumi Alicloud

Ansible

專註自動化營運,支援組態管理和應用部署。無代理架構,無需在目標機器安裝用戶端

阿里雲 Ansible

常見問題

使用 IaC 需要編程基礎嗎?

不一定。聲明式工具(如 Terraform)使用專用的配置語言(HCL),文法簡潔易學,無需編程經驗。Terraform Explorer 更進一步,提供圖形介面直接組建組態,無需編寫任何代碼。只有使用 CDKTF 或 Pulumi 時才需要掌握 Java、Python 等程式設計語言。

IaC 設定檔可以跨雲平台使用嗎?

取決於工具。Terraform、Pulumi 等工具支援多雲,但每個雲平台有各自的 Provider 和資源定義,設定檔不能直接跨雲複用。不過,模組化的專案結構和通用的工作流程邏輯可以在不同雲平台間複用。ROS 僅適用於阿里雲。

Terraform 是否收費?

Terraform CLI(開源版)免費使用。Terraform Cloud 提供免費層和付費計劃,Terraform Enterprise 為付費產品。在阿里雲上使用 Terraform 管理資源,Terraform 工具本身不收費,但建立的雲資源按阿里雲標準計費。

相關文檔