Philip Rathle 在官方博客中宣布 Neo4j 企业版彻底闭源的消息
Neo4j 是由 Neo4j, Inc 开发的图形数据库管理系统,是 NoSQL 的代表之一,它是一个嵌入式、基于磁盘的、支持完整事务的 Java 持久化引擎,它在图像中而不是表中存储数据。Neo4j 提供了大规模可扩展性,在一台机器上可以处理数十亿节点 / 关系 / 属性的图像,可以扩展到多台机器并行运行。根据 DB-Engines 排名,Neo4j 是目前最受欢迎的图数据库,并且在所有数据库中排名第 22 位,它可以说是目前使用最广、用户最多、商业化最好的图数据库。
今年 11 月初,Neo4j 宣布完成 E 轮 8000 万美元融资。至今,Neo4j 已经开源了众多图像技术栈,包括 Neo4j Community Edition (GPLv3)、openCypher (Apache 2.0) 、Native language drivers (Apache 2.0) 、Graph Algorithms (GPLv3) 、Neo4j APOC Library (Apache 2.0) 、Cypher for Apache Spark (Apache 2.0) 和 Cypher for Gremlin (Apache 2.0) 。
此次调整,意味着 Neo4j 选择了转向更为常见的 open core 许可模式。Neo4j 平台的核心 —— Neo4j 社区版,将继续在 GPLv3 许可下开源。Neo4j 企业版,原来也有大部分的源代码以 AGPLv3 许可开源(今年 5 月份有变更为 AGPLv3 + Commons Clause 双重许可),从 Neo4j 3.5 GA 版本开始,仅用于企业版的代码将不再开源。
哪些不受影响?
● Neo4j 社区版。Neo4j 社区版不会受到任何影响。绝大多数新功能将在两个版本同步上线,Neo4j 将继续投入社区版本的开发和维护。● 所有已经采用的软件。从 Neo4j.com、Docker Hub 等下载的 Neo4j 企业发行版不会发生任何变化。它们已获得商业许可证,此举不会影响到这一点。
● 创业公司、教育、开发人员、数据新闻和其他免费企业版许可。Neo4j 企业版经商业许可可用,并且在许多情况下是免费的。
● 贡献者。超过 99%的企业版代码由 Neo4j 员工和承包商撰写。Neo4j 已经联系了少数属于小于 1%比例的人,确认他们贡献的代码将在合理的时间内到期,并保证他们的贡献在旧版本中仍然可以免费获得。
● Neo4j 企业版旧版本。所有已经发布的 Neo4j 版本都将保留在 GitHub 上。
哪些将会受影响?
● Neo4j 发布的源代码。过去,Neo4j 将企业版代码与社区版代码一起发布到 GitHub。从今天开始,Neo4j 将只会发布 Neo4j 社区版源代码。● 依赖 Neo4j 的开源项目。Neo4j 已经联系了其所知的基于 Neo4j 企业版的少数开源项目,并协商以确保推进其项目正常进行。因为 AGPLv3 是一个相当严格的许可证,这样的项目数量很少(据 Neo4j 所知全球只有 5 个)。属于这一类别的开发者请与 Neo4j 联系(https://neo4j.com/blog/open-core-licensing-model-neo4j-enterprise-edition/support@neo4j.com)。
不想让云提供商白白获利Philip Rathle 在官博中解释道,Neo4j 此次选择闭源,一是为了解决企业和开源版本之间混肴不清的关系,避免出现多个版本在多个许可证下开源的情况,建立一个行业标准化的“open core”许可模式,另一个原因,同样也是为了避免云提供商只从开源中“薅羊毛”而不为这些项目作贡献,还影响开源项目的健康发展。
无独有偶,实际上 Neo4j 只是众多选择闭源的企业之一,此前,包括 MongoDB、Redis 在内的企业都陆续变更了一些开源项目的许可协议。
其中,开源数据库的开发商 MongoDB 在今年 10 月份推出了自己的许可证——一种新的服务器端公共许可证(SSPL),并表示这么做的原因就是被一些云提供商(特别是在亚洲)惹恼,这些企业正在采用其开源代码并向它们自己的用户打包提供其数据库的托管商业版本,但无需使用开源规则。MongoDB CEO Dev Ittycheria 还特别提到了阿里巴巴、腾讯和 Yandex 等云服务提供商,指责这些公司简直就是在考验 Affero 通用公共许可证(AGPL)的边界:一方面受益于别人的工作成果,另一方面却没有共享其代码。
同样地,数据库开发商 Redis Labs 也在今年 8 月份闭源了 RediSearch、Redis Graph、ReJSON、ReBloom、Redis-ML 等项目,当时引起了开源社区不小的骚动。Redis Labs 将该公司开发的 Redis 模块由 AGPL 改成了 Apache v2.0 和 Commons Clause(共用条款)相结合的许可证,后者会限制了 Redis 涵盖软件的销售。许可变更意味着自建的 Redis 模块(包括 RediSearch,Redis Graph,ReJSON,ReBloom 和 Redis-ML)不再是开源软件,相反,他们将变成“源码可用”。 实际上,新许可证限制了云供应商向客户提供这些 Redis 模块的能力。对此,Redis Labs 的联合创始人兼 CTO Yiftach Shoolman 在博文中给出的变更许可证的理由,同样是谴责云提供商得益于开源软件,却没有给予开源社区任何回报。
闭源真的能解决问题吗?然而,和大多数尝试闭源的企业一样,Redis Labs 变更许可证的做法并没有获得开源社区的赞同,因为正如开源软件开发人员 Drew DeVault 所说,Redis Labs 的 Commons Clause 并没有给出支持开源软件的解决方案,而只是把开源软件变成了某个公司的专有软件框架而已,这是另一种形式的垄断,并不符合开源精神。
开源项目组织(OSI)的副总裁 VM Brasseur、总裁 Simon Phipps 也言辞激烈地炮轰 Commons Clause,认为这个变化相当于“废除了软件自由”,然云服务商给开源带来挑战,但是一些公司闭源和更改许可证的做法,实际上是“以其人之道还致其身”,违背了开源许可证消除所有垄断,让用户可以全面控制软件的初衷。
面对质疑,Commons Clause 开发者兼 FOSSA 创始人 Kevin Wang 回应道:“起草 Commons Clause 是为了抵御一些不良行为。如那些使用源代码,却不对开源代码维护做出补偿的公司。”
Google 软件工程总监 Daniel Berlin 反驳道:“这不是不良行为。倒是这种协议误解了开源经济模式,它只是想从中为己牟利。”
关于开源和闭源的后果和影响,开源社区和利益相关公司各执其理,各自有各自的考虑,你的看法是什么?欢迎在评论区讨论~