写点什么

Terraform 及多云的进一步简化

2017 年 10 月 30 日

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

2017 年 10 月 30 日 19:001806
用户头像

发布了 376 篇内容, 共 95.5 次阅读, 收获喜欢 221 次。

关注

评论

发布
暂无评论
发现更多内容

520 单身福利|获奖名单公布~

InfoQ写作平台官方

活动专区 520单身福利

Why WebRTC|前世今生

声网Agora

WebRTC RTC

520 表白,因一个分号被拒

悟空聊架构

520单身福利

iOS开发底层原理技术~RAC深度解析

ios cocoa 程序员 移动开发

膜拜!Github访问量破百万,阿里内部首次公布的Java10W字面经有多强?

云流

Java 程序员 架构 面试

现货量化交易系统开发app,量化马丁策略交易平台搭建

WX13823153201

基于 Qt Quick Plugin 快速构建桌面端跨平台组件

网易云信

音视频 qt

Serverless:这真的是未来吗?(二)

Serverless Devs

Serverless 运维 云原生 后端 无服务器

28天读完349页,这份阿里Java面试通关手册,助我“闯进”字节跳动拿下offer

Crud的程序员

Java 编程 架构

勒索病毒Kraken2.0.7分析

Machine Gun

网络安全 信息安全 渗透测试

分布式RPC框架Dubbo实现服务治理:集成Kryo实现高速序列化,集成Hystrix实现熔断器

攻城狮Chova

dubbo Hystrix Kryo 高速序列化 熔断器

JavaScript+TensorFlow.js让你在视频中瞬间消失

不脱发的程序猿

JavaScript 人工智能 开源项目 TensorFlow.js

基础设施设施即代码(IaC)平台 Pulumi | 混合云管理利器

郭旭东

基础设施即代码 IaC

Flume的负载均衡load balancer

大数据技术指南

flume 5月日更

阿里分布式大神亲码“redis核心技术笔记”,没有废话,全是干货!

Java架构追梦

Java redis 阿里巴巴 架构 架构分布式

看完了京东年薪150万的大佬扔给我的“阿里内部Java 成长笔记”,差距不止一点点

云流

Java 程序员 架构 面试 计算机

BitMap 转置算法:不一样的 Count 求解方式

GrowingIO技术专栏

BitMap

测试开发专题-开篇

禅道项目管理

软件测试 自动化测试 测试开发

无敌!阿里p8大佬强推的这款IDEA高效插件,检测代码漏洞一键修复

java专业爱好者

Java IDEA

新的公链技术领袖?海外社区媒体热议全能公链Thinkium

北熊说链

太空猫社区联盟 Thinkium

「Adobe国际认证」Adobe Illustrator排版字体设计

Adobe国际认证

测试开发网络篇-网络协议简介

禅道项目管理

软件测试 自动化测试 测试开发

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下Java岗offer,你们准备好跳槽吗?

Crud的程序员

Java 编程 架构 java程序员

HIVE跑个insert into select xxx 为什么CPU飙高

InfoQ_Springup

hadoop

阿里内部百亿级高并发系统(全彩版小册开源):基础篇、数据库篇、缓存篇、消息队列篇、分布式服务篇、维护篇、实战篇;带你从基础到实战

云流

Java 程序员 架构 高并发

普通代码块 静态代码块 构造代码块......傻傻分不清

麦洛

Java

聊聊那些小而美的开源搜索引擎

代码先生

搜索引擎 elasticsearch meilisearch

SparkStreaming知识点总结

五分钟学大数据

大数据 5月日更

情指勤一体化管控系统开发方案,大数据情报研判平台建设

WX13823153201

微服务项目部署实践:使用GitLab Runner实现微服务项目的持续集成,持续交付和持续部署

攻城狮Chova

持续集成 gitlab ci 持续部署 5月日更

架构实战营模块3课后作业-基于“自研集群+MySQL存储”的消息队列架构设计方案

吴建中

架构实战营

Terraform及多云的进一步简化-InfoQ