区块链网站|NFTS Terra(LUNC) 配置地形的五点建议

配置地形的五点建议

广告位

关于配置 Terraform 的五条建议

本文介绍我使用Terraform五年后的经验。

使用Terraform五年的经验给了我一些重要的教训。不管团队的规模和项目的性质如何,有五个关键点对于配置逻辑和可用的Terraform平台是必不可少的。

1.了解你的目标受众似乎是显而易见的,但我也看到过一些这方面失误的案例。在组织和规划Terraform的相关代码时,无论是规范目录结构还是确定命名规范,考虑目标受众都是非常重要的。例如,你的团队会使用这些Terraform脚本和模块吗?你会把工作交给其他团队吗?会有新成员加入你的团队吗?你是自己开发项目吗?半年或一年后你还会用这些配置吗,还是会给别人安排?

这种问题会影响一些决策。理想情况下应该有两种状态:远程状态和状态锁定状态锁定。远程状态确保您的笔记本电脑不是唯一运行在您的Terraform上的机器,状态锁定确保同一时间只有一个人可以修改基础架构。

命名规范应该对项目的最终所有者有意义,而不仅仅是对开发团队。如果将项目交给其他团队,应该确保他们在命名规范上有发言权。如果代码由非技术风险承担者或内部安全/GCR团队审查,应确保他们会检查命名约定。另外,对于资源名,为了让代码审核者更仔细的检查,你要用资源标签来标明相关的数据分类/隐私要求(高、中、低)。

2.复用,复用,复用Terraform registry为最常见的用例提供了现成的模块类库。VPC模块和安全模块中的很多功能我都用过,需要提供相关参数才能使用。使用不同的参数,简单地调用这些模块就足以处理大多数用例。尽可能复用这些常用模块,可以避免编码、测试、检查、修复、重构等大量重复操作。

我还发现根据使用或改变的频率来划分模块和资源是有益的。例如,只使用一次的基础设施脚手架,如VPC相关设置、安全模块、路由表、VPC端点等。可以放在一起。然而,私有管理域条目、自动扩展模块、目标模块、负载平衡器等。每次部署时都会改变。因此,将这些从一次性的基础设施脚手架中分离出来将使代码检查更方便,调试更快。

3.明确说明,而不是暗示,Terraform代码中有一些常见的模式,会导致设计中出现错误的假设。团队可以假设用来写代码的Terraform版本会一直保持不变,外部模块不会变,或者他们使用的提供者不会变。当这些外部依赖不可避免地发生变化时,就会导致一些难以发现的问题。

无论在哪里(包括主Terraform组、提供者组、功能模块组),都要保证定义清晰。提前定义版本可以确保依赖基础是固定的,所以你可以在讨论、审查和测试之后清楚地更新依赖。

4.自动化一切,包括笔记本电脑、共享虚拟机、CI/CD。在部署的所有阶段使用自动化方法可以避免可能出现的问题。

在提交代码之前,运行terraform fmt和terraform validate with Git预提交钩子。提交前挂钩的作用是确保您的代码满足最低级别的格式和语法正确性。将这个预先提交的文档签入仓库对您的所有团队成员都有好处。项目的第一步是进行质量控制相关操作。虽然表面上是小事,但也很重要,可以为项目节省很多时间。

所有现代部署工具都有CI流程。当您将代码推送到原始仓库时,您可以使用它来运行SAST和单元测试工具。我写过一篇关于使用Checkov测试Terraform代码的安全性和合规性,并为特定于组织的约定创建自定义检查的博客。将这些单元测试工具添加到您的CI管道中可以提高代码质量和健壮性。

5.写一个好的README.md文件。我们都认为Terraform代码是自文档化的。确实如此,但前提是未来的团队已经知道你公司的命名规范、开发指南、机密通信、内幕笑话,以及你仓库里除了有效的Terraform代码之外的一切。维护README.md文件是一个好习惯。可以节省很多时间,团队成员对自己提交到README文件的任何内容负责,从而保证团队成员的忠诚度。

您的自述文件至少应包含在您的工作环境(Linux、Windows、Mac等)中初始化Terraform环境的步骤。),包括Terraform的版本信息。它应该确定所需的依赖库(Checkov、TerraGrunt等)及其版本,以及团队使用的方便的Linux别名(例如,有些人喜欢将terraform fmt缩写为tff)。最重要的是,需要确定分公司和PR审计政策和流程、命名规范和资源标签的相关标准。

自述文件需要通过这个测试:如果有新成员加入团队,你能告诉他们该做什么,如何正确完成工作吗?如果没有,在接下来的几个月里,你将会面临无休止的标准和过程讨论会议。

结论这是我使用Terraform多年后,觉得需要传授给你的五个有用的建议。也欢迎大家分享自己的最佳实践。

途经:https://opensource.com/article/21/8/terraform-tips

作者:Ayush Sharma主题:lujun9972译者:cool-summer-021校对:wxy

本文由LCTT原创,Linux中国隆重推出。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/lunc/12866.html

作者: 未来已来

上一篇
下一篇

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部