欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

基础设施即代码工具Terraform的一些典型使用场景

时间:2023-05-19
Terraform是什么

HashiCorp Terraform 是一种基础架构即代码工具,可让您在可读的配置文件中定义云和本地资源,您可以对其进行版本控制、重用和共享。 然后,您可以使用一致的工作流程在整个生命周期内配置和管理所有基础架构。 Terraform 可以管理计算、存储和网络资源等低级组件,以及 DNS 条目和 SaaS 功能等高级组件。

Terraform 通过其应用程序编程接口 (API) 在云平台和其他服务上创建和管理资源。Providers组件使 Terraform 能够通过可访问的 API 与几乎任何平台或服务一起工作。
可以在 Terraform Registry 中查找使用许多平台和服务的Providers定制组件。 你也可以自己开发一个。 Terraform 采用不可变的方法管理基础设施(如果你需要安装/升级虚机或虚机系统软件的版本,只有创建个新版本的虚机,以旧换新),这降低了升级或修改服务和基础架构的复杂性。关于不可变的基础设施 VS、可变的基础设施,二者的概念与技术选型上的权衡,可以看下这篇文章:以不可变更的方法管理基础设施。

Terraform常见的几类使用场景

本文描述了流行的 Terraform 用例。

多云环境管理

跨多个云环境来部署配置基础设施时,有效提高了技术系统的容错能力,允许从云服务商的故障中断事件中进行更优雅的恢复。 然而,多云部署增加了复杂性,因为每个提供商都有自己的界面、工具和工作流程。 Terraform 允许您使用相同的工作流程来管理多个云服务商并处理跨云的依赖项。 这简化了大规模、多云基础架构的管理和编排。

应用程序基础设施部署、扩展和监控工具

您可以使用 Terraform 高效地部署、发布、扩展和监控复杂应用程序的基础设施。 N 层应用程序的部署架构允许独立地扩展某一个层次的应用程序组件。 一个应用程序可以包含一个使用数据库层的 Web 服务器池,以及其它附加的用于 API 服务器、缓存服务器和路由网格的层次。 Terraform 允许您统一管理每一层中的资源,并自动处理层之间的依赖关系。 例如,Terraform 将在部署、配置 Web 服务器之前,先行部署一个被依赖的数据库层。

自助服务集群

在大型组织中,您的集中式运营团队可能会收到许多重复的基础设施资源请求。 您可以使用 Terraform 构建“自助式”基础设施模型,让产品团队独立管理自己的基础设施资源。 您可以创建和使用 Terraform 模块,这些模块遵循了在您的组织中部署和管理服务的统一标准,从而允许团队根据您的组织的最佳实践有效地部署服务。 Terraform Cloud 还可以与 ServiceNow 等票务系统集成,以自动生成新的基础设施请求。

政策合规与管理

Terraform 可以帮助您更好地执行组织的资源使用管理策略,以规范团队可以配置和使用的基础设施资源。 传统的资源申请审查流程是一个处理瓶颈,可能会减慢开发任务的速度。 相反,您可以使用 Sentinel(一种策略即代码框架)在 Terraform 进行基础设施的更改之前自动实施合规性和治理策略。 Sentinel 可用于 Terraform Cloud 团队和治理层。

PaaS 应用程序设置

Heroku 等平台即服务 (PaaS) 供应商允许您创建 Web 应用程序并附加组件,例如数据库或电子邮件提供商。 Heroku 可以弹性扩展 dynos 或 worker 的数量,但大多数重要的应用程序需要许多附加组件和外部服务。 您可以使用 Terraform 编写 Heroku 应用程序所需的设置,配置 DNSimple 以设置 CNAME,并将 Cloudflare 设置为应用程序的内容加速网络服务 (CDN)。 Terraform 可以在没有 Web 界面的情况下快速、一致地完成所有这些工作。

软件定义网络

Terraform 可以与软件定义网络 (SDN) 交互,以根据其中运行的应用程序的需要自动配置网络。 这使您可以从基于工单的工作流程转变为自动化工作流程,从而减少部署时间。
例如,当向 HashiCorp Consul 注册服务时,Consul-Terraform-Sync 可以自动生成 Terraform 配置并调整具有关联 Terraform 提供程序的任何 SDN 的网络设置。 网络基础设施自动化 (NIA) 允许您安全地批准应用程序所需的更改,而无需手动处理。

Kubernetes

Kubernetes 是用于容器化应用程序的开源工作负载调度程序。 Terraform 允许您部署 Kubernetes 集群并管理其资源(例如,pod、部署、服务等)。 您还可以使用 Kubernetes Operator for Terraform 通过 Kubernetes 自定义资源定义 (CRD) 和 Terraform Cloud 来管理云和本地基础设施。

并行环境维护

您可能拥有用于在生产中发布新应用程序之前测试新应用程序的staging或 QA 环境。 随着生产环境变得越来越大和越来越复杂,为开发过程的每个阶段维护一个最新的环境变得越来越困难。 Terraform 可让您快速启动和停用用于开发、测试、QA 和生产的基础设施环境。 使用 Terraform 根据需要创建一次性环境比无限期地维护每个环境更具成本效益。

软件演示

您可以使用 Terraform 在各种云服务商上创建、配置和启动一个演示环境。 这让最终用户可以轻松地在他们自己的基础设施上试用该软件,甚至使他们能够调整集群大小等参数,以更严格地测试任何规模的工具。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。