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