Microsoft和Hashicorp在八月份宣布達成了一份多年的合作協議,意在改進在Terraform中對Azure資源的支持。Terraform是Hashicorp推出的一種可用于多云(Multi-Cloud)的配置工具。隨后,Google也發布了類似的聲明,承諾將改進Terraform與Google Cloud Platform(GCP)的集成。
Terraform是一種成熟的多云解決方案,當前適用于69種不同的云服務提供商,它使得配置擺脫了特定于服務商的工具,并避免了服務商鎖定問題(Lock-in)。Terraform使用了云特定的服務提供器(Provider),支持本地部署(On-premise)、混合部署和多云部署,使用Terraform的云可感知HCL語言(Hashicorp Configuration Language)配置不同的云服務。
Stefan Magnus Landr 在七月的NDC奧斯陸大會上以“Terraform:開拓Azure”為題目做了一次報告。在報告中,他通過一個配置在DigitalOcean、AWS和Azure間的跨云集成,對多云的優點進行了展示。Landr 指出,“Terraform的獨到之處在于,你可以將來自不同云服務提供商的資源組合成一個大的架構”。他展示了一個包括Digital Ocean和Azure的VPS組合,其中DNS使用了AWS的Route 53。Landr 據此用例提出:
當前加權的健康檢查是一種只有Amazon提供的特性,它是Amazon云的一個獨到特性,不能在Google或DigitalOcean、Azure等其它原生DNS服務器提供者中看到。現在我們給出的方案很酷,因為用戶可以從其所能發現的最好云服務商中挑選最好的服務,并插入到自己的架構中……用戶可以用上所有云中最好的服務。
云服務提供商已對降低自身門檻以實現集成表示出了明確的興趣。自從Microsoft和Hashicorp雙方簽署了合作協議后,Azure已將Terraform配置集成到自己的基于Web的Azure Cloud Shell服務中,提供了通過基于瀏覽器的Shell做配置的功能。Terraform的計算負責人Corey Sanders在博客中指出,這使得“在任何可以使用手機的地方使用Terraform”成為可能。Azure的高級項目經理Hariharan Jayaraman近期接受了MSDN Channel 9的采訪,在采訪中他展示了一個在Terraform中使用HCL語言通過Cloud Shell定義和部署Azure資源的簡單過程。他解釋說,雖然Terraform是構建在Azure Resource Manager API之上的,但是它“通過提供(可驗證部署的)計劃而給出了更多的功能”。Jarayaman指出:
企業會存在這樣的困惑,它們并不想培訓自己的DevOps工程師去熟悉多種配置格式。Terraform使得DevOps工程師可以使用同一配置格式去描述AWS或Azure中的資源。
九月份召開的Hashiconf大會見證了Terraform Module Registry的發布。該Registery使得社區可以為常見的配置模式提供解決方案,它提供了一個“發布軟件、版本管理和共享模塊的場所。對于模塊的用戶而言,Registry是發現、使用模塊并協作各模塊的中心場所”。據Hashicorp介紹,Registry的推出使“合作廠商和社區成員易于分享模塊與開展協作,并對模塊進行更新和版本控制,以持續地對架構配置做出改進”。Microsoft也宣布,它已經將一組新模塊發布到Registry中。
據BMC的數字創新副總裁(Vice President of Digital Innovation)Jason Fyre介紹,多云策略避免了廠商鎖定(Lock-in)問題,在財政上的和競爭方面上具有優勢。Fyre近期就BMC發布其多云架構發現和可視化工具“Discovery for Multi-Cloud”接受了福布斯的采訪。其中Fyre評論道:
(多云)允許(組織)建模工作負載的可能代價。這些工作負載可以是運行在Amazon或Azure上,也可以是在現場(On-Site)運行。有時一旦我們做出這樣的模型,客戶就會發現工作負載在現場運行的代價可能要要比在云上運行的代價更低,或是發現相反的情況。
在今年六月,OpenCredo公司CTO Nicky Watt在HashiDays倫敦大會上做了一個演講,展示了從簡單Terraform配置到更為復雜的企業配置的經歷。她同時警告,實現過程中要避免產生一種她稱之為“Terralith”的狀態。
Watt將“Terralith”定義為一種“單體配置”,它是“從高度依賴于本地狀態和單體配置文件的概念驗證(PoC)演化而來”,該狀態的特性是“并不具備分布部署環境的能力”。
DigitalOcean近期更新了使用Terraform配置DigitalOcean Droplet(VPS)的教程,其中展示了使用Terraform可降低需要用戶去熟悉一些特定于服務提供商的工作。該教程將引導用戶去部署兩個具有hahproxy的nginx實例的可重復配置。對于配置編寫者而言,這將云服務提供商特定的配置轉化為一些提供者(Provider)變量,并具有DigitalOcean信任的SSH和API密鑰。
Terraform這類工具將一系列云服務的使用門檻簡化為單一的抽象。和所有其它的解決方案一樣,實現規模的重擔將落在持續改進上,以及實現和相關流程的演進上。
Watt提醒我們:
這并非只是與代碼的結構項目相關。你還需要考慮如何演進各個過程,以及管理其中的各種編排系統。
查看英文原文: Terraform and the Increasing Ease of Multi-cloud