TimscaleDB在云上全力以赴,企业层现在免费

2020-09-25 00:26:52

今天,我们宣布对Timescale许可证进行更新,该许可证管理TimscaleDB的许多高级功能,包括本机压缩、多节点、连续聚合等。这一更新放松了限制,并为用户提供了更多的权利,加强了我们对社区的承诺。

值得注意的是,此更新增加了“维修权”、“改进权”,并完全取消了付费企业层和使用限制(从而确定我们所有的软件都将是免费的)。这些变化将适用于TimscaleDB 2.0,它支持用于多节点横向扩展的分布式超级表,定于下个月发布。

两年前,我们第一次宣布如何在云时代建立一个自给自足的开源企业,并且我们已经开始在称为Timescale License(TSL)的新的源代码许可下开发特性。

当时,TSL是一个激进的想法:一个源代码可用的许可证,本质上是开源的,但其中包含一个主要限制:阻止公司通过托管的数据库即服务来提供根据TSL授权的软件。我们增加了这个限制,它只适用于<;0.0001%的所有可能的TimscaleDB用户,以使我们能够在一个快速向云计算转移的世界中建立一个自给自足的业务。(重要的是,我们没有也从来没有重新许可我们的任何开源软件,这些软件仍然按照Apache2许可进行许可。)。

TSL,就像之前的Elastic License,和Confluent Community License(巧合地在同一时间推出)一样,都是我们所说的“云保护许可证”的例子。这些许可证试图保持开源精神,但也承认云已日益成为开源商业化的主导形式。因此,这些许可证保护了项目的主要创建者/维护者(他们通常贡献了99%的研发工作)在云中提供软件的权利。这种“云保护”使得像我们这样的开源企业能够在云时代变得自给自足。

然而,由于这些许可证没有得到开源倡议(OSI)的正式批准,许多人认为OSI是决定什么是官方“开源”,什么不是官方“开源”的仲裁者,所以这些许可证通常不被认为是“开源”(大写O)(尽管OSI今年有一些争议,所以这种情绪可能正在转变)。同时,许多开发者仍然称这些许可证为“开源”(小写o),因为它们体现了同样的开放、透明、协作的精神。

两年后,这个实验被证明是成功的,超出了我们的预期。时标社区今天已持续增长到超过500,000个活动数据库。TSL管理着我们的许多新的高级功能,包括本机压缩、多节点和连续聚合,这些功能的采用一直在顺利进行。公共云提供商一直不愿免费提供这些TSL功能(他们现在正在与他人讨论收入分享协议)。其他开放源码软件创业者已经就如何创建类似的许可证寻求建议。

事实上,这个实验进行得非常顺利,以至于今天,我们宣布对TSL进行更新,以加强我们对社区的承诺。此更新放松了限制,并为用户提供了扩展的权限,包括:

在这篇文章的其余部分,我们将解释为什么我们要做出这些改变,这对用户意味着什么,以及为什么我们认为这对整个开源行业是必要的。

TimscaleDB是领先的时序数据关系数据库,基于PostgreSQL设计,通过免费软件提供,或作为AWS、Azure和GCP上的完全托管服务提供。

与PostgreSQL、InfluxDB、Cassandra和MongoDB相比,TimscaleDB提供了巨大的规模(一台服务器上每秒数千亿行和数百万次插入)、94%以上的本机压缩、10-100倍的查询速度-所有这些都保持了PostgreSQL提供的所有可靠性、易用性、SQL界面和整体优势。

TimscaleDB最初于2017年4月推出,在短短3.5年内取得了长足的进步,目前已有数千万次下载量和50多万个活动数据库。目前,TimscaleDB开发人员社区包括AppDynamics、博世、思科、康卡斯特、DigitalOcean、富士通、IBM、Rackspace、施耐德电气、三星、西门子、优步、沃尔玛、华纳音乐等数以千计的组织。

TimeScale社区的发展清楚地表明,软件开发人员需要一个新的数据库来存储他们的时间序列数据,而且越来越多的人转向TimscaleDB。但是,即使采用了所有这些,如何才能建立可持续的业务,特别是考虑到一些公共云提供商的掠夺性行为?

不久前,开源商业模式还很简单:公司运行您的软件,当他们需要帮助或高级功能时,他们会为商业支持或企业功能付钱给您。今天的开源许可证就是在这个世界里写出来的。

但是世界已经改变了。如今,公司更愿意付钱让人来运行您的软件,从而消除了对付费支持的需要(并且使销售企业功能变得更加困难)。标准的开源许可证允许任何人将您的软件完全商业化,而无需进行任何软件开发。

换句话说,云的崛起切断了开源软件的主要商业模式。

输入新许可,如时间刻度许可、弹性许可、汇流社区许可等。这些License,我们称之为“云保护License”,试图保持开源精神,但保护项目的主要创建者和维护者在云中提供软件的权利。

这种“云保护”使得像我们这样的开源企业能够在云时代变得自给自足。

有些人可能会问,“为什么要创建一个新的许可证--为什么不直接通过在公平的竞争环境中提供最好的产品体验来与公共云竞争呢?”

问题是,竞争环境远远不公平。今天,公共云供应商(亚马逊、微软、谷歌)是价值万亿美元的公司-世界上最大的公司-并拥有因其规模而产生的无数优势,包括市场地位、定价权、深厚的资产负债表,以及(许多人甚至称其为)不公平的商业做法(来源:华尔街日报2020年4月、2020年9月的文章)。他们将大客户锁定在预付费、折扣、多年的企业范围协议中,并向初创企业提供10万美元的免费信贷。

然而,即使拥有数十万员工和数百亿美元的现金,公共云也没有开发TimscaleDB、Elastic Stack、融合平台和无数其他开源项目。这些都是由独立的团队建造的,这些团队致力于推进最先进的技术,并为世界各地的开发人员提供服务。

这是大卫和歌利亚的对决。起义军联盟对阵帝国。创业团队用新的、创新的技术挑战世界上最大的公司。云保护许可证促进了更多的创新,并使开源失败者能够与公共云巨头竞争。

自从我们推出尖沙咀支线以来,社会人士的反应非常踊跃。但多年来,社区也提供了非常有用的反馈-通过GitHub、Slake、Twitter、Hacker News、Reddit、Email等-我们已经将其纳入到最新的更新中。

总体而言,绝大多数人支持TSL的总体方向,了解到提供托管服务日益成为数据库和其他基础设施软件提供商的主要商业化方法:

“我认为我们在OSI开放源码许可问题上也是束手无策。Timscaledb许可证中的额外限制是,您不能将付费数据库作为服务产品运行,这几乎不会对任何人造成负面影响(AWS)。它通过提供一个可持续的商业模式来支持我们使用的开源产品的额外开发和支持,从而对我们所有人都产生了积极的影响。如果有的话,那就是双赢。我希望看到更多的开源和封闭源码公司考虑这种模式。(来源)。

但我们也听到了一些要求放开时间刻度许可证的一些条款的要求:

“我个人使用和支持开源的一个重要原因是,我不仅可以自由地检查(TSL提供的),而且还可以不必要求其他人并等待他们对我使用的软件进行任何需要的更改。有没有可能把TSL修改成也包括这种自由?“。(来源)。

“我不在乎我能不能看到源代码,如果我真的不能用它做任何事的话。如果我不能在生产中运行我的修改,它不会保护我免受供应商锁定,也不会给我维修权。“。(来源)。

我们听取了这些反馈,并研究了我们作为一家公司的发展方向,以及我们的方向如何与我们的许可相一致。因此,我们很高兴地宣布将取消TSL的一些限制(并在此过程中对其进行简化)。

听取我们的用户和一般开发人员社区的意见,我们很高兴地宣布对TimeScale许可证进行一些更改,这些更改放松了限制,并为用户提供了更多的权利,加强了我们对社区的承诺。

非常清楚的是:这些更改仅为用户在更多场景中如何使用和分发TimscaleDB提供了额外的权限;这些更改不会进一步限制任何权限。

我们增加的两项最大权利是“修理权”和“改善权”。

首先,用户现在有了一些人所说的TimscaleDB的“维修权”。如果他们遇到任何他们想要立即修复的问题或bug,他们可以在补丁可能向上游发布之前在本地查找、修复和部署补丁。

其次,用户现在可以向TimscaleDB添加可能适合自己需求的附加功能,并将修改后的版本用于内部使用,以构建SaaS服务,甚至在将代码发送给用户时使用。有人称之为“改善的权利”。以前,在部署到生产中之前,他们需要将此更改上游返回到TimscaleDB。这也意味着(正如Hacker News的读者所指出的),在上游提交之前,提议的增强功能不能在生产中运行和强化。

以前,我们出于好意加入了这些限制:我们希望激励开发人员在上游贡献错误修复和增强功能,以便每个人都能改进软件。

我们还担心用户运行修改后的版本可能带来的问题、不确定性和支持负担;我们花了大量时间在我们庞大而活跃的Slake社区中免费回答问题,该社区现在有近5,000名成员。

然而,在听取了社区的意见后,我们开始认识到,这些权利的好处大于坏处。

我们在TSL中还进行了另一个重大改变:完全取消了企业级。这意味着我们现在可以免费使用我们所有的软件,所有在Apache-2和TSL下获得许可的软件。

过去,开源企业一般依赖商业支持和企业级(称为“开放核心”)进行商业化。时间尺度也没什么不同。

但今年,我们越来越注重将托管云服务作为我们的主要商业化战略,销售企业版的TimscaleDB用于内部部署(客户自己的物理硬件或他们自己的云虚拟机),作为我们的次要商业化战略。

这种完全托管的云服务现在是行业领先的时间序列数据服务,运行在所有三大云上,并在超过75个地区可用。云业务的增长使我们能够使其成为我们业务的核心。

这简化了每个开源公司历史上都在努力解决的一个关键问题:我们应该从免费版本中“保留”我们的哪些功能,而将其保留在付费企业层中?

以前,我们会就新功能进行艰难的内部辩论:发布一些东西来支持我们的社区并推动采用吗?还是将其限制在企业层以推动收入?

今天,我们将全力以赴在云上下注,并从TimeScale许可证中删除任何付费企业功能的概念。

通过在云上“全力以赴”,我们的选择变得更简单:免费提供所有功能,这样我们就可以投资于我们的社区。然后,用户可以免费自我管理(包括使用我们的开源K8S舵图),也可以使用我们的托管云。

但这一简单的选择-以及我们在保持Timscale长期生存能力的同时“支持我们的社区”的能力-之所以存在,正是因为我们拥有TimeScale许可证,这限制了云供应商提供TSL软件的能力,除非他们首先与我们建立业务关系。

因此,带着这样的想法,今年夏天早些时候,我们将大部分现有的企业特性转移到了TimscaleDB的免费社区层。随着我们即将发布的TimscaleDB 2.0版本,我们将把最后的企业特性转移到免费的社区层。

我们最初的TimeScale许可证还允许我们对社区功能设置潜在的“使用限制”。我们的想法是,假设在未来某个时候,我们可能希望允许用户免费使用多节点TimscaleDB,比如最多4台服务器,但此后需要企业许可证。

这与不同级别计划下有多少SaaS服务消费类似。但是这些使用限制总是假设的:我们从来没有发布过有使用限制的TimscaleDB特性。在内部,我们从来没有真正喜欢过这样的想法,即用户的内部消费可能会“扩大”到不能再免费使用TimscaleDB的水平(即使基于大小的定价在企业中的数据库中相当常见)。

因此,今天,我们还将从TimeScale许可证中删除任何关于社区“使用限制”的概念。

然而,我们保留的是阻止其他公司在云中提供TimscaleDB-as-a-Service的主要限制。

同样,我们也不允许各方“派生和修改”数据库,并将此派生版本重新分发给其他人,这可能是试图规避许可限制的一种方式。

这种担忧并不是假设性的:例如,亚马逊试图通过发布其自己的命名有问题的“用于Elasticsearch的开放发行版”来分叉Elastic的代码和社区,该版本重新实现了Elastic的一些关键社区功能,并将其许可为Apache-2(同时将这些功能作为其托管Amazon Elasticsearch服务的一部分进行大量盈利)。

正如我们之前所说的,这一限制是像TSL这样的云保护许可证的核心,也是进一步创新的动力。

让我们回顾一下以前由时间刻度许可证授予的权限、新授予的、扩展的权限以及仍然不允许的权限:

注意:要理解这些变化,重要的是要理解“增值服务或产品”的概念,这是TimeScale许可证的关键部分(同样可以在Elastic License和Confluent Community License中找到)。

增值服务或产品的概念是在TimscaleDB之上构建有价值的东西,而不仅仅是将其“转售”为“数据库”或“数据库即服务”的一部分。(正式的法律定义可以在这里找到。)。

这种增值产品或服务当然可以是商业性的,也可以是专有的;TSL绝不是“非商业性”许可。许多公司使用TimscaleDB作为其服务的一部分来提供SaaS服务,或者分发嵌入TimscaleDB的商业产品。他们不能纯粹提供“TimscaleDB-as-a-Service”,这就是为什么像Amazon或Microsoft这样的云供应商不能也不能将TimscaleDB的TSL部分作为AWS RDS或Azure Postgres的一部分提供。

“增值服务或产品”:在TimscaleDB之上有价值的东西,而不仅仅是“转售”TimscaleDB作为“数据库”或“数据库即服务”的一部分。

修改TimscaleDB以进行内部开发和测试的权限,以及随后对时间刻度进行上游修改的权限。

即使不是增值产品的一部分,也有权分发未修改的源代码和二进制文件。

除非作为增值服务的一部分,否则无权将TimscaleDB用于外部使用。

如果您是TimscaleDB的当前或未来用户,这些更改意味着您拥有更多权限。但是,如果您希望提供TimscaleDB-as-a-service,您仍然受到限制,只能提供Apache-2版本。

总体而言,通过刷新时间刻度许可并专注于我们的云服务,我们可以通过发布我们最好的功能完全免费使用来继续投资于我们的社区。

现在,这些功能包括TimscaleDB 2.0中的分布式超级表,以实现更大的规模。多个月来,测试版用户已经在连续的日常使用中运行多节点TimscaleDB,其中包括一家财富50强公司每天吞噬超过10亿行的22台服务器的集群。当TimscaleDB 2.0发布时(很快!),我们会写更多关于它的文章。

现在,您可以在本地部署TimscaleDB,也可以在您自己的云帐户中部署TimscaleDB,在裸虚拟机上运行软件,或者使用我们的开源K8S舵图自动执行高可用性/故障切换和连续PITR备份。完全免费使用,现在甚至可以自由修改以供您自己使用或针对您在TimscaleDB上构建的服务或产品进行修改。

或者,如果您愿意,您可以让我们为您运行TimscaleDB,在75个以上地区的AWS、Azure或GCP上完全托管,并可以访问一流的支持团队。

如果您有任何问题、了解更多信息并与志同道合的开发人员见面,请加入我们超过5,000名成员的Slake社区--我们在所有渠道都很活跃,并在此为您提供帮助。