“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

使用 Terraform 与 Consul 自动化现代数据中心

  • 2015-05-25
  • 本文字数:2493 字

    阅读完需:约 8 分钟

2015 年 CraftConf 大会上, Mitchell Hashimoto 提出,当前的提供(provisioning)和配置(configuration)工具不足以成为“现代数据中心”的编排工具。现代数据中心的特点是敏捷和弹性,并为部署其上的应用提供所需的“服务”,如计算资源、DNS 和可跨不同厂商平台的 CDN。Hashimoto 介绍了两款 Hashicorp 公司的工具, Terraform Consul ,可用于在这些有挑战性的环境中提供自动化。

Hashimoto 是 Hashicorp 公司的创始人,同时也是 Vagrant Packer 两个项目的领导者。Hashimoto 首先回顾了数据中心技术的历史。从企业的角度来看,一个典型的数据中心的资源使用是从单物理服务器发展而来的,经历了使用多个裸物理服务器,并最终发展成为使用多个虚拟机实例。这一进化的最新趋势是走向容器化。配置、部署和维护的复杂性一直随着这一演进而增加,人们对自动化的需求变得极为重要。 CFEngine Chef Puppet Ansible 等工具的出现,正是为了满足这些原始需求。

Hashimoto 说,随着公共云和私有云技术的流行,我们现在运作的“现代数据中心”面临着新的挑战。曾经被集成在核心基础设施堆的技术,现在转向以服务为基础的产品,例如,DNS 的 CDN 和数据库。企业也越来越多地使用多个不同厂商的产品来构建自己的基础架构平台。这两个变化在传统配置的基础上,增加了额外的复杂性,Hashimoto 认为,当前的工具不能满足这种要求:

当你想要搭建你的应用程序时,你尽可编写足够多的 Chef 和 Puppet 自动化脚本,但是如果你没有一个自动化的方式来搭建所有需要的服务,那这有什么意义呢?你的应用程序将无法正常工作……

数据中心的核心工作通常包括获取(acquisition)、提供(provision)、更新(update)和销毁(destruction)资源(比如服务器、数据存储和负载平衡器等)。回首过去,这些进程是缓慢的,而结果是相对静态的,但是现在这些活动是快速的,并且输出是弹性可伸缩的。例如当我们要提供计算资源的时侯,这将一目了然。对于传统的数据中心来说,必须购买物理服务器、上机架、配置,并部署为一个固定的单位。然而,对于现代数据中心来说,通过调用 API 获得计算实例,指定启动时的相关配置即可,并且实例通常可以就地水平扩展,或者很容易为水平扩展添加多个实例。

Hashimoto 认为,手动是无法利用起现代数据中心所提供的速度和弹性的——我们必须实现自动化。自动化的现代数据中心的需求体现为:

  • 一条命令部署
  • 弹性分布式系统
  • 自动伸缩、自动健康监测
  • 经过知识梳理获得更好的团队合作

Hashimoto 介绍了 Hashicorp 的 Terraform ,这一款可以有效地构建、结合并启动跨数据中心和不同供应商的基础设施的工具。例如,Terraform 可以启动一个 Amazon Web 服务(AWS) EC2 计算实例和一个 DigitalOcean Droplet 计算实例,然后通过访问 Dyn DNS 服务配置这些实例。Terraform 使用人类友好的文本格式,声明式定义基础设施,而且 Terraform 模块能够执行指定的较低级别的配置操作。

Terraform 可由“terraform apply”一条命令来激活,可以使用“terraform plan”命令来预览活跃的实例。该命令的运行输出是一个有序列表,描述了声明式定义的当前基础设施的状态变更。同时,还能表明变更是就地执行的,还是销毁的性质的(例如,重新启动服务器)。这个信息可用于确定操作是否适用于特定的时间点,例如,维护窗口是否打开。

plan 命令的输出也可以保存到文件中,以便日后决定执行基础设施的变更。Hashimoto 认为,预览基础设施变更的能力是 Terraform 的最重要的特征之一。可以在目前开发的工作流程中,组合基础设施代码的变更和配置计划,如创建 pull 请求、审查 diff 和接受变更。

Hashimoto 讲到,在 Terraform 出现之前,运维团队负责管理生产环境的技术栈是令人难以置信的,因为他们需要深刻地理解当前云平台、确定当前基础设施的状态,并且计算出由此产生的状态转换的结果。 Hashimoto 认为,运维工程师和 DevOps 工程师希望能在技术栈之上工作,像 Terraform 这样的工具可以实现他们的愿望,在很大程度上,这同很多开发工程师已经从汇编语言转到第三代编程语言上工作的情境类似。

这就是我对核心运维工程师与应用运维工程师之间的区别的定义。 在每家公司中都有这样的运维工程师,他们知道如何部署一套高可用的数据库集群,当然也有不知道这些,但是想要知道如何去搭建高可用数据库集群的运维工程师。我们可以选择教他们如何去具体实现,或者为他们提供抽象的封装 [一如 Terraform 所提供的]。

演讲的第二部分介绍了 Hashicorp 的 Consul ,这是一款以跨数据中心、高可用的方式提供服务发现、配置和编排的工具。Hashimoto 表示,Consul 可以用来回答一个企业的基础设施中,诸如下列这些问题:“服务 X 在哪里”、“服务Ÿ的实例是否健康”、“当前正在运行的服务是什么”、“服务 Z 的配置是怎样的”,以及“在我的平台上是否还有其他人在执行操作 A?”。

Consul 通过 DNS 或 HTTP API 提供服务发现功能,同时支持跨数据中心的内部服务或外部服务的发现。 使用shell 脚本实现了健康检查,并允许创建自定义的服务验证协议。 Consul 还提供了高可用的键值对存储,由此可以暴露一致的存储值,用于配置参数的调优,而不必非要执行配置管理工具。 可调优的操动实例包括指定服务的位置、指明系统处于维护模式,或者设置服务的 QoS 参数。

Hashimoto 说,Consul 还提供了一套编排原语、通过 UDP 协议跨数据中心广播异步“事件”、
通过 TCP 协议让指定的计算机同步执行“exec”指令,以及通过实现长轮询、react、事件机制或者其他操作实现定制化的监控。

关于 Mitchell Hashimoto 中 CraftConf 的演讲,“自动化现代数据中心,从开发到生产”,包括视频等更多详细信息,请参阅大会网站 Terraform v0.5 的下载地址在 Terraform.io 网站,Consul v0.5 的下载地址在 Consul.io 网站。

查看英文原文: Automating the Modern Datacenter with Terraform and Consul


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-05-25 10:3710328

评论

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

直播回顾|走进元服务,携手小强停车探索鸿蒙新流量阵地

HMS Core

HMS Core

DevStudio编辑器使用技巧

坚果

OpenHarmony3.2 6 月 优质更文活动

聊聊数科公司如何与现有数智平台厂商协同作战

用友BIP

数科公司 数智平台 数智平台白皮书

OpenHarmony工程模板和开发语言

坚果

OpenHarmony 6 月 优质更文活动

STM32+DHT11监测环境的温湿度

DS小龙哥

6 月 优质更文活动

扬帆启航丨九科信息亮相2023全球数字经济大会(GDEC)新加坡分会场

九科Ninetech

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库 zillizcloud

KW 新闻 | KaiwuDB 受邀亮相 IOTE 2023 第十九届国际物联网展

KaiwuDB

工业物联网 KaiwuDB IOTE

出海如何从0到1?融云《社交泛娱乐出海作战地图》实战经验揭秘

融云 RongCloud

互联网 社交 融云 泛娱乐 出海

飞桨AI4S污染物扩散快速预测模型,亮相全国数据驱动计算力学研讨会

飞桨PaddlePaddle

飞桨 #人工智能

中盐集团:以财务共享为基础,引领盐行业数智化转型

用友BIP

财务共享

提升用户体验:在小程序环境中充分利用Ionic框架

FinFish

Ionic 跨端开发 小程序容器 跨端框架 小程序容器技术

里氏替换原则究竟如何理解?

磐远

Java 设计模式 设计原则 里氏替换

瓴羊Quick BI:可视化大屏让数据呈现更直观

夜雨微澜

专注开发者体验 | GitOps 实现 Kuberentes 持续部署

亚马逊云科技 (Amazon Web Services)

云原生

你会怎样设计云原生场景下的IOC框架?

K

原创 云原生 ioc spring ioc

C语言编程—可变参数

攻城狮Wayne

C语言 可变参数 6 月 优质更文活动

高能预警!融云WICC发布《社交泛娱乐出海作战地图》

融云 RongCloud

互联网 地图 融云 即时通信 出海

快速掌握Kubernetes中的核心概念

穿过生命散发芬芳

k8s 6 月 优质更文活动

揭秘阿里云 Flink 智能诊断利器——Flink Job Advisor

Apache Flink

大数据 flink 实时计算

​“前端已死”甚嚣尘上,全栈工程师卷到起飞

引迈信息

前端 低代码 全栈 JNPF

助力金融业数字化转型,原点安全将出席“2023 中国金融业数字化转型发展大会”

原点安全

数据安全 金融行业 uDSP 消费者个人信息保护

社交泛娱乐出海如何抓住AIGC?我在融云WICC上看到了答案

融云 RongCloud

社交 融云 泛娱乐 出海 通讯

KW 喜报 | KaiwuDB 斩获 2023 数博会“优秀科技成果”奖

KaiwuDB

KaiwuDB 离散制造业解决方案 2023数博会

开源共建下一代智能终端操作系统根社区 OpenHarmony携手伙伴聚力前行

科技汇

把钢铁侠战衣交给Z世代,没想到联想商用PC可以这么炫酷!

脑极体

联想 PC

使用containerd从0搭建k8s(kubernetes)集群

tiandizhiguai

k8s

如今做泛娱乐出海,你需要融云《社交泛娱乐出海作战地图》

融云 RongCloud

产品 互联网 融云 泛娱乐 出海

2023-06-12:如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为超级回文数。 现在,给定两个正整数 L 和 R (以字符串形式表示), 返回包含在范围 [L, R] 中

福大大架构师每日一题

算法、 福大大架构师每日一题

中企出海,海外商旅费控的关键点是什么?

用友BIP

中企出海

智能人才发现,帮助企业精准找人,快速识人

用友BIP

数智人力

使用Terraform与Consul自动化现代数据中心_亚马逊云科技_Daniel Bryant_InfoQ精选文章