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

news2024/11/28 14:41:59

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot实现房产销售系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现房产销售系统演示 摘要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于房产销售系统当然也不能排除在外,随着网络技术的不断成熟,带动了房产销售系统…

B树、B+树、哈夫曼树

目录 1. B树2. B树3. 哈夫曼树 1. B树 特点:一个节点当中可以有多个值,节点内部key 值是有序的,节点内部存储的是key-value类型的数据 磁盘中文件存储用B树。 4阶B树一个节点最多三个key值 5阶B树一个节点最多四个key值 B树有很多的分支&…

数字化转型如何帮助企业降低经营成本?

数字化转型通过多种方式帮助企业降低经营成本,提高效率和竞争力。以下是一些关键的转型策略和实践: 1.自动化流程:利用自动化工具和软件,如机器人流程自动化(RPA)和人工智能(AI)&am…

优化页面加载时间:改善用户体验的关键

✨✨ 祝屏幕前的您天天开心,每天都有好运相伴。我们一起加油!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一、为什么页面加载时间重要? 二、如何减少页面加载时间? …

MySQL count函数的使用

count()函数在使用时参数好像不能设置为表达式,只能设置成指定字段或* 比如在查询性别为男的成员数目时不能写: select count(gendermale) from user_profile ; 否则直接得到6,也就是等价于select count(gender) fro…

SpringBoot常见注解有哪些

Spring Boot的核心注解是SpringBootApplication , 他由几个注解组成 : ● SpringBootConfiguration: 组合了- Configuration注解,实现配置文件的功能; ● EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自…

鸿蒙OS开发实例:【Web网页】

背景 HarmonyOS平台通过Web控件可支持网页加载展示,Web在中是作为专项参考的。 本篇文章将从Android和iOS平台研发角度出发来实践学习API功能 说明 整个示例是以HarmonyOS开发文档网址作为加载目标页面布局增加了三个按钮“后退”,“前进”&#xff…

StableDiffusion Web UI开启FP8,极大节约显存

升级了Pytorch后,StableDiffusion最新版本就可以有使用FP8的基础了,因此把秋叶的LINUX包也升级到了最新的版本。 升级Pytorch参考我的升级记录: ComfyUI SDWebUI升级pytorch随记-CSDN博客 然后下一步就是如何开启FP8了。与ComfyUI不同&…

内容营销新手指南:Kompas.ai的智能起步策略

内容营销是当今企业获取客户、建立品牌认知和忠诚度的关键手段。然而,对于刚刚踏入这一领域的新手来说,内容营销的世界可能会显得既广阔又复杂。从内容创作到发布,再到分析和优化,每一步都充满了挑战。本文旨在为内容营销新手提供…

PMP怎么免试申请CSPM啊?

CSPM证书现在还在红利期,有 PMP 证书的不用参加考试就能申请增持 CSPM-2 证书,有 PgMP 证书可以免考增持 CSPM-3 证书,有 PMP 跟 PgMP 证书的不要错过哦~ 如果没有PMP证书跟 PgMP 证书的话,就只能参加考试了。 一、PMP证书免考增持…

Java | Leetcode Java题解之第3题无重复字符的最长子串

题目&#xff1a; 题解&#xff1a; class Solution {public int lengthOfLongestSubstring(String s) {// 哈希集合&#xff0c;记录每个字符是否出现过Set<Character> occ new HashSet<Character>();int n s.length();// 右指针&#xff0c;初始值为 -1&#…

sk-learn 特征数据预处理方式汇总

数据集及基本操作 1&#xff09;数据集的组成 数据集由特征(feature)与标签(label)构成。 特征是输入数据。 什么是特征&#xff08;Features&#xff09;: 机器学习中输入数据&#xff0c;被称为特征。通常特征不止1个&#xff0c;可以用 n 维向量表示n个特征。 Features 数…

vue3全局控制Element plus所有组件的文字大小

项目框架vue-右上角有控制全文的文字大小 实现&#xff1a; 只能控制element组件的文字及输入框等大小变化&#xff0c;如果是自行添加div,text, span之类的控制不了。 配置流程 APP.vue 使用element的provide&#xff0c;包含app <el-config-provider :locale"loca…

【JVM】关于JVM垃圾回收

文章目录 &#x1f334;死亡对象的判断算法&#x1f338;引用计数算法&#x1f338;可达性分析算法 &#x1f333;垃圾回收算法&#x1f338;标记-清除算法&#x1f338;复制算法&#x1f338;标记-整理算法&#x1f338;分代算法&#x1f338;哪些对象会进入新生代&#xff1f…

R使用netmeta程序包实现二分类数据的频率学网状meta分析

该研究检索了Cochrane对照试验中心注册&#xff0c;CINAHL&#xff0c;Embase&#xff0c;LILACS数据库&#xff0c;MEDLINE&#xff0c;MEDLINEIn-Process&#xff0c;PsycINFO&#xff0c;监管机构网站&#xff0c;以及从一开始就发布和未发表的双盲随机对照试验的国际注册20…

[HackMyVM]靶场Pipy

难度:easy kali:192.168.56.104 靶机:192.168.56.141 端口扫描 ┌──(root㉿kali2)-[~/Desktop] └─# nmap 192.168.56.141 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-31 20:10 CST Nmap scan report for 192.168.56.141 Host is up (0.00…

分布式文件系统引擎

文件系统基本概念 文件系统接口 文件系统&#xff1a; 一种把数据组织成文件和目录的存储方式&#xff0c;提供了基于文件的存取接口&#xff0c;并通过文件权限控制访问。 存储的基本单位 扇区&#xff1a; 磁盘的最小存储存储单位&#xff08;Sector&#xff09;。一般每个…

SOC内部集成网络MAC外设+ PHY网络芯片方案:PHY芯片基础知识

一. 简介 本文简单了解一下 "SOC内部集成网络MAC外设 PHY网络芯片方案" 这个网络硬件方案中涉及的 PHY网络芯片的基础知识。 二. PHY芯片基础知识 PHY 是 IEEE 802.3 规定的一个标准模块。 1. IEEE规定了PHY芯片的前 16个寄存器功能是一样的 前面说了&#xf…

ZooKeeper 的持久化机制

持久化的定义&#xff1a; 数据&#xff0c;存到磁盘或者文件当中。机器重启后&#xff0c;数据不会丢失。内存 -> 磁盘的映射&#xff0c;和序列化有些像。 ZooKeeper 的持久化&#xff1a; SnapShot 快照&#xff0c;记录内存中的全量数据TxnLog 增量事务日志&#xff…

Taro关于多个数组同时根据时间展示倒计时的代码组件

我们通常在做秒杀活动时&#xff0c;会有活动开始或者活动结束倒计时 而在活动列表中&#xff0c;需要做统一处理 以下为做的关于倒计时的组件~ primaryColor可忽略&#xff0c;是关于倒计时时间的主题色 startTime活动开始时间 endTime活动结束时间 refresh方法为其中一个倒计…