核心功能全部开源,虽霸榜GitHub,但怎么赚钱?
TDengine分布式集群功能开源后,在GitHub全球趋势排行榜上,又是连续几天排名第一,引起很大的反响。大家都在好奇,这么核心的功能都开源了,公司怎么生存?现将去年10月我在公司内部的一篇博客分享出来,希望涛思数据的开源策略能给中国2B软件行业以及开源社区一点启发。
作为物联网大数据平台,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)
首先要明确一点的是,开源并不意味代码可以随意使用。使用者必须接受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提供了快速的市场反馈,而且无形中将我们竞争对手的市场空间大幅减小。
但是销售本身并没有改变,开源只是带来了大量有效的销售线索,我们仍然需要销售人员与客户进行仔细的沟通。这种沟通,在我们品牌地位完全建立之前,除电话、微信沟通外,还需要面对面的进行,详细了解他们的痛点、帮助他们解决,无捷径可走。
陶建辉
2019年10月13日于北京望京
点击阅读原文,体验TDengine 2.0!