HashiCorp公司的Terraform是開源的IaC(Infrastructure as Code)「基礎建設即程式碼」管理工具。
Terraform是以撰寫配置檔的方式來管理雲端服務基礎設施的生命週期及自動化配置,替代在圖形介面(e.g. AWS console、GCP Cloud Console、Azure console)上以手動操作設定基礎設施的管理方式。雲端服務配置檔化的好處是能以管理程式碼的方式管理雲端服務,例如納入版控、整合CICD pipeline、自動建置及部署等,自動化配置可減少手動配置的失誤及多環境維運的負擔。
Terraform常會與AWS原生的IaC服務CloudFormation比較,主要差別在於Terraform為開源專案並支援多種雲端平台;AWS CloudFormation僅支援AWS本身。
另一個常拿來與Terraform比較的是Ansible。Terraform及Ansible兩者皆為IaC工具,雖然在功能上有重疊,但差別在Terraform是雲端基礎建設配置自動化及應用程式部署工具,配置檔是HCL語言撰寫的宣告式(declarative)語法;Ansible則是系統配置自動化管理及應用程式部署工具,配置檔是命令式(imperative)語法。
而最近(2020)有一個叫pulumi的後起之秀,其優勢在於使用程式開發者熟悉的程式語言如Python、Go、JavaScript來配置基礎設施資源,不像Terraform必須使用自家的HCL語言來撰寫配置,因此能在程式執行期行進行部署,使用上更便捷彈性。
沒有留言:
張貼留言