《幕后:改造之路》的5个要点

你在初始化Terraform环境上浪费了多少时间?

如果你的答案是“超出我们应该做的”,那么我们有一些建议给你。

Terraform是一种流行的基础设施即代码(IaC)工具,适用于任何部署到云的人。我们在JFrog使用它来帮助我们的SaaS客户管理基础设施,并且最近在Artifactory中添加了支持来管理您的Terraform文件(提供程序、模块和后端)。

为此,JFrog的DevOps和R&D团队最近揭开了帷幕,分享了他们改进我们自己使用Terraform的经验——他们改变了什么,它如何增强你的日常工作——以及这些努力如何有助于在Artifactory中构建新的Terraform支持。你一定要看录音这个网络研讨会(不到30分钟),但这里有一些有用的收获。

改善地形使用的五个主要步骤

JFrog基础设施团队是Terraform的重度用户。他们管理着大约50个集群,在3个云提供商的40个不同区域运行,并管理着130个terraform工作区。维持这样的规模是很困难的。为了简化基础设施的运作,团队确定了五个需要改进的地方:

使用Terraform的5个步骤

  1. 基础设施对齐-将当前的基础架构调整为只使用基础架构即代码进行管理。整合您的方法将消除手工工作和维护多个工具的需要。如果没有正确配置的IaC,管理大规模的基础设施层几乎是不可能的——命名约定、安全标准、交付时间和更改记录都会带来挑战。
  2. 开发和生产部门-创建工作流,使您能够在不破坏工作区的情况下更改模型。每个特性/环境的分支可能会导致大量的漂移,并且很难理解在给定的环境中运行的是哪个配置
  3. 模块主分支-利用一个带有每个模型标签的模型存储库的主分支。
  4. terrraform之上的协调器-每天自动运行所有的Terraform工作区来检测漂移。在使用Terraform代码的不同组之间划分权限,并在每个步骤之前和之后运行逻辑代码——在计划之前/之后,在应用之前/之后,等等。
  5. 模型解耦消除数据模型之间的相互依赖,使您能够在数据层上工作,而无需解决可能发生在另一层的漂移。JFrog团队将他们的数据模型分为四个主要模型:网络层、K8s层、数据库层和对象存储。

Artifactory如何帮助优化您的地形使用

在JFrog,我们做什么就吃什么。当我们的DevOps团队致力于改善我们自己的Terraform使用时,他们与Artifactory研发团队合作,将必要的功能构建到Artifactory中,以支持团队的Terraform计划。其结果是今天可用的Terraform功能-包括本地,远程和虚拟存储库为您的Terraform提供程序和模块,以及存储库为您的后端状态文件。

使用Artifactory托管和管理Terraform文件将您从源代码控制管理转换为二进制文件。这些模块不是直接从源代码控制中解析模块,而是变成具有所有优点的二进制文件:校验和和部署、不变性、版本控制、更好的安全性等等。使用Artifactory远程存储库来代理官方Hashicorp注册中心,您可以获得对该外部资源的不可变的、始终可用的访问。将您的私有和公共注册中心组合到Artifactory中的虚拟存储库中,为Terraform文件提供了一个单一的、受管理的访问点。

Artifactory的后端存储库解决方案利用支持Terraform远程后端的本地存储库实现,包括工作区和锁定机制。使用JFrog CLI将现有的后端解决方案迁移到Artifactory,并受益于在一个地方管理所有用户、在实际对象存储中加密状态内容、完整的状态历史记录、监视状态操作/活动以及用于状态差异的SmartDiff。

有关使用Artifactory管理Terraform文件的好处的更多详细信息,以及解决方案的实时视图,您可以观看Terraform网络研讨会在需求。你也可以免费试用Artifactory,或要求人工演示我们的一个解决方案工程师。