是什么让一些开源更新如此困难? – 帮助网络安全

是什么让一些开源更新如此困难? – 帮助网络安全


许多组织都接受开源软件,因为他们认为它是专有开发的更便宜的替代方案。然而,维护它仍然需要工程工作,根据谷歌的案例研究,“维护一个开源软件包的副本(在谷歌)需要多少钱?”

研究表明,开源软件包内部版本的大多数更新应该花费四个小时或更短的工程时间。要求更高的更新可能需要数天或数月的时间,本地更改、依赖项和修补受影响的软件都会增加工作量。

Google 跟踪了 2024 年 4 月至 12 月期间 54 个软件包更新所涉及的工程工作。它还对员工进行了调查,了解导致更新时间更长的因素。

局部变化会产生重复性工作

在具有适用补丁检测结果的 47 个软件包中,那些带有公司特定补丁的软件包的平均更新尝试次数是没有补丁的软件包的三倍。两组的平均努力程度相似。员工认为补丁和订购是额外工作的主要原因。

开源维护成本

根据您的经验,OSS 软件包或升级过程的哪些功能使其花费的时间比平均时间长? (来源:谷歌)

当公司更改开源包的版本时,工程师在采用新版本时必须考虑这些更改。也许他们应该调整补丁并修复兼容性问题。

更多的外部依赖和上游贡献者与更大的创新努力相关。项目原始存储库中的活动显示了与工作的相关性。以前的更新和版本安装的时间以及内部使用的级别与更新的复杂性没有表现出任何一致的关系。

修复导致更新时间较长

平均总工作时间为 2.2 小时,而平均值为 13.9 小时。一次更新大约花费了 400 小时。

“对于需要超过 2 天的更新,大部分时间都花在调试上,”Google 开源项目的 Sofia Vargas 说道。

这项工作包括解决下游依赖性和中断修复。更新可能会影响依赖该软件包的应用程序和其他组件,并且可能需要在更新完成之前进行修复。

在 54 次更新中的 52 次中,工程师非常熟悉编程语言,但完全不熟悉该软件包及其在 Google 内部的使用方式。平均花费不到一个小时就可以学到足够的知识来开始。

谷歌的设置限制了更广泛的发现

观察到的性能在收集期间不到 Google 软件包更新的 1%。根据内部业务优先级选择更新,并用 Go 编写了 52 个包。

Google 通常在其内部存储库中维护每个包含的软件包的版本。其工具和流程会影响维护工作,包括修复受影响软件所需的维护工作。

该研究没有具体说明工程师可以使用哪些工具或评估单个工具的影响,包括生成式人工智能。较旧的和存档的软件包覆盖范围有限。

必读:

订阅 Help Net Security 的无广告每月通讯,了解重要开源网络安全工具的最新动态。在这里订阅!



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *