首页 > 其他分享 >OpenTofu路在何方:定量分析Terraform issue数据,洞察用户需求|OpenTofu Day 闪电演讲

OpenTofu路在何方:定量分析Terraform issue数据,洞察用户需求|OpenTofu Day 闪电演讲

时间:2024-04-01 10:37:13浏览次数:22  
标签:open 用户 Terraform OpenTofu issue 我们

数澈软件 Seal 首席架构师李平辉提交的演讲议题“Alias Terraform=Tofu. Job's Done, Now What?”入选 KubeCon EU 同场活动 OpenTofu Day,本文为演讲实录。

 

 

大家好,我是 Lawrence,是 Seal 的首席架构师。今天将由我为大家带来 Lightening Talk。在 Seal,我们研发了一款开源软件 Walrus。通过 Walrus,用户能够构建适用于多云的应用程序抽象。在 Walrus 上我们还使用了 Terraform 这样的基础设施即代码(IaC)技术进行资源配置,让运维团队能够逐步且顺利过渡到开发者自助服务。我们从 OpenTofu GA 就对其开始进行验证和集成。所以只要你熟悉 Terraform,那么从 Terraform 转到 OpenTofu 从 Day1 开始就是一件非常简单的事情。

 

自 OpenTofu GA 以来已有几个月,这里我快速总结了一下这段时间内 OpenTofu 的综合表现。整体来看 OpenTofu 得到了良好的维护,透明度也很高,例如项目有每周更新,有 TSC(Technical Steering Committee) 摘要,这样用户就可以轻松地跟进或了解项目的进展和方向。此外,OpenTofu 每月有数百次的 commits,这个数量和 Terraform 不相上下。并且 OpenTofu 的文档也非常详尽,包括兼容性承诺、迁移指南和许多其他实用资源。

 

当问到社区用户迁移到 OpenTofu 的原因,许可证显然成了头等因素。那么除此之外还有其他原因吗?我们一起来看看。

 

虽然 OpenTofu 从时间上来看是一个非常新的项目,但它完美继承了 Terraform 的功能与特性,因此我们依旧能从 Terraform 过往的一些数据来获取相关经验。这里我将列举一些有意思的数据,这些数据和分析都是公开来源,如果大家感兴趣的话可以 follow 这个 repo (https://github.com/gitlawr/tofucon-2024-talk)。我对 Terraform 在 GitHub 上的 issue,comment 以及 event 的数据进行了简单汇总,这里我主要关注的是增强和建议相关的 issue,而一些和今天演讲主题关联度不太高的因素并未包含在今天的数据展示中。

 

我们先从一些基本 issue 来看。在 Terraform 中存在时间最久且至今还未解决的 enhancement issue 是什么?这个 issue 要从2016年说起,该 issue 是关于支持 Docker Provision 的。这个 issue 可能在我们日常工作流中并不是很关键或重要,不过看样子还是会长期存在。那么这些 issue 中的回复数量最高是多少呢?答案是1038,而且主要集中在关于在 Terraform 后段配置模块中使用变量。从这个数据我们可以看出用户希望配置语言能够更加灵活。

 

这里我们根据 Terraform 每个月 open/close enhancement issue 的数量来绘制折线图,可以获得下图的这个趋势。很显然,Terraform 是一个成熟且成功的项目。随着时间的推移,社区的 open issue 数量不断增加。尽管许可证发生变更时用户的呼声和反应很强烈,但实际我们并没有从趋势看到非常明显的影响。

 

 

如果按年度汇总这些 issue 数量,我们也可以看到另一个趋势。下图是根据年度 open/close enhancement issue 数量绘制的图。随着 Terraform 变得更加成熟,open issue 对应的数量正在逐步减少,这也就是所谓的技术迭代曲线。

 

 

当我们按照这些 issue 的领域或主题来进行标记,便能大致找出 Terraform 的用户们最关心的几个领域:

  • 第一个是配置语言和语法,也就是说大多数用户其实是希望有更强大、更具表现力和更灵活的配置语言。
  • 第二个则是用户界面和体验,不仅仅是 Terraform,我认为这点对于任何软件的采用都是非常重要的。
  • 第三个是状态管理,也是我个人认为 Terraform 系统中最重要的组成部分之一。

 

其余的还有提供程序框架和与外部工具的集成,例如 CI/CD,以及模型系统等等。这些正是 Terraform 用户以及未来可能成为 OpenTofu 用户在领域中所期望和关注的焦点。

 

随后我尝试对这些 open issue 进行分析,发现和上述三点相关的 issue 常常被标记为负面。或许 OpenTofu Committee 能以此作为参考,浏览这些标记为负面的 issue,看看有什么问题是尚未解决的,是否可以从这些信息中获取解决方案的灵感。当然这是我的一些拙见,欢迎大家更加深入的探讨。

 

总之,OpenTofu 是个充满希望的项目,让我们一起帮助它发展得更好。谢谢大家!

标签:open,用户,Terraform,OpenTofu,issue,我们
From: https://www.cnblogs.com/sealio/p/18107881

相关文章

  • IT24765: TIMING ISSUE IN PACKAGE CACHE WORKSPACE MAY CAUSE PANIC
    IT24765:TIMINGISSUEINPACKAGECACHEWORKSPACEMAYCAUSEPANIChttps://www.ibm.com/mysupport/s/defect/aCI0z0000004vGZ/dt076912?language=fiDescriptionThere is a timing issue where there is a brief moment in time   that the state of ......
  • 从零开始的terraform之旅 - 3命令部分- 部署基础架构 (plan apply destroy)
    3命令部分-部署基础架构(planapply)文章目录3命令部分-部署基础架构(planapply)部署基础架构planplanningmodes**Refresh-onlymode**仅刷新模式,非常有用PlanningOptions规划选项apply命令Plan**Options**apply选项destroy命令部署基础架构terraform的......
  • Terraform小知识-字符串拼接
    在Terraform中,可以使用字符串插值来将多个字符串拼接在一起。字符串插值使用${}语法,其中包含要插入的表达式或变量名。使用字符串插值可以将变量的值动态地插入到字符串中,从而构建一个完整的字符串。例如,假设我们有两个变量name和region,我们想要创建一个AWSS3存......
  • terraform小知识 - 如何取消掉环境变量中设置的身份凭证.md
    terraform小知识-如何取消掉环境变量中设置的身份凭证.md文章目录terraform小知识-如何取消掉环境变量中设置的身份凭证.md需求测试总结需求目前通过环境变量配置了aws的身份凭证,如果直接执行terraform命令,则会调用该身份,但是直接unset取消环境变量又会影响同......
  • 猫头虎分享已解决Bug || 分布式文件系统问题(Distributed File System Issue):DFSUnavail
    博主猫头虎的技术世界......
  • 使用 Amazon Bedrock 上的 Claude 3 将架构图转换为 CDK/Terraform 代码
    概述在云原生领域,基础设施即代码(IaC)对于开发人员和DevOps团队来说是一种不可避免的实践。最近,AmazonBedrock上线了Claude3Sonnet模型和这个模型的图像转文本能力。这无疑开启了一个新时代,也就是实现架构图与IaC工具的无缝融合,如亚马逊云科技云开发工具包(CDK)或......
  • 借助 Terraform 功能协调部署 CI/CD 流水线-Part 1
    在当今快节奏的开发环境中,实现无缝、稳健的CI/CD流水线对于交付高质量软件至关重要。在本文中,我们将向您介绍使用BitbucketPipeline、ArgoCDGitOps和AWSEKS设置部署的步骤,所有步骤都将利用Terraform的强大功能进行编排。在Part1里,将主要介绍通过Terraform创建和部署......
  • 探索Terraform实践:优化基础设施管理
    Terraform是管理基础设施及代码(IaC)最常用的工具之一,它能使我们安全且可预测地对基础设施应用更改。 Terraform作为一个强大的基础设施即代码工具,为开发人员和运维团队提供了一种简单而强大的方式来定义、部署和管理基础设施。在本文中,我们将揭示Terraform的一些高效实践,从模块......
  • cURL error 60: SSL certificate problem: unable to get local issuer certifica 解
    cURLerror60:SSLcertificateproblem:unabletogetlocalissuercertifica解决 无法获取本地颁发者证书 Windows版本1.到https://curl.haxx.se/ca/cacert.pem下载证书文件cacert.pem,将其保存到PHP安装路径下。2.编辑php.ini文件,删除curl.cainfo配置项前......
  • Python打开https链接报错:unable to get local issuer certificate
    Python打开https链接报错:unabletogetlocalissuercertificate或安装Python3.10以上版本,需要openssl1.1.1以上版本,会导致openssl下面缺少证书,记录下安装方法问题描述:当使用urllib.urlopen打开一个https链接时抛出如下异常:urllib.error.URLError:<urlopenerror[SSL:......