TDengine 分布式集群功能开源后,在 GitHub 全球趋势排行榜上,又是连续几天排名第一,引起很大的反响。大家都在好奇,这么核心的功能都开源了,公司怎么生存?现将去年 10 月我在公司内部的一篇博客分享出来,希望涛思数据的开源策略能给中国 2B 软件行业以及开源社区一点启发。
1:开源的目的
作为物联网大数据平台,TDengine 属于基础软件,可以划到数据库、大数据工具的范畴。对于用户而言,基础软件特别是数据库软件的迁移成本极高,因此对于新的基础软件,即使性能和功能都超强,其推广也有很大难度。原则上来讲,新产品的推广销售成本是市场成熟垄断产品的 5 倍以上,因此新产品的性价比要比市场现有产品好 5 倍以上,才可能对它产生冲击。
开源是一种很好的推广方式,最典型的成功案例是 Linux 和 MySQL。这两个产品在开源的初期,技术和产品上与专业的 Sun Solaris, Oracle 等产品没有可比性,但由于开源免费,受到开发者的欢迎,很多开发者也参与进去,因此形成了一定的用户群,而且用户群逐步扩大,最终成为主流产品。
集群开源后,在 GitHub 趋势榜上连续 5 天霸榜
另外一方面,基础软件必须面向全球市场,如果仅限于中国市场,难以做大。由于盗版,付费和服务的意识还未养成,中国市场基础软件的销售只占全球5% 都不到,我们不能无视海外巨大的市场。而且基础软件属于典型的技术产品,使用是没有国界地域之分的。同时,对于操作系统、数据库这些软件,只有全球前三名才可能生存。因此涛思数据从成立之日起,就决心瞄准全球市场。
而进军海外市场,市场推广更加困难,普通的开发者会对来自中国的基础软件有很多质疑和不信任。开源是增加信任和消除质疑的最好方法。同时,开源可以吸引全球开发者的关注,其中一部分还可以成为贡献者,是全球协作开发,吸引全球人才的最好方式。数据库领域,大家熟悉的开源软件 ClickHouse 是俄罗斯人开发的,Redis 是意大利人开发的,但现在都已经成为全球流行的软件。
随着 RedHat 被 IBM 以 340 亿美元收购,MongoDB, ElasticSearch 等成功上市,开源软件,特别是 Open Core 的模式,已经被证明是一成功的商业模式。还有一面,目前市场上流行的时序数据库都有开源社区版,如果我们没有,推广将更加困难。从这个角度来看,不开源是不可能的。
总之,我们开源是为了解决市场推广的问题,目的是快速获得市场份额,甚至市场的垄断地位,形成品牌。
TDengine 2.0 官网(www.taosdata.com)
2:License 的选择
首先要明确一点的是,开源并不意味代码可以随意使用。使用者必须接受 License 里的规定,否则就是违规。开源产品有很多 License, 流行的有 Apache, BSD, MIT, GPL 等等。我们选择的是 AGPL,这个 License 是 GPL 上的增强版。GPL 属于 dual license,如果要免费使用,使用者的代码也必须开源,否则需要付费。AGPL 是云计算的背景下出来的,有更强的限制。
我们采用 AGPL 的目的是防止云厂商用开源代码提供服务,独占利润,而不是强迫其他使用者开源他们的软件。因为云计算是趋势,市场占比越来越高,而且市场只会容纳几家云厂商。如果云厂商自己组织一支专业的技术支持队伍,那么涛思数据将失去盈利的一重要渠道。但我们乐意与云厂商合作,一起提供 TDengine 服务,共享利润。MongoDB 就是采用的 AGPL,一年前,开始使用自己的带有更强限制的开源协议,其目的是不容许云厂商免费使用。
还有一点需要明确的是,我们开源的协议是可以更改的,等我们有时间,我们将制定一个仅仅限制云厂商使用的开源协议,只是已经 release 的版本按照当时的开源协议执行即可。采用 AGPL 是我们目前这个阶段,最简单最合适的保护方式。
3:哪些需要开源?
开源有两种,一种是 100% 的开源,还有一种是部分开源。对于 100% 开源的,目前取得商业成功的只有 RedHat,而部分开源的则有很多家商业成功的公司。现在流行的是 Open Core, 就是将核心代码开源。
我们是一家要获得商业成功的公司,因此我们需要采取大家认同的商业模式 Open Core。那么对于 TDengine 而言,我们需要将真正有技术突破和核心的模块开源,包括:存储引擎、查询计算引擎、RPC 等等。如果这些核心模块不开源,难以说服开发者使用,因为他们有很多可替代的选择。
2019 年 7 月宣布开源的时候,从后续宣传、商业拓展的角度考虑,决定将集群闭源(注:集群功能刚于 2020 年 8 月 3 日开源)。但在美国期间,与 Steven 以及众多公司的交流来看,我们应该将其开源。原因有几点,1:我们的竞争对手 InfluxData, Promethus, TimeScale 的开源版都不提供集群功能,那我们提供的话,产品将有更大的竞争力;2:时序数据处理市场,还属于战国时代,产品的定义、市场格局还在不停的改变,还没到定局的一天,因此现在开源利大于弊;3:我们要在这个群龙混杂的时代脱颖而出,必须先人一步,敢做对手不敢做的事情。
原则上来讲,所有基本功能,特别是展现我们技术优势的模块都需要开源。
4:哪些无需开源?
哪些不需要开源呢?原则上是大客户才有需求的功能。对于大的企业客户,有不少需求,没有什么技术挑战,也不是核心模块,可以自己开发,但限于人力和时间成本,乐意采购。对于 TDengine 而言,有以下一些功能:
-
数据加密:数据文件加密保存
-
异地容灾:一个虚拟节点组可横跨几个机房
-
审计:查看 DBA 的各种操作记录
-
用户认证接口:支持 LDAP、Active Directory 等
-
多级存储:节省存储成本
-
多租户:一般只有大型企业或提供云服务的企业才有这个需求
-
系统监测:TDengine 自身的监测要纳入到企业整体的监测体系,减轻运维压力
-
图形化后台管理界面
原则上来讲,辅助性的功能不需要开源。
5:开源之后,销售什么?
开源卖的是辅助功能:最基础的核心功能确实能用,而且用的很好。但任何一家大规模的企业,作为 IT 负责人,一定要考虑数据的安全(包括容灾、备份、审计、加密、审计等等),考虑运营维护的复杂度(与现有 IT 监测系统能否集成,是否有专业管理工具),这些功能,他们自己可以在开源版基础上开发,但是开发维护的成本一定是比购买原厂的产品高。大型的互联网公司,比如谷歌, 阿里,腾讯等,他们因为数据规模巨大,他们会乐意组织团队在开源版本上开发,因此,可以断定,这些巨无霸互联网公司不会付费买我们产品。但我们依然需要鼓励他们采用,因为他们是标杆型客户,能起宣传作用。
开源卖的是保险和服务:一家大企业的 CIO/CTO 根本不会为公司一年节省几百万的费用,而让整个数据系统处于一个不可靠的状态。采用开源软件,确实好,但如果没有原厂支持,出了任何技术问题,让整个系统宕机几分钟、甚至一个小时,就更不用说一天,那损失是巨大的,甚至 IT 负责人都被撤职。没有人能保证软件不出问题,这个是所有 IT 人的共识。因此只要是一个专业有经验的 CIO/CTO,他一定会购买专业的产品和服务,至少出问题时能找人背锅。因此销售过程中,明确告诉对方,只要是免费客户,我们只能在 GitHub 或技术社区里提供服务,无法保证实时性。但对于付费客户,我们会有专人服务,会实时反应。客户使用过程中,即使没撞到 BUG,但怎么做最优配置、与其他系统更好的集成,包括技术培训、软件升级等,只有原厂厂商最清楚,这也是我们可以提供的服务。
6:开源后的销售策略
开源后,一般的客户使用开源版即可。但对于一些客户,需要使用我们闭源的功能,或者只是想获得我们的技术支持,就需要购买我们的企业版。企业版的定价策略与传统软件没有区别,但我们需要强调服务的价值,争取按照年服务费的方式销售。
但开源改变了销售的方式,一般的客户都成为了免费客户,让我们无利可赚。但是这些免费客户形成了 TDengine 的庞大用户群,他们给 TDengine 带来了传播,给 TDengine 提供了快速的市场反馈,而且无形中将我们竞争对手的市场空间大幅减小。
通过开源,我们获客的渠道主要来自线上渠道,而且主动咨询我们的客户已经对产品有了一定的了解,PoC 的环节也将大为缩短,直接的销售成本将大幅下降。从我们 7 月份开源后的效果来看,三个月的时间,主动联系我们的客户已经有数百家。对于传统的 2B 软件销售而言,这个数字是相当惊人的数字。
但是销售本身并没有改变,开源只是带来了大量有效的销售线索,我们仍然需要销售人员与客户进行仔细的沟通。这种沟通,在我们品牌地位完全建立之前,除电话、微信沟通外,还需要面对面的进行,详细了解他们的痛点、帮助他们解决,无捷径可走。
因此我们目前的销售策略是:线上引流,线下成交。
陶建辉
2019 年 10 月 13 日于北京望京