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

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

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

相关文章

后端开发框架Spring Boot快速入门

写在前面 推荐将本文与Spring Boot 相关知识和工具类一文结合起来看,本文为主,上面那篇文章为辅,一起食用,以达到最佳效果,当然,大佬随意。 IDEA创建Spring Boot工程 关于Spring Boot框架项目&#xff0…

第二节课《轻松玩转书生·浦语大模型趣味 Demo》

比较匆忙,假期前仿照第一期课程的内容好像被清空了,重新搭建一次。 https://github.com/InternLM/Tutorial/blob/camp2/helloworld/hello_world.md 按照那老师写好的,一步步复制就好了 浦语灵笔2的大概率是会超出显存,先不测试了…

MySQL-排序与分页

1. 排序 如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。 SELECT * FROM employees;1.1 基本使用 1)使用 ORDER BY 对查询到的数据进行排序操作。 升序:ASC(ascend)降序:DESC (descend) 练习&am…

2024.4.4-[作业记录]-day09-CSS 布局模型(标准流模型、浮动模型)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.4-学习笔记1 CSS 布局模型1.1 标准流1.2 CSS 浮动1.3 去除塌陷 2…

【零基础学数据结构】顺序表实现书籍存储

目录 书籍存储的实现规划 ​编辑 前置准备: 书籍结构体: 书籍展示的初始化和文件加载 书籍展示的销毁和文件保存 书籍展示的容量检查 书籍展示的尾插实现 书籍展示的书籍增加 书籍展示的书籍打印 书籍删除展示数据 书籍展示修改数据 在指定位置之前…

SpamSieve mac垃圾邮件过滤器 直装激活版

SpamSieve通过强大的垃圾邮件过滤技术,帮助用户有效管理和消除不想要的电子邮件。它能与多种电子邮件客户端无缝集成,如Apple Mail、Microsoft Outlook、Airmail等。 软件下载:SpamSieve mac直装激活版下载 该软件利用先进的算法和机器学习技…

深度学习方法;乳腺癌分类

乳腺癌的类型很多,但大多数常见的是浸润性导管癌、导管原位癌和浸润性小叶癌。浸润性导管癌(IDC)是最常见的乳腺癌类型。这些都是恶性肿瘤的亚型。大约80%的乳腺癌是浸润性导管癌(IDC),它起源于乳腺的乳管。 浸润性是指癌症已经“侵袭”或扩散到周围的乳…

TR3 - Transformer算法详解

目录 文本输入处理词向量位置向量 编码器 EncoderSelf-Attention多头注意力机制残差连接 解码器 Decoder线性层与Softmax损失函数总结与心得体会 这周来看一下Transformer是怎么将文本转换成向量,然后又输入到模型处理并得到最终的输出的。 文本输入处理 词向量 …

【opencv】教程代码 —ml (主成分分析、支持向量机、非线性支持向量机)

1. introduction_to_pca.cpp 主成分分析 /*** file introduction_to_pca.cpp* brief 这个程序演示了如何使用OpenCV PCA 提取物体的方向* author OpenCV团队*/// 包含OpenCV函数库所需要的头文件 #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp&q…

[VulnHub靶机渗透] pWnOS 2.0

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

LeetCode刷题实战1:两数之和

从今天开始加入刷题大军,把算法题刷爆,我们直接进入主题。 题目内容 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应…

160 Linux C++ 通讯架构实战14,epoll 反应堆模型

到这里,我们需要整理一下之前学习的epoll模型,并根据之前的epoll模型,提出弊端,进而整理epoll反应堆模型,进一步深刻理解,这是因为epoll实在是太重要了。 复习之前的epoll的整体流程以及思路。 参考之前写…

CSS - 你实现过0.5px的线吗

难度级别:中级及以上 提问概率:75% 我们知道在网页显示或是网页打印中,像素已经是最小单位了,但在很多时候,即便是最小的1像素,精度却不足以呈现所需的线条精度和细节。因此,为了在网页显示和网页打印中呈现更加细致的线条,为了在视觉…

Prometheus+grafana环境搭建Nginx(docker+二进制两种方式安装)(六)

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前五篇链接如下 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环…

自动驾驶涉及相关的技术

当科幻走进现实,当影视照进生活,无数次憧憬的自动驾驶,正在慢慢的梦想成真。小时候天马星空的想象,现在正悄无声息的改变着我们的生活。随着汽车电动化进程的加快,自动驾驶技术映入眼帘,很多人可能感觉遥不…

Jupyter Notebook安装使用(一)

1. 简介 Jupyter Notebook 是一个非常强大的工具,它允许用户创建和共享包含实时代码、方程式、可视化和叙事文本的文档。这种工具特别适合数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等多种应用领域。 2. 安装Jupyter Notebook 2.1. 使用 Anaconda…

Gson的用法

1. 导入依赖 <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version> </dependency> 2. 使用Gson进行解析 2.1 Gson解析普通对象 package com.jiang.partnetbackend.…

利用Idea实现Ajax登录(maven工程)

一、新建一个maven工程&#xff08;不会建的小伙伴可以参考Idea引入maven工程依赖(保姆级)-CSDN博客&#xff09;&#xff0c;工程目录如图 ​​​​​​​ js文件可以上up网盘提取 链接&#xff1a;https://pan.baidu.com/s/1yOFtiZBWGJY64fa2tM9CYg?pwd5555 提取码&…

Chatgpt掘金之旅—有爱AI商业实战篇|专业博客|(六)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、AI技术创业博客领域有哪些机会&#xff1f; 人工智能&#xff08;AI&#xff09;技术作为当今科技创新的前沿领域&#xff0c;为创业者提供了广阔的机会和挑战。随着AI技…

ABBYY FineReader15免费电脑OCR图片文字识别软件

产品介绍&#xff1a;ABBYY FineReader 15 OCR图片文字识别软件 ABBYY FineReader 15是一款光学字符识别&#xff08;OCR&#xff09;软件&#xff0c;专门设计用于将扫描的文档、图像和照片中的文本转换成可编辑和可搜索的格式。这款软件利用先进的OCR技术&#xff0c;能够识别…