Terraform 究竟有何用
為什麼要用 Terraform?
- 支援多個雲端平台,實現跨雲資源管理
- 宣告式語言,直接定義基礎架構的模樣
- 安裝 Client 能透過 API 來建置基礎架構
- 不可變的基礎架構確保基礎設施的穩定
- 開源專案,有社群參與跟廣大資源使用
Terraform 是如何運作的?
Terraform 透過應用程式介面 API 建立和管理雲端平台和其他服務上的資源。 提供者使 Terraform 能夠透過可存取的 API 與幾乎任何平台或服務配合使用。只要撰寫好 Terraform 腳本,一個鍵就可以達到你想要做的事情,簡單來說幫助你透過程式碼去管理這些雲端資源
核心 Terraform 工作流程由三個階段組成:
- 寫入: 您定義資源,這些資源可能跨多個雲端提供者和服務。 例如,您可以建立配置,以在具有安全群組和負載平衡器的虛擬私有雲 (VPC) 網路中的虛擬機器上部署應用程式。
- 計劃:Terraform 建立執行計劃,描述它將根據現有基礎架構和您的配置建立、更新或銷毀的基礎架構。
- 應用: 獲得批准後,Terraform 將按照正確的順序執行建議的操作,並尊重任何資源依賴性。 例如,如果您更新 VPC 的屬性並更改該 VPC 中的虛擬機器數量,Terraform 將在擴展虛擬機器之前重新建立 VPC。
前面提過 Terraform 能夠在 AWS 上面建立 VPC、建立 EC2 伺服器、設定網路等等。那麼,它是如何連接 AWS 或者其他雲端平台的服務呢?
這些工作需要倚賴 Terraform 的兩個主要元件:Core,以及特定技術的提供者(providers)。
Core
Core 使用兩項資訊來決定它要執行哪些工作:
- Terraform 組態檔:描述該做什麼、達成什麼狀態。
- State:基礎設施目前的狀態。
Core 會根據組態檔描述的需求以及基礎設施當前的狀態來決定該做哪些事情。也就是說,持續比對需求與現狀,一旦發現二者有差異,便可執行必要的工作來讓基礎設施達到組態檔所描述的狀態。