Terraform指南:Terraform 與其他軟件對比

  • Terraform 與 客戶解決方案的比較

很多機構從手工管理基礎架構逐步開始使用一些簡單的腳本或者基於Web界面的工具。但隨着基礎架構的不斷擴大,任何手工管理方式都變得既容易出錯也很繁瑣,很多機構開始自研工具來自動化所涉及的機械化的操作過程。

儘管這些工具需要時間和資源來對其進行開發和維護,但這些工具對於他們來說又是必需的,這代表着他們所迫切需要的最小化可性特性,而且通常僅用於處理突發性需求而構建,因此這些工具難以擴展和維護。這些工具必須隨着基礎架構或者任何新功能的變化而跟新,這也成爲基礎架構演進速度的限制因素。

Terraform 圍繞應對以上種種挑戰和困難設計而成,提供簡單的、統一的語法,在不再需要學習其他新的工具的情況下可是實現對幾乎所有的資源進行管理。通過遍歷所有所需資源,他們之間的依賴關係可以被很好地自動解決,因此運維人員無需進行記憶和論證它們,這樣也是運維人員從構建工具的負擔重解脫出來,使他們可以專注於基礎架構本身的工作。

此外,Terraform 是一款開源工具,除 HashiCorp 之外,圍繞 Terraform 的社區幫助擴展它的功能,問題修復以及編寫新的使用場景。Terraform 幫助每個企業解決現有問題的同時,形成可用於在其他組織機構進行推廣的標準實踐,避免重複造輪子,其開源特性也保證了該工具可以長久發展。

  • Terraform 與 Boto、Fog等比較

Boto、Fog 等之類的開發庫通過調用雲提供商或者服務的 API 來提供對他們的本地訪問。其中一類庫針對特定的雲平臺,還有一類庫試圖採用統一的接口來屏蔽語義上的差異。因此,這類客戶端開發庫只能提供底層的訪問接口,仍需要開發人員創建自己的應用程序來構建和管理他們的基礎架構。

然而,Terraform 並不打算對提供商進行底層編程訪問,而是提供一套高級的語法來描述如何創建、部署和組合雲資源和服務。Terraform 非常靈活,使用基於插件的模型來對不同的供應商進行支持,使其能夠提供平臺或服務幾乎所有 API 所支持的能力。

  • Terraform 與 CloudFormation、Heat等編排工具的比較

CloudFormation、Heat 之類的工具將基礎架構詳細信息編碼成配置文件。此配置文件可以將基礎架構進行彈性創建、修改和刪除。Terraform 的靈感也來自於它們所要解決的問題。

類似地,Terraform 也利用配置文件來描述基礎架構配置的詳情,但更進一步既與具體的雲服務解耦又可以支持多個提供商以及服務進行組合和編排。例如,Terraform 可用於同時編排 AWS 和 OpenStack 集羣,並且還可以與類似 Cloudflare 和 DNSimple 之類的第三方提供商進行集成來提供CDN 和 DNS 服務。這使得 Terraform 能夠用它所支持的服務來表示並管理整個基礎架構,而不是僅僅是其中的一部分。它提供統一的配置描述語言語法,而運維人員無需採用各平臺和服務單獨的、不可互操作性的工具對多種平臺、多種服務進行操作。

Terraform 還通過執行計劃的概念將計劃階段與執行階段實現分離。通過執行 terraform plan 命令可以進行狀態更新並對比生成執行計劃。該計劃包括所有需要執行的動作:哪些資源需要創建、刪除或者修改。運維人員可以據此檢查該計劃是否完全符合預期。利用 terraform graph 命令來可視化地展示執行計劃的順序和依賴關係。一旦該計劃被確認,執行階段的所有動作則嚴格按照該計劃執行嚴格執行。其他工具將計劃和執行合併成一個步驟,這將意味着強制運維人員在腦海中對變更所帶來的影響瞭如指掌,這對於大型的基礎架構變的異常棘手。Terrform 可以讓運維人員事先對即將執行的動作及其影響得到全面瞭解,因此在實施變更時纔會有足夠的自信。

  • Terraform 與 Check、Puppet 等比較

配置管理工具可以在已存在的服務器上安裝和管理軟件,而 Terraform 並不是一款配置管理工具,與之不衝突,現有工具在引導和初始化資源方面仍可以繼續發揮其長處。

利用部署工具,Terraform 允許任何配置管理工具在資源創建完成之後進行進一步地設置。Terraform 側重於對數據中心以及輔助服務進行高級抽象,而不用犧牲配置工具所擅長的能力。但同時它仍採用相同的編碼方式來保障這些工具成功執行,從而使整體基礎架構的部署更加易用和可靠。

  • Terraform 與其他軟件的比較

Terraform 提供對資源和提供商進行靈活的抽象能力。該模型可用於表徵任何資源,從物理設備、虛擬機、容器到郵箱、DNS 提供商等等,因此,Terraform 可以用於解決很多不同的問題。這將意味着很多現有工具與 Terraform 的功能有重合的部分。我們與很多工具做了比較,值得注意的是 Terraform 與其他系統都不衝突,它既可以用於管理簡單的一個應用程序,也可以是整個數據中心。

發佈了3 篇原創文章 · 獲贊 1 · 訪問量 5682
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章