写点什么

采用开源工具:善意推定,但也要做好沟通

作者:Ben Linders

  • 2024-01-17
    北京
  • 本文字数:1485 字

    阅读完需:约 5 分钟

采用开源工具:善意推定,但也要做好沟通

按照 Hila Fish 的说法,开源项目的好处是支持快速创新,让我们可以灵活地定制和调整工具,而且代码是透明的,有利于增强安全性。其缺点是通过隐匿实现安全的策略就行不通了,开源很容易被滥用,并且当开源工具没有公司支持时,可能会导致可维护性降低。


在 DEV: Challenge Accepted 2023 大会上,Hila Fish 谈了从 DevOps 视角看开源项目。


Fish 说,由于开源项目的开放性,它们的创新速度往往比较快。DevOps 团队可以利用这个快速的创新周期,采用新技术和实践来改进他们的流程。Fish 提到了持续集成、持续交付(CI/CD)、容器化和基础设施即代码(IaC)等领域。在这些领域,开源工具和解决方案推动了 DevOps 的创新。


DevOps 的核心原则之一是能够根据组织的独特需求来定制流程和工具,Fish 解释道:


开源软件提供了定制和调整工具以适应特定工作流和需求所需的灵活性。她补充说,DevOps 团队可以修改、扩展和集成开源解决方案,从而创建一个最优的工具链。


开源项目强调透明,允许任何人审查源代码。Fish 说,这可以加强软件开发周期内的安全工作,因为团队有机会检查代码中的漏洞并进行必要的改进。开源项目的协作特性通常可以使其对安全性和其他各种问题做出快速响应,从而帮助 DevOps 团队保证环境的安全和稳定。


开源项目也有一些缺点。Fish 提到,“通过隐匿实现安全”的概念并不适用于开源工具。Fish 说,专有软件公司可以声称他们的代码比开源软件更安全,因为代码不公开,黑客很难利用其漏洞。


Fish 还提到,开源软件很容易被滥用:


最近有一些案例,比如“Colors”NPM 包和“FakerJS”被维护者破坏 / 删除,每个人都有自己的原因。我们要知道,当我们在自己的环境引入开源工具时,这种情况是有可能发生的(即使不是经常发生)。


Fish 说,很多开源工具并没有得到公司的支持。由于维护者是个人,所以他们可以决定停止维护这些项目:


如果我们集成这类项目,这意味着我们要么自己维护它,要么迁移到另一个维护良好的工具。


Fish 提到,对于开源,你需要“善意推定(assume good faith)”。如果你在生产环境中使用一个开源工具,它有一个 Bug,而你打开了一个问题来修复它,那么这个 Bug 的修复可能需要几个月甚至更长的时间,因为他们不欠我们任何东西。


是的,你可以打开代码并尝试自己修复它,但并不是所有人都有资源这样做,所以我们会依赖于项目维护者为我们修复它。


Fish 建议我们解释这个问题并说明其紧迫性。她说,这样人们可能会更快地提供帮助,因为大多数(如果不是全部的话)开源维护者所从事的就是协作和沟通,因为这是开源文化的本质。


Fish 建议,在集成开源工具(特别是生产环境)之前一定要进行研究,确保它在出现问题时能够得到良好的维护。


InfoQ 就如何使用开源工具采访了 Hila Fish。


InfoQ:您在选择开源项目时有什么标准吗?


Hila Fish:我会考虑八个关键指标:项目的受欢迎程度、活跃度、安全性、成熟度、文档、生态系统、易用性和路线图。每个关键度量标准都有一些子问题,你可以问自己这些问题并找出答案,这样你就可以逐个指标地评估项目的成熟度级别。


InfoQ:您是如何使用那些标准的?


Fish:举个例子,就拿活跃度这个指标来说,它可以帮助我们大致估计下,这个开源项目修复 Bug/ 发布特性需要多长时间。查看下提交速率是每天、每周,还是每月,看下问题数量、发布数量,这样你就可以很好地了解活跃度。


文档是选择开源项目的另一个重要指标。文档是项目的门户,要看下它是否内容丰富,涵盖了大多数方面,如如何集成、已知问题、功能说明等。有了文档,你在决定是否采用该工具时就更有依据。


原文链接:

https://www.infoq.com/news/2023/12/upsides-downsides-open-source/

2024-01-17 08:005497

评论 1 条评论

发布
用户头像
如何理解隐匿?

2024-01-17 10:22 · 北京
回复
没有更多了
发现更多内容

TinyVue 智能组件库:基于 MCP 协议,实现 AI 代替人操作 Web 组件

华为云开发者联盟

在苹果电脑上运行Windows软件的三种方法

阿拉灯神丁

Mac电脑运行win CrossOver Mac下载 Mac电脑软件 虚拟机安装

探索 Vue.js 组件的最新特性

电子尖叫食人鱼

vue.js 前端

Folder Tidy for mac(Mac桌面文件整理工具)

晨光熹微

平衡之道:企业采用低代码加速数字化转型的风险与规避策略

量贩潮汐·WholesaleTide

PO设计模式全攻略,在 UI 自动化中的实践总结(以企业微信为例)

测试人

软件测试

一个static关键字引发的线上故障:深度剖析静态变量与配置热更新的陷阱

不在线第一只蜗牛

Java

佰工钢铁与用友战略合作升级,共建“佰智AI” 大模型

用友BIP

AI搜索 MCP最佳实践

阿里云大数据AI技术

人工智能 数据库 大数据分析 向量检索服务 AI搜索

Folder Tidy for mac(Mac桌面文件整理工具)

Geek贝

Mac软件

明天北京见!时序数据库技术创新大会完整参会指南请查收

Apache IoTDB

近700名开发者齐聚HDD赋能交流会,以代码共建共享鸿蒙新世界

最新动态

CAD如何在动态块编辑中显示不可见的图形

极客天地

Altair HyperWorks帮助文件的打开和界面介绍教程

智造软件

altair Hypermesh hyperworks

商品中心—商品消息处理系统的技术文档

量贩潮汐·WholesaleTide

架构

飞算科技自研 Java AI,让传统开发彻底 “失宠”

飞算JavaAI开发助手

1 天精通开发不再是梦

飞算JavaAI开发助手

使用jenkins进行流水线编译

天翼云开发者社区

数据库、

ES集群迁移方案总结

天翼云开发者社区

数据迁移

大北农集团与用友再度携手,共绘智慧农业未来

用友BIP

【JeecgBoot AIGC】打造智能AI应用

JEECG低代码

AI大模型 AI应用 AIGC JeecgBoot

“鞍云智鼎”AI大模型,鞍钢“智”胜转型的破题密钥

用友BIP

CAD怎么更改块内对象的图层

极客天地

30 秒锁定黑客攻击:SLS SQL 如何从海量乱序日志中“揪”出攻击源

阿里巴巴云原生

阿里云 云原生 日志服务

Web前端入门:JavaScript 性能优化之事件委托(事件代理)原理

不在线第一只蜗牛

Java 前端

【HarmonyOS】应用开发拖拽功能详解

GeorgeGcs

Flink 任务类加载泄漏问题分析

Joseph295

AI时代,我们要如何学习?

田威AI

Splunk Enterprise for Mac(可视化数据分析收集软件)

Geek贝

【万氏文化古迹】福建泉州历史文化村浔美(精校版)

timeRATE

采用开源工具:善意推定,但也要做好沟通_开源_InfoQ精选文章