如何避免开源陷阱
原文:How to Avoid Open Source Traps 作者:CBR工作人员,编译:御坂弟弟
开源许可证的限制性有多大?二进制文件是否可以不需要订阅?有哪些插件可以使用?那些小小的文字中是否隐藏着陷阱?
显而易见的是,开源软件是当下开发和基础设施的默认选择。数据库专家 Percona 公司的首席执行官兼联合创始人 Peter Zaitsev 写道:"你会看到无论在编程语言、操作系统、现代数据库技术或整个云原生领域,开源解决方案都是领先的选择之一。
由于开源有这样的主导地位,我们经常会看到一些公司将他们的软件营销为 "开源",尽管它并没有提供真正开源软件所提供的所有(或任何)好处。
在这篇文章中,我们看看一些常见的陷阱,并提供如何避免这些陷阱的建议。
什么是开源软件
很多人并没有意识到 "开源 "这个词是没有商标的,所以理论上任何公司都可以用这个词来描述任何一种软件。唯一的后遗症是有可能受到媒体和用户的反对,但其一般不会采取法律行动。
如果你关注开源(和自由软件)社区,就会知道有三个不同的组织提供了定义。
- Open Source Software (OSI)
- Free Software (GNU)
- Debian Free Software Guidelines (Debian)
虽然每个组织都使用不同的术语 —— 自由与开源,在精神上略有不同,但对于我们的目的来说,它们是足够相似的。
一些企业领导希望在他们的公司中采用开源软件,并且会关注开源软件是否真的能达到他们的目的。一般来说,他们的目的是(出乎意料)降低成本、提高效率等。首先,他们应该问自己(或计划合作的供应商)以下问题:
- 许可证 —— 软件的许可证是否适合软件的预期用途?具体来说,当你计划在不同的,或专有的许可证下重新发布合并的作品时,CopyLeft 许可证可能不适合。
- 如果您停止商业关系,会发生什么? 如果您与支持或开发您的软件的供应商建立了商业关系,如果您不得不终止这种关系,会发生什么?您想问这个问题是为了避免在价格谈判中被 "挟持",同时也是因为您的供应商可能会因为业务变化或收购而停止支持您所选择的软件。
- 有哪些替代品存在?如果软件是真正的开源软件,你至少可以选择在内部继续开发和支持。不过在现实中,这对许多组织来说不切实际,所以有其他的替代方案更好,例如有多个供应商的丰富生态系统。
- 你能做出贡献吗? 如果你需要改进软件以更好地满足你的需求,例如硬件支持或特定的软件集成,你希望了解如何实现它。有些软件提供了很大的扩展可能性或贡献者计划,有些则没有。
开源陷阱
现在让我们看看 "开源 "可以用来描述不完全符合上述开源软件原则的软件的不同方式。
“开源兼容”软件(“Open Source Compatible” Software)
现在很多软件都说自己是 "开源兼容",但并没有宣称自己是开源的。例如,Amazon RDS Aurora 声称与 MySQL 或 PostgreSQL 兼容,但当然,它不是开源的。
当你听到与开源有关的 "兼容 "时,通常意味着从开源解决方案迁移到这种专有技术是很容易的,反之则很难。
当你看到供应商在云端部署的开源软件时,即使 "核心引擎 "与开源版本完全相同,没有任何变化,但周围的管理界面通常是专有的。这意味着,你的团队可能会在运营中开始强烈依赖它。
避免陷阱。 但同时也要知道,有很多优秀的开源兼容软件,它们可以提供比单独的开源软件更好的性能或可用性。
只要你明白这是专有软件,而且你对此无所谓,就没有问题。然而,如果你想利用这种 "兼容性",并确保你可以用完全开源的软件替代,你需要在应用程序中进行测试。
例如,如果你希望你的应用程序能够运行在 PostgreSQL 上,或者 Azure Database for PostgreSQL 上,除了测试 Amazon RDS Aurora 和 PostgreSQL 的 兼容性之外,你还需要测试功能、性能和管理能力。
开放核心(Open Core)
开放核心软件是指当产品有一个开源版本,通常称为 "社区版",同时也有一个具有附加功能的专有产品版本,通常称为 "企业版"。社区版或多或少弱于企业版,以确保企业版能够成功销售。
开放核心软件往往以开源软件的名义进行销售。例如,MySQL 自称是 "世界上最受欢迎的开源数据库",而不是 "世界上最受欢迎的开放核心数据库!"
企业版软件往往包括一些扩展和改进,根据你的情况,这些扩展和改进可能值得拥有。然而,"企业版 "软件类似于 "开源兼容 "软件。" 即,如果你的目标是避免软件锁定,你需要测试你是否真的实现了这一点。
避免陷阱:最简单的方法是避免企业版,如果可以的话,坚持使用社区版。
你应该探索第三方解决方案的生态系统,否则这些解决方案提供的功能只存在于企业版中。如果你面对的是流行的软件,替代品很可能存在。
以 MySQL 为例,Percona Server for MySQL 包括许多企业版功能的替代品,并且是 100% 免费和开源的。不过 Percona 并不是唯一一家提供替代品的公司。如果你正在寻找一个企业审计插件的替代品,你可以看看开源的 McAfee Audit Plugin for MySQL。即使你不能从开源软件中获得你所需要的所有功能,解耦和使用替代供应商往往可以降低你的成本,减少锁定。
源码可用(Source Available)
"源码可用" 是一类许可证,它允许你访问源代码,但与真正的开源软件相比有一些限制。近年来,许多开源软件厂商都选择了源码可用许可证,以保护他们的业务不受大型公有云的干扰。
MongoDB 可能是最著名的,他们将自己的许可证从 AGPL 改为服务器端公共许可证(SSPL)。这并不是公认的开源许可证。 此后,Elastic、Confluent(Kafka) 和 Redis 实验室也纷纷跟进,将其部分软件的许可证从开源改为源码可用。
值得注意的是,源码可用类许可证的范围非常广泛。它们中的一些相比开源许可证可能只少一点自由,也有一些可能只提供了审查源代码的权利。
更多情况下,"源码可用" 许可证的设计是为了限制竞争。这可能对开源厂商有利,但它增加了你被锁定的机会。
例如,如果你正在寻找 MySQL 或 PostgreSQL 的 DBaaS 部署,你有来自大大小小的供应商的很多选择。不过,如果你看看 MongoDB,MongoDB Atlas(MongoDB 提供 的DBaaS)几乎没有替代品。即使存在替代品,也需要云供应商与 MongoDB 公司有授权关系。这与微软 SQL Server 或 Oracle 在各种云上提供的方式并无二致。
除了云的限制外,"源码可用" 许可证可能会限制你选择你喜欢的供应商来帮助你操作或定制这些软件。
避免陷阱:正确设定期望值。”源码可用” 许可证是一种专有许可证,因此你需要仔细审查它,以避免陷入麻烦。
开源,最终(Open Source, Eventually)
"开源,最终" 是一类源代码可用许可证,它的属性是代码在一段时间后成为开放源代码。MariaDB 公司在其部分产品中使用的 BSL(Business Source License)最为著名。
供应商在 BSL 许可证下发布软件时,声称这是一个比开放核心更好的选择,因为随着时间的推移,它的功能会进入开放源码版本。但实际上,只有过时的功能才会开源。而且这通常是没有维护的,并且包含已知的安全漏洞,因此,并不适用于严肃的使用。
另一方面,使用开放核心模式,你通常会得到一套较小的功能,但这些功能往往是安全和维护良好的,因为其目的是吸引用户购买企业版。
避免陷阱。 与其他专有软件许可证一样,确保你完全理解你将要使用的东西。
只有源码 "开源"(Source Only “Open Source”)
因为 "开源 "在技术上适用于程序的源码,而不是二进制文件、支持文档,甚至是完整的构建脚本和环境配置,所以你在这里也会掉进一个陷阱。
在构建上的差异化在开源社区中是相当可以接受的 —— 事实上,受人尊敬的开源生态系统泰斗之一 —— RedHat,将认证构建的可用性和及时更新作为其订阅产品的核心,尽管源代码对每个人都是可用的。
避免陷阱:即使软件是开源的,也不要认为它对非客户来说很容易安装和维护。对于流行的软件,可能会有第三方构建和替代品。例如,CentOS 大多可以看作是 RedHat Linux 的替代构建,其二进制文件无需订阅即可使用。
结束语
我希望这篇文章能对你有所帮助,帮助你更好地理解使用开源软件可能带来的陷阱,以及理解软件是否真正的开源,或者只是在营销材料中使用 "开放 "或 "源代码 "。
虽然有一些陷阱需要避免,但接受开源作为企业默认的基础架构选择,将帮助你节省资金,并提供更平衡的供应商关系,减少或消除软件供应商锁定。
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
2020 年 Python 开发者调查:Gitlab CI 使用率超 Jenkins/Hudson
Python 官方发布了 2020 年 Python 开发者调查结果。这是官方年度 Python 开发者调查的第四次迭代,由 Python Software Foundation 和 JetBrains 共同开展。2020 年 10 月,来自近 200 个国家/地区的超过 28,000 名 Python 开发者和爱好者参与了调查,以揭示该语言及其周围生态系统的现状。 调查结果显示,Python 开发人员将简单和易用性作为使用该语言的主要原因,不过他们仍然希望获得静态类型和性能改进等功能。具体表现为,Python 的简单语法、语法糖和易学性以 37%的占比成为受访者最喜欢的特性;易于读写代码和高级语言(30%)则是受访者第二喜欢的特性。 未来,在 Python 开发者最希望该语言增加的特性中,静态类型和严格的类型提示是最被希望添加的特性,占 21% 的受访者;紧随其后的是性能改进,占 20%。排在第三位的是更好的并发性和并行性,占 15%。 以及一些其他的调查内容: Python 使用情况 85% 的受访者使用 Python 作为主要编程语言。 JavaScript 是开发者最喜欢与 P...
-
下一篇
挖矿为何狂抢显卡而非CPU?显卡缺货到底何时休
最近对于PC玩家来说,无疑是一段噩梦般的日子。想要买新电脑或者升级配置的朋友突然发现,零件买不全了!除去一直缺货的CPU,显卡近来更是难寻踪迹,新显卡即使找到了货源,价格也要比官方售价高个两三倍,老显卡的价格也比两年前不降反升,令人恍惚有种踏错世界线的感觉。 官方价5499元的RTX3080,已经被炒到了八九千乃至上万元 一些朋友在年前看到了新显卡发售的新闻,把旧显卡卖了持币待购,现在发现不但新显卡买不到,甚至连同型号的旧显卡也买不起了,显卡迟一点卖其实能多赚好几千,直教人拍断大腿。这魔幻的现象,到底是什么造成的?答案只有一个,那就是矿潮来了。 近来显卡价格高企、一卡难求,是因为数字货币的价格迅速飙升、用显卡挖矿俨然又成为了一门好生意。那么问题来了,为什么玩数字货币挖矿就必须用显卡而不是炒作CPU?显卡价格到底啥时候才会降下来?简单聊聊吧。 为什么挖矿要用显卡而不是CPU? 首先我们需要了解挖矿这个概念。以比特币、以太坊为代表的数字货币,使用的是区块链技术,计算机向区块链网络贡献算力,即可获得按照算力大小比例分配的数字货币,这一过程是去中心化、由算法保证的,通过贡献算力换取区块链算法生...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- MySQL数据库中FOR UPDATE的使用
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8

微信收款码
支付宝收款码