什么是 Terraform?你可能会问,它是干什么用的?为什么这么受欢迎?这只是一些流行语吗?好吧,当您继续阅读时,这些问题将得到相应的回答。

在我们能够理解 Terraform 是什么之前,我们需要先澄清一些概念。首先,让我们定义什么是基础设施即代码,因为它与 Terraform 密切相关。

“基础架构即代码 (IaC) 只是通过代码而非手动流程管理和配置基础架构。”

上面提到的**“基础设施”**是什么?它涉及:硬件、软件、操作系统和数据存储。这种“基础设施”主要涉及云基础设施和一些本地基础设施。现在我们已经定义了 IaC 和 Infrastructure,现在让我们定义 Terraform。

“用 Go 编写的 Terraform 是由 Hashicorp 创建的开源基础设施即代码工具。借助 Terraform,您可以安全高效地构建、更改和版本化基础架构。”

“Terraform 是一个使用声明性语言含义的开源工具,您可以使用 Terraform 指定您想要的内容并指定最终结果,Terraform 将简单地完成剩下的工作。”

Terraform 主要用于配置云基础设施,因为它支持许多提供商,例如 AWS、Azure、GCP、阿里云、Oracle 云。 Terraform 确实支持本地基础架构,但不支持独立基础架构,本地基础架构必须与 OpenStack 或 VMWare 一起运行,因为 Terraform 支持这些。

使用 Terraform,可以执行多云功能,例如使用仅在 Azure 上可用的 Azure 数据工厂、使用只能在 Google Cloud Platform 上找到的 Google BigQuery 或使用仅在 Amazon Web Services 中可用的 Amazon Lambda .上述所有基础设施都可以使用 Terraform 以相同的方式创建和管理。

Terraform 用例

  • Terraform 与云无关,允许使用单个配置来管理多个提供程序,甚至可以处理跨云依赖项。这简化了管理和编排,帮助运营商构建大规模的多云基础设施。

  • 由 Heroku 等 PaaS 提供商提供的服务可以在 Terraform 中使用。在 Heroku 上托管 Web 应用程序所需的设置只需几行代码即可编写。其他配置(例如设置自定义 CNAME)也可以使用 Terraform 在很短的时间内完成。

  • 使用 Terraform,可以启动环境来测试软件,一旦完成,这个环境就可以被丢弃。此外,如果操作对暂存环境中的应用程序的操作感到满意,则可以轻松复制该暂存环境并将其用作生产环境。

Terraform 有许多用例,当然,所有用例都不能在本文的范围内讨论。

让我们来看看使用 Terraform 的一些好处:

使用 Terraform 的好处

  • 使用 Terraform,团队可以审查和评论基础设施。 Terraform 允许进行状态管理(存储、查看、历史记录和锁定),一个用于查看和批准 Terraform 运行的 Web UI。

  • 如果您想要的 Terraform 插件或提供程序在 Terraform Registry 上不可用,您可以简单地编写自己的提供程序并将其与 Terraform 集成以轻松构建您的基础设施。

  • 使用 Terraform,可以将他们的基础设施即代码提交给 VCS,以促进协作。

  • 人类可读的配置语言可以帮助您相对快速地编写基础设施即代码。

使用 Terraform 有很多好处,显然这里不能一一列举。现在我们知道了 Terraform 的一些用例,以及使用 Terraform 的好处,下面我们就简单地看看 Terraform 是如何工作的。

Terraform 架构有 2 个主要组件:

空白图(2).png

  • 核心: 这需要两个输入源才能工作,这些源包括 Terraform 配置文件和 Terraform 状态文件。核心分析 Terraform 配置文件并与保存基础设施当前状态的 Terraform 状态文件进行比较,以确定创建、更新或销毁基础设施的操作点。 Terraform 配置文件包含所需的基础设施状态。

  • 提供者: Terraform 依赖称为“提供者”的插件与云提供者、SaaS 提供者和其他 API 进行交互。一旦通过 Terraform 配置文件确定了基础设施的状态,Core 然后通过 Terraform 插件与所需的云提供商交互,以创建、更新或销毁所需的基础设施。

现在您知道了 Terraform 的工作原理、使用它的好处以及一些现实世界的用例。在下一篇文章中,让我们直接使用 Terraform 在 AWS 上预置一个 EC2 实例。

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐