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

数澈软件 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 是个充满希望的项目,让我们一起帮助它发展得更好。谢谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/518045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux: linux常见操作指令

目录 01.ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令(重要) 06.rmdir指令 && rm 指令(重要) 07.man指令(重要) 07.cp指令(重要) 08.mv指令&#…

如何创建一个TCP多人聊天室?

一、什么是TCP? TCP(Transmission Control Protocol)是一种可靠的 面向连接的协议 ,可以保证数据在传输过程中不会丢失、重复或乱序。 利用TCP实现简单聊天程序,需要客户端和服务器端之间建立TCP连接,并通…

【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)

题目 假设你在Uber工作。rides表包含了关于Uber用户在美国各地的行程信息。 编写一个查询,以获取纽约(NY)每位通勤者的平均通勤时间(以分钟为单位),以及纽约所有通勤者的平均通勤时间(以分钟为…

谈谈 MySQL 的锁

前言 在 MySQL 中,锁这个定义其实还是蛮重要的。经过我这几天的学习,我感觉锁是一个可以说难又可以说不难的知识点。难就难在锁可以与事务、多线程、并发结合在一起,这就很难了。但是,假如锁没有结合这些知识点,就单单…

产品推荐 | 中科亿海微推出亿迅®A8000金融FPGA加速卡

01、产品概述 亿迅A8000金融加速卡,是中科亿海微联合金融证券领域的战略合作伙伴北京睿智融科,将可编程逻辑芯片与金融行业深度结合,通过可编程逻辑芯片对交易行情加速解码,实现低至纳秒级的解码引擎,端到端的处理时延…

【Arthas案例】某应用依赖两个GAV-classifier不同的snakeyaml.jar,引起NoSuchMethodError

多个不同的GAV-classifier依赖冲突,引起NoSuchMethodError Maven依赖的三坐标体系GAV(G-groupId,A-artifactId,V-version) classifier通常用于区分从同一POM构建的具有不同内容的构件物(artifact)。它是可选的&#xf…

每日一题:矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]使用两个标记变量。 class Sol…

Pygame基础10-物理模拟

PyMunk PyMunk是一个模拟物理的库。 注意,PyMunk只是进行物理模拟,不包含可视化的功能。如果需要可视化,可使用pygame等库。 可用pip安装pymunk pip install pymunk pymunk中的概念: space: 物理空间。 包含gravity 模…

网络抓包专题

导航目录 HTTP 原理HTTPS 原理TLS 原理网络抓包原理一. 什么是抓包?二. 抓包的原理对HTTP请求进行抓包对HTTPS请求进行抓包 三. Android设备抓包问题Android6.0 及以下系统Android7.0 及以上系统方式一:方式二 HTTP 原理 HTTP 详解 点击跳转 HTTPS 原理…

MPEG-1 详解

MPEG-1 详解 MPEG-1 详解特点MPEG-1 中的运动补偿与 B 帧的引入MPEG-1 vs H.261MPEG-1 视频数据流的结构MPEG-1 视频压缩模式MPEG-1 视频解码框图MPEG-1 音频编码模式MPEG-1 audio layer 1MPEG-1 audio layer 2MPEG-1 audio layer 3 MPEG-1 音频编码框图MPEG-1 音频解码框图参考…

基于matlab解决鸡兔同笼问题

一、什么是鸡兔同笼? 鸡兔同笼问题是一种经典的数学问题,最早出自于《孙子算经》,详细成书时间不详,但可以确定的是,它不早于汉代,不晚于南北朝时期[6]。这个问题在中国数学史上具有重要的意义&#xff0c…

WEB漏洞挖掘详细教程--用户输入合规性(sql注入测试)

前置教程:WEB漏洞挖掘(SRC)详细教程--信息收集篇-CSDN博客 WEB漏洞挖掘(SRC)详细教程--身份认证与业务一致性-CSDN博客 WEB漏洞挖掘(SRC)详细教程--业务数据篡改-CSDN博客 2.4 用户输入合规性…

RabbitMQ基于Java实现消息应答

RabbitMQ 概念 RabbitMQ是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站, 一个快递员帮你传递快件…

Golang Gin框架

1、这篇文章我们简要讨论一些Gin框架 主要是给大家一个基本概念 1、Gin主要是分为路由和中间件部分。 Gin底层使用的是net/http的逻辑,net/http主要是说,当来一个网络请求时,go func开启另一个协程去处理后续(类似epoll)。 然后主协程持续…

备战蓝桥杯---递归与DFS刷题2

1. 数据范围允许直接暴力把所有组合都写一遍,我们用Pair来存,在sort中分式比较只要把自己的分子与对方的分母乘比较即可,下面介绍一下st树的写法,具体原理就不说了,它是先[0/1,1/1]然后取分子分母的平均化成两个区间&a…

【C++】学习多态原理

目录 一、虚函数表二、多态原理三、关于动态绑定与静态绑定 一、虚函数表 先来看一段代码&#xff1a;sizeof(Base)是多少&#xff1f; class Base { public:virtual void Func1(){cout << "Func1()" << endl;} private:int _b 1; };int main() {cout…

【Linux】make 工具和 Makefile 文件的引入

前面提到了 gcc 编译器&#xff0c;那么使用 gcc 编译器肯定就会接触到 Makefile 。当源码文件比较多的时候就不适合通过直接输入 gcc 命令来编译&#xff0c;这时候就需要一个自动化的编译工具 make 。 举例&#xff1a;通过键盘输入两个整形数字&#xff0c;然后计算他们的和…

elasticSearch原理浅尝

终于等到你 马上就要放弃 开个玩笑 &#xff0c;进入正题 on fire 基础的咱不说了&#xff0c;一搜一麻袋 读 全文检索&#xff1a; 协调节点广播查询请求到相关分片 并 将其响应 整合 全局排序 返回结果集合 带路由&#xff1a;具体文档 shard hash(document_id) % (…

国外服务器托管需要了解哪些信息

国外服务器托管服务提供了一种在国外租用并管理服务器的方式&#xff0c;适用于需要特定地域服务或对本地法规有特殊要求的企业和个人。那么想要进行国外服务器托管需要了解哪些信息呢?Rak部落小编为您整理发布国外服务器托管相关内容。 以下是一些关于国外服务器托管服务的详…

YoloV8改进策略:BackBone改进|ELA

文章目录 摘要1、引言2、相关工作3、方法3.1、重新审视坐标注意力3.1.1、坐标注意力3.1.2、坐标注意力的不足 3.2、高效局部注意力3.3、多个ELA版本设置3.4、可视化3.5、实现 4、实验4.1、实验细节4.2、ImageNet上的图像分类4.3、目标检测4.4、语义分割 5、结论 摘要 https://…