图片

作为曾活跃于开源一线的数据库 ClickHouse,是最好的开源数据库之一。它在 2016 年基于宽松式的 Apache 2.0 许可证发布,目前 GitHub 上的 Stars 数已过 3万,拥有数百年代码贡献者、丰富的生态系统以及数千家企业在生产中使用 ClickHouse,这些足以表明 ClickHouse 在开源上取得了巨大的成功。

2021 年,ClickHouse 为了走商业路线而成立了公司:ClickHouse Inc.。两年后的今天,有迹象表明 ClickHouse 正在远离自己的起点:开源,一些重要的新功能仅在 ClickHouse 云中可用。这不禁让我们对 ClickHouse 未来的发展充满了疑虑。

图片

关闭开源?

ClickHouse 云服务于 2022 年 9 月启动,从那时起,我们就发现 ClickHouse Inc. 开始仅在私有版本中提供某些功能。很长一段时间以来,两个数据库引擎之间的差别微乎其微,对开源的使用影响不大。

但最近宣布的 SharedMergeTree 和轻量级更新(仅在 ClickHouse 云中可用)表明这种策略可能正在发生变化。如今,很明显开源版本将不再提供重要功能。

社区成员询问了 ClickHouse 团队未来的发展计划。ClickHouse Inc. 首席技术官 Alexey Milovidov 回应道:

“只对 ClickHouse 云进行少量、有限的修改是没有问题的,但仅限于那些不会影响到自托管服务的运维、且对云服务非常重要且独特的特性。”

不幸的是,这个说法无法自圆其说。当前的闭源功能不仅包括大规模云操作所必需的功能(例如新的 SharedMergeTree 存储引擎可以实现存储与计算真正分离),而且还包括任何 ClickHouse 用户都会使用的通用功能,例如轻量级 UPDATE,无论是在云中还是本地,或者是基于 S3 角色的访问,这些都是公共云的关键安全功能。

此外,开源 ClickHouse 中当前的对象存储实现看起来被忽视了。2023 年的路线图中计划了重大改进,其中一些改进(例如共享元数据)也是 2022 年甚至是更早期路线图的一部分,因此社区希望 ClickHouse 能够提供这些改进。现在很明显,这些改进成为了 SharedMergeTree 的一部分,是在 ClickHouse 的内部分支中实现的,而且开源中根本不会提供。社区对此十分失望,他们盼望这些功能已经好几年了。

图片

如今 ClickHouse 是开放核心吗?

开放核心是拥有一系列高级功能的开源项目的统称。它是开源项目商业化的几种模式之一,受到越来越多寻求高投资回报的软件企业的关注。这也意味着 ClickHouse 开源社区的结构性变化。

图片

图源:https://www.linux.com/news/how-make-money-open-source-platforms/

多年来,ClickHouse 遵循的是真正的开源模式,而社区是主要的开发驱动力。社区帮忙定义路线图、提交新功能或功能请求、开发生态系统并开展新业务。核心开发团队开发战略功能,并充当主事人和管家,努力确保社区的可持续发展。社区越活跃,成功的应用程序就越多,项目就越受欢迎。这是一个正反馈循环。

在完全开放核心的项目中,情况恰恰相反。项目所有者的业务和产品是主要驱动力。核心开发团队专注于产品开发。就其存在而言,开源社区被视为潜在客户来源。人们可以使用开源版本开发应用程序,但如果想生产中大规模运行,则必须切换到闭源产品。

如今,我们看到 ClickHouse 正在向后一种模型转变。有效地使用对象存储对于大数据分析至关重要,但开源中并未完整地提供该功能。路线图中的功能只有与闭源云相关的功能成功实施了,其他都被抛弃了。

图片

接下来的走向

ClickHouse 是一个很棒的数据库,其价值已被多次证明。ClickHouse 可以在任何地方运行,从边缘设备到大型服务器,而且效果极其出色。ClickHouse 的成功主要源自其极致的性能、灵活性和便携性。如果没有多年来不断发展的优秀开源社区,一切就不可能实现,这要归功于 Apache 2.0 许可和对用户的关注。

不幸的是,转向开放核心模式破坏了 ClickHouse 的几个成功因素。关注点转移到产品后,核心团队就无法在保持相同水平的社区支持。焦点聚集到 ClickHouse 云功能,则忽略了希望在其他地方使用 ClickHouse 的用户的需求。这些因素以及其他因素损害了社区对 ClickHouse 的信任。社区必须进行相应的调整,才能继续过去几年的惊人增长。

首先,开源路线图和 ClickHouse 云路线图应该分开。用户需要知道开源中将提供哪些功能以及何时提供。

其次,社区必须挺身而出推动战略功能的开发。最近,我们提交了一份关于对象存储支持改进的 RFC。这份提议基于其他开源用户的大量反馈,是整个社区的共同努力。我们希望这项改进能够实现,并合并到上游,即便功能上与 ClickHouse 有所重叠。

第三,ClickHouse 团队必须赋予社区贡献者更多权力。ClickHouse 团队现已成为审查和合并拉取请求的瓶颈,我们明白目前他们的注意力都集中在产品上。

我们一直梦想着 ClickHouse 最终能够成为一个独立治理的基金会。这会让很多用户感到高兴。也许我们真的是在做梦,是吗?

图片

网友评论:ClickHouse 还有其它办法赚钱吗?

评论1:这篇文章的作者创办了 Altinity,该公司的主要产品就是提供托管的 ClickHouse 服务。但 ClickHouse 的前 10 名贡献者似乎都是 ClickHouse 的员工。从 Github 的数据来看,Altinity 的贡献非常少。如果说 ClickHouse 公司把 40% 的钱都花在了产品开发上,而包括 Altinity 在内的其他公司只在产品开发上投入了 5%,却在市场营销上花了 80% 的钱,那么他们当然能得到更多客户。但这并不是可持续的做法。怎么解决?ClickHouse 除了不让别人用企业级功能之外,还有别的办法吗?

评论2:我就是 Altinity 的 CEO,也是这篇文章的作者。很高兴能回答这些疑问。如果你是 ClickHouse 的开源用户,你是想要最基本的对象存储功能,还是希望能够高效率地删除数据?

这个问题非常重要,跟谁提出这个问题没有关系。Kafka、Spark、PostgreSQL、Kubernetes 等项目都解决了这个问题,同时也给贡献者带来了良好的汇报。

p.s. 我们上个月在市场营销上仅投入了 7%。预算中的很大一部分都给了 ClickHouse 的开源贡献和生态系统项目了。

Loading

作者 amtbbsportal

发表回复