[关闭]
@Rays 2017-10-28T10:27:29.000000Z 字数 2505 阅读 2168

Terraform及多云的进一步简化

架构&设计 云架构


摘要: Raf Gemmail综述了近期围绕多云(Multi-Cloud)以及Hashocorp的Terraform云配置工具的一系列进展。

作者: Rafiq Gemmail

正文:

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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注