2月5-7日QCon全球软件开发大会携手100+位大咖讲师与你相约北京,完整日程已上线>> 了解详情
写点什么

Kafka 团队修改 KSQL 开源许可,怒怼云厂商

  • 2018-12-15
  • 本文字数:3575 字

    阅读完需:约 12 分钟

Kafka团队修改KSQL开源许可,怒怼云厂商

AI 前线导读:


今天,Confluent 公司(为 Apache Kafka 开源软件提供商业化服务支持的初创公司,由 Kafka 的几位创立者离开 LinkedIn 后成立)联合创始人兼 CEO Jay Kreps 在 Confluent 官方博客发文表示:Confluent 平台部分开源组件正式变更开源许可协议,从 Apache 2.0 切换到 Confluent 社区许可。这个新的许可允许免费下载、修改和重新发行代码(类似于 Apache 2.0),但不允许将这些软件作为 SaaS 产品提供给用户。去年刚推出并引发关注的流数据SQL引擎KSQL将受到新许可的影响,但 Kafka 本身不受影响。


上个月,我们刚刚报道过最受欢迎图数据库Neo4j宣布企业版彻底闭源的消息,其中一个原因就是想避免云提供商只从开源中“薅羊毛”而不为这些项目作贡献。这一次 Confluent 变更开源许可协议,有人认为是开源和云对抗的升级,也有人认为这意味着开源社区的觉醒,你怎么看?


更多干货内容请关注微信公众号“AI 前线”(ID:ai-front)


这不是第一例知名开源软件变更开源许可的事件。就在上个月,我们刚报道过知名图数据库Neo4j企业版彻底闭源的消息,而在更早之前,包括 MongoDB、Redis 在内的企业都陆续变更了一些开源项目的许可协议。


正如我们在之前的报道《开源危机:云计算厂商成为开源吸血鬼?》中所说:


处于巅峰的开源软件现在正面临着潜在的危机。

毫无疑问,开源软件的概念已经彻底改变了软件世界。在软件世界接受这种新的格局之前,它们花了数十亿美元与这个想法斗争了好多年。但是,现在有不少人开始怀疑开源软件的本质——几乎所有人都可以使用开源软件,并将它们用于任何目的——这种想法导致开源软件开发者在分布式云计算服务时代出了大问题。


在一些开源软件开发者眼中,这个大问题就是,云计算提供商从开源开发者的工作中受益,尤其是那些颇为成功的开源软件,但他们却没有为这些工作支付一分钱。Redis Labs 首席执行官 Ofer Bengal 更是直言不讳:“我想直率地说:多年来,我们就像个傻子一样,他们拿着我们开发的东西大赚了一笔”。


开源社区和云计算提供商的矛盾有愈演愈烈的趋势。Kafka 无疑是目前全球最受欢迎、应用最广泛的消息系统,而现在,为 Kafka 提供商业化服务的 Confluent 也站出来表明了自己的态度。


AI 前线将 Jay Kreps 发表的博文翻译整理如下:


我们正在将 Confluent 平台的一些组件的许可从 Apache 2.0 改为 Confluent 社区许可。这个新的许可允许你免费下载、修改和重新发行代码(类似于 Apache 2.0),但不允许你将这些软件作为 SaaS 产品提供给用户。


例如,你可以将 KSQL 作为产品或服务的一部分,无论这些产品是作为软件发行还是作为 SaaS 服务提供给用户,但你不能用它创建类似“KSQL 即服务”这样的东西。我们的开发仍然是开放的,并继续接受拉取请求和功能建议。对于那些非商业云提供商用户,即我们的 99.9999%用户,新许可对他们来说并没有实质上的限制,同时我们会继续在开发上大量投入。


但新许可并没有针对 Kafka,Kafka 是 Apache 软件基金会的一部分,继续使用 Apache 2.0 许可。新许可只会影响到由 Confluent 维护的开源组件。



为什么要修改许可?

我们认为这是很有必要迈出的一步。一方面,我们需要大量投入才能开发出这些免费发行的代码,另一方面,我们需要保持业务的健康才能为这项开发提供足够的投入资金。接下来我会解释为什么这两件事都很重要。


首先,这种投资是否有必要?对于很多简单的开源项目来说,我认为不是必需的。GitHub 上有成千上万的库不需要太多投资,它们只需要一些志愿者贡献者就可以了。但分布式数据系统不一样,构建一个成功的分布式数据平台是非常困难的。


你不一定要相信我说的话,但事实胜于雄辩。2009——2010 年间出现了数十个 NoSQL 数据库。有些是作为附带项目创建的,有些来自大型网络公司的内部基础设施,有些是作为商业产品创建的。而我认为最明显的是,迄今为止能够继续保持竞争力的系统是那些能够建立稳定的商业实体来维持其开发的系统。那些做到这一点项目(MongoDB、ElasticSearch、Cassandra、Hadoop)都继续蓬勃发展,并成为现代技术栈的一部分。那些做不到的项目(Voldemort、Dynomite、CouchDB,等等)尽管早期也很受欢迎,但大都被淘汰了。它们可能仍然存在,但很可能你从未听说过它们。


造成这种差异的原因似乎很明显,我曾经在 LinkedIn 等公司、作为志愿者以及作为 Confluent 的一部分参与开源工作。我们最初在 LinkedIn 开发 Kafka 时,在很长一段时间内开发团队总共只有几个人。我利用圣诞假期写了原始代码库,因为公司没有为这个项目提供资源。这个小型的 Kafka 开发团队开发代码、运行服务,并最终说服了 LinkedIn 将项目转移到了 Apache 基金会。他们白天写编码,处理来自社区的问题和错误,晚上开会,并在深夜醒来处理偶尔会出现的运维问题。但随着社区的发展,新需求也随之增长:外部补丁的代码评审经常延迟,除 Java 以外的客户端库通常无法正常运行。


后来成立了 Confluent,我们在开发上的投入远远超过了 LinkedIn。很多纯粹出于热情在深夜工作的人现在可以得到报酬,并转成全职工作。Confluent 不仅可以为开发提供资金,还可以进行相当大规模的分布式测试,这些测试不仅可以保持代码库的稳定,同时扩展了来自不断增长的社区的贡献。虽然代码仍然不完美,但它的改进速度要快得多。


换句话说,我认为企业可以为开源项目的良性循环带来资金上的支持。


在一个数据系统被作为内部部署软件交付的世界中,我们已经知道如何建立可以推动这种良性循环的可持续发展公司。但这并不容易,而创办一家公司更不容易。我们发现,Apache 2.0 等开源许可可以成为维持健康业务的软件产品的主要组成部分。然而,随着云产品的兴起,它们将这些产品作为软件即服务提供给用户,让这个世界发生了巨大的变化。在这个新世界中,云提供商具有显著的优势:他们可以控制资源的定价,并且可以在他们的所有产品中集成自己的服务。


主要的云提供商(亚马逊、微软、阿里巴巴和谷歌)使用开源项目的方式都有所不同。其中一些公司与开源公司合作,这些公司提供系统的托管版本,并作为服务提供给用户。其他的公司则直接将开源代码放到他们的云产品中,并投入资金开发差异化的专有产品。我们不一定要从道德的角度来评判这种行为,他们也只是为了追求商业利益,并在软件许可允许的范围内行事。


作为一家公司,我们可以考虑构建更多的专有软件,并减少开源方面的投入。但我们认为,构建基础设施层的正确方法是使用开放代码。随着工作负载迁移到云端,我们需要一种机制来保持自由,同时也要实现投资周期,这就是我们改变许可的动因。


我们认为这是一个积极的变化,这样可以确保小型的开源社区不会成为科技巨头的免费开发资源,他们只会将资源投入到他们自己的差异化专有产品中。


这意味着什么?

我认为新的许可很简单,即使是没有法律知识的人也能读懂。在新许可中,我们试图尽可能地预先告知我们可以允许那些行为,不允许哪些行为,以及为什么。


不过,我担心会出现两种误读。首先,有人可能会认为 Confluent 陷入困境,所以需要这样做来赚钱。但事实并非如此,Confluent 的表现其实非常出色,我们认为这对我们的客户以及我们投资社区和开源的能力来说都是一件很棒的事情。我们改变许可的目的是确保我们能够保持这种增长,并继续在开放和免费产品上投入。


第二种误读:这是贪婪策略的一部分,一家贪婪的公司想借此赚到更多的钱。对于这个误读,我只能这么说:Confluent 并非仅仅是为了赚钱而创立的。我们对以事件流为中心的现代数据驱动型公司的架构有着远大的愿景,我们希望能够实现这一目标。Confluent 是由一群相信这个想法能够成为现实的人组成的,对于我们当中的很多人来说,我们在这个项目上的贡献都早于 Confluent 本身。我们认为,基于事件流进行重新架构是一个大胆的计划,还需要做很多工作。这一次修改许可让我们能够在未来几十年继续开展这项工作,并为实现这一目标的软件、社区和实践做出贡献。


当然,这些并不意味着我们不是商业实体,或者不会专注于我们正在建立的业务。如果我们能够成功,流式平台将成为公司架构的核心,与关系数据库一样,我们将成为重要的、有价值的和具有战略性的数据平台。我们认为这代表了一种巨大的范式转变,并将成为伟大的业务的基础。


一些重要的问答

  • 这对 Apache Kafka 有何影响?


没有影响。Kafka 继续使用 Apache 2.0 许可。


  • 我可以下载、修改或重新发行代码吗?


可以。代码仍然在 GitHub 上。


  • 我可以将代码嵌入到我的软件中吗?


可以。


  • 我可以使用代码构建 SaaS 产品吗?


可以,大部分情况下是可以的。如果你正在构建 SaaS 产品,可以使用 Confluent 社区软件。唯一的限制是不能将它们作为与我们的托管产品相竞争的托管服务。例如,你不能将 KSQL 本身作为 SaaS 产品提供给用户。


英文原文:


https://www.confluent.io/blog/license-changes-confluent-platform?from=timeline&isappinstalled=0


2018-12-15 13:494737
用户头像

发布了 321 篇内容, 共 125.0 次阅读, 收获喜欢 134 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

不只是负载均衡,活字格智能集群的架构与搭建方案

葡萄城技术团队

动态路由协议

初学者

协议 路由 11月月更

华为阅读年度会员4折,万元好礼抢先看

叶落便知秋

【网易云信】网易云信 toB 质量保障体系实践

网易智企

质量保障 PaaS平台

“工程化”对于大型数据平台而言,意味着什么?新一届StartDT Hackathon来了

奇点云

数据平台 奇点云

2022最全Java面试八股文,已经帮助512人进入大厂(备战明年春招必看)

程序知音

Java java面试 java架构 后端技术 Java面试八股文

最佳实践|用腾讯云AI图像能力实现AI作画

牵着蜗牛去散步

腾讯云 腾讯 AI

Karmada大规模测试报告发布:突破100倍集群规模

华为云开发者联盟

云计算 云原生 华为云 企业号十月 PK 榜

快速实现无人车远程控制开发——实践类

阿里云AIoT

阿里云 物联网 远程控制

管控内部威胁,数据如何安全使用?

极盾科技

数据安全

动态路由协议一

初学者

协议 路由 11月月更

【kafka思考】最小成本的扩缩容副本设计方案

石臻臻的杂货铺

kafka 11月月更

MSE 结合 Dragonwell,让 Java Agent 更好用

阿里巴巴云原生

阿里云 微服务 云原生

云原生时代数据库技术趋势与场景选型

OceanBase 数据库

深圳区块链DAPP程序开发未来发展简介

W13902449729

dapp开发

Hexo框架+Github 搭建免费静态博客教程(一)

程序员余白

Hexo Github' 博客搭建 11月月更

区块链DAPP开发成本差别如此之大?深圳区块链公司告诉你

W13902449729

dapp dapp开发 区块链开发

无脚本自动化测试

FunTester

RocketMQ 在同程旅行的落地实践

Apache RocketMQ

消息队列 Apache RocketMQ

什么是入侵检测系统?有哪些分类?

wljslmz

网络安全 11月月更 入侵检测 IDS

大数据生态中的 RocketMQ 5.0

Apache RocketMQ

消息队列 Apache RocketMQ

探究多线程和异步

C++后台开发

多线程 后端开发 异步 linux开发 C++开发

Java面试题解析:如何使用ReentrantLock的条件变量,让多个线程顺序执行?

千锋IT教育

钉钉全栈化实践总结-前端篇

阿里技术

前端 钉钉 全栈

5款宝藏办公软件,高质量打工人必备!

淋雨

OCR 办公软件 IDM

网易云信 toB 质量保障体系实践

网易云信

质量保障 PaaS平台

记一次多个Java Agent同时使用的类增强冲突问题及分析

华为云开发者联盟

开发 华为云 企业号十月 PK 榜

复杂A/B实验如何设计?火山引擎DataTester帮你落地!

字节跳动数据平台

大数据 数据 火山引擎 A/B测试

大咖分享 | 如何构建 Alluxio 审计日志分析系统

Alluxio

分布式 Alluxio 大数据 开源 数据编排 审计日志

Hexo+Github搭建个人博客教程(二)

程序员余白

Hexo 博客搭建 11月月更

鱼传科技:函数计算,只要用上就会觉得香

阿里巴巴云原生

阿里云 云原生 函数计算

Kafka团队修改KSQL开源许可,怒怼云厂商_开源_Jay Kreps_InfoQ精选文章