文章目录
TDengine开源之路
开源是为了“垄断”
“国产”开源和开发者
“CEO到底要不要写代码?”
谈起他最近将要发布的一篇推文主题,涛思数据CEO陶建辉笑称,世界 500 强高科技公司的CEO也得写代码。作为一个 50 多岁还在写代码的“ 10 倍工程师”,他在最近开源的TDengine 2. 0 版中又写了超 1 万行代码。
陶建辉说,最新版是个 80 分的产品。他坦陈,去年1. 0 版发布肯定有很多缺陷,比如存在设计的不足、代码不够规范等问题,但经过大量不同场景用户的实际检验,最新版在质量上有大幅提升,他们优化了设计、重构了核心代码,并积极加强测试,在1. 0 版发布后推行持续集成、持续部署、代码覆盖检查等。
最终,TDengine 2. 0 版开源了集群功能,还解决了元数据的分布式处理,以及乱序情况下的性能问题。开源后开发者的反馈也很直接,又一次,他们把这款开源产品送上了GitHub全球趋势榜近一周,现在每天clone代码的新用户超过 100 人,Star数已超过 12800 个,访问流量更是比单机版开源时翻了至少三倍。
不过从一家商业公司的角度,陶建辉也说,即使微博、微信粉丝,以及GitHub的Star再多,没有销售线索,也是虚的。既然如此,TDengine会不会像其他免费的开源工具一样,最后获得了开发者的喝彩,却没有达到商业回报?
“羊毛出在猪身上”,他对此并不担心。在陶建辉看来,只要全世界的开发者都喜欢,TDengine就会成为空气和水,“可能在TDengine这款软件上我确实没赚到钱,但软件上延伸出的很多辅助功能,我能卖钱。”他说,这就是2B软件销售的互联网思维。
根据他提供的数据,使用TDengine的企业案例至少 500 家,付费客户将近有 50 家,来自物流、电力、石油、智能制造、无人机等各行各业。
TDengine还在不断完善,从 80 分到 99 分,他认为要付出超 10 倍的努力,当产品超过 90 分的时候,他们就敢叫板整个全球市场。
同样作为一个连续创业者,比起前面两次创业的跌跌撞撞,这次创业三年来对他而言相当顺利,这些不难从他自信而激情言谈中听出来。
创建涛思时,陶建辉组建了一流的技术团队,没有主动找过一个投资人,却在 3 个月内融到了 2000 万美元,TDengine开源后三个月在GitHub拿下 10000 万个Star,但更重要的,他认为这次的创业方向选对了。
在第二次创业结束后,在陶建辉心里,要给这个世界留下一副作品的愿望变得特别强烈。他希望这个作品能够在 30 年之后都有人在欣赏,更希望在IT历史上留下痕迹,“leave a dent in the world”。
没有意外的话,TDengine就是他在 80 岁时都还在维护的那幅作品。现在,他要继续为这幅作品作品解bug,加代码。
TDengine开源之路
CSDN:TDengine 1. 0 开源后,连续一周都排在GitHub全球趋势榜第一,两个月内拿到 10000 个star,即使MySQL开源时在短期内好像也没这么高的热度,你有料想到吗?
陶建辉:没有。没想到反应这么快,我当时跟团队讲的是,希望 3 个月搞 5000 个star看行不行。
CSDN:复盘过为什么广受欢迎的因素吗?
陶建辉:主要原因有三个。第一,物联网作为新兴市场越来越普及,大家需要这样一个产品;第二,跟中美贸易战有关,中国历来缺少这些基础性软件,因此有这样的软件开源后有助于传播;第三,可能跟我五十几岁了还在写代码有关系,这激励了一些国内的程序员。
CSDN:1. 0 版本开源后你说开源的这个决定是之前不敢做的,2. 0 版本开源集群前你是忐忑不安,两种心态下分别经历了哪些利弊博弈?
陶建辉:第一次不敢开源是怕开源之后没人反应。去年要开源的时候,已经辛辛苦苦做了两年多,万一开源后只有几百、一千个人关注,就说明别人根本不认可你,这个产品方向搞错了,创业彻底失败,公司只能关门。
第二次集群开源仍然有不安,是因为我们认为集群功能很重要,但也有人认为不重要,开发者就不会有这么快的反应。
我一直担心的问题就是开源后,别人都不买你的单。做程序员最大的悲哀,就是免费开源给别人都不用,说明你的工作一点价值都没有。
CSDN:TDengine1. 0 版本不太敢开源,也说明开源不是创业初期就已经做好的决定?
陶建辉:我在 2016 年年底就想过要开源,只是没有贸然开源,要开源的话包括License的选择,产品定位都要琢磨,产品也要打磨好,就比较慎重,我希望一开源就能有很多人关注。
CSDN:1. 0 版本开源带来的反响,对2. 0 集群开源也有直接的推动作用?
陶建辉:当然。1. 0 版开源后开发者没什么太大反应,我绝对不会去开源集群,别人都不喜欢,你还开源?
CSDN:听上去你最看重来自开发者的反馈,而不是市场客户。
陶建辉:我并不关心有多少付费客户,更关心开发者的Star、Fork、Watch、Issue的数量,如果产品有用,这个数据一定会很好。
CSDN:下一版本你们可能也在规划中了,还会给开发者带来哪些亮点?
陶建辉:研发团队会聚焦在几个方面:一方面是接上数据源,除了MQTT之外,还有PLC,Modbus,OPC-UA等大量工业数据的协议,这样用户采集的物联网、工业互联网这些数据接入TDengine就毫无障碍。比如,去年我们支持了IT运维的软件Telegraf和Prometheus,它采集的数据不用写SQL语句,做完配置就可以直接写到TDengine,搭建一个大数据平台。
另一方面,TDengine的分析功能还要进一步加强。我们已经有几十个函数对存储的数据做各种分析,但我们还要提供更多的函数,包括各个专业领域的分析函数,让大家做分析更方便。
CSDN:在时序数据库领域,国外有InfluxDB,国内好像只有百度云TSDB产品,它们在技术路线上与TDengine有什么不同?
陶建辉:技术路线完全不一样,像OpenTSDB,还有InfluxDB这两者是开源的,而百度云TSDB没有开源,没法验证。前两者的存储引擎与TDengine有着完全不同的存储引擎,他们用键值数据模型进行存储,我们是用结构化数据列式存储,一个采集设备一张表一块一块存储,针对时序数据做了很多优化,因此性能也更高,这是截然不同的。
CSDN:这一领域在未来的技术发展路径会怎样?
陶建辉:用户并不关心技术路径,只看最终功能和性能。我们充分利用了时序数据的所有特点,采取了一个不同的技术路径,这些方面我们有天然的优势。
CSDN:除了性能外,有开发者质疑说秒杀Hadoop的软件多了,重要的是像它那样提供生态,提供底层能力,TDengine怎么搭建生态和社区?
陶建辉:生态就是你不是个孤岛,要能被别人集成进去。我们的生态就是第三方软件,比如跟MQTT对接,跟那些工业协议随便接,这就就是数据源的生态。另外一方面的生态是可视化,与一些BI工具能无缝对接。社区建设我们还要继续加强,做活各种论坛。
CSDN:看上去,你对未来的发展胜券在握。
陶建辉:现在只有勇往直前。我们把刚需功能都开源了,只保留了一点点辅助性的功能没开源,我们采用的是MongoDB的Open Core套路(来赚钱)。
我们特别有信心的是产品做得确实好,比友商好的太多,还开源了,又有足够的资金储备,我就不相信别人做时序数据还能跟我竞争?你真的别做了。
CSDN:那你现在还会有不安或潜在隐忧吗?
陶建辉:我们一定会遇到瓶颈。也许现在每天还有 100 多个Star,但能不能持续一年?用户量持续增长是个巨大的问号。稳定性、易用性要再上一个台阶,技术要持续创新,前面 60 分的市场很容易做,但要把它翻一倍,你可能要付出 10 倍的努力。
开源是为了“垄断”
CSDN:TDengine 2. 0 版本开源前,集群是你们对外销售的亮点,但现在这个功能也开源了,跟之前的付费客户怎么沟通?
陶建辉:第一,一些辅助性的功能并没有开源;第二,这些客户买我们的软件,买的主要是技术服务和支持。开源软件一定要强调服务。
CSDN:但集群也是之前你们的一个销售亮点,你当时怎么说服内部的销售团队?
陶建辉:也许以前确实靠集群赚了点钱,但市场占有率上不来,好多客户就会去找别人免费的基础方案,比如,OpenTSDB的集群性能和功能实际上也很差,但那也有很多人用,它们觉得数据量大也没关系,多搞几台服务器就行,所以集群不开源你就会丢掉客户,这是不行的,市场占有率不够,你就没想要打赢战争。
CSDN:也就是说,更大范围的开源,是为了能获取到更多的客户。
陶建辉:没有别的目的,我就想在市场占有率上做到垄断地位。如果我们在物联网数据处理市场,做到50%以上的市场占有率,销售做得再差都不是问题。但如果销售做得再好,只占了1%的市场份额,时时刻刻都可以被人灭掉。
CSDN:由于TDengine是个使用面很广的产品,你说有些钱是不赚的,哪些钱不赚?
陶建辉:跟我们的战略不相吻合的钱不赚。TDengine只是个中间件,但一些客户想做可视化,你给钱我都不干,因为这偏离了主航道,不利于公司的定位和长期发展。同样,我们就只想做好物联网大数据平台,整个物联网平台的钱我也不愿意赚,尽管我有能力做。
CSDN:开源确实能收获更多开发者,但涛思本质上是一家商业公司,而且还是创业公司,营收对你们应该也很重要,如果选择不开源或半“开源”你们或许也能活得很好?
陶建辉:营收很重要,但开源之后你觉得付费客户就少了?没关系,因为那些客户本来就不是你的。
开源对开发者和整个社会来说其实是特别好的事情。按照以前的商业套路,某类产品本来就 100 亿美元的市场,你不开源,可能累死就搞定了5%的市场份额,这对To B软件的销售来说已经很了不起。
但现在,开源是把市场做小了,本来是 100 亿美元的市场,开源后, 95 亿美元的市场就没了,竞争对手也没了,不愿意交钱的客户可以使用免费的开源版本,这为社会做了贡献,可剩下的 5 亿美金的市场都是我的,这就是商业价值。
开源也让销售方式彻底发生改变,不开源的话,POC都难做,还要反复测来测去,现在客户可以自己去下载,甚至客户在公司内部早就用上了我们的产品,付费只是想要辅助性功能,还有技术服务,根本不用再介绍产品的技术能力。
这就好比Linux系统如果没有开源,能跟IBM的AIX等等操作系统竞争吗?门儿都没有,Linux系统开源后把市场变得极小,但这个市场的钱全都被RedHat赚了。
同样地,如果TDengine不开源,能跟Oracle,SQL sever竞争吗?
CSDN:但开源软件没有一定经济基础就卖服务可能也很困难,像Ubuntu和Deepin在项目早期都烧了不少钱。
陶建辉:我们今年的 4 月份A轮和 1 月pre-A轮融资加在一起超过 2000 万美金,每个月还赚一点点钱,按照现在烧钱的速度, 10 年都烧不完。
CSDN:那么,无论是占领市场份额,还是开发者的认可,开源会是一款优秀的基础软件取得成功的必由之路?
陶建辉:基础软件不开源是必死无疑。
CSDN:对于现在国内做软件的创业公司,开源或不开源的考量因素是什么?
陶建辉:用户量不足够大的软件不值得开源,你要做用户量特别大的基础性软件。按照我的理论,你本来就只有 100 个客户,只有5%的客户付费,就是 5 个客户付费了,开源就没钱可赚了。但像物联网领域,客户可能有几十万个,剩下5%的付费客户那就很多。
CSDN:就整体的开源产业链来说,国外尤其美国开源软件产业链可能更完善,而国内的开源状况很多人都觉得比较困难,你有这种感觉吗?
陶建辉:如果开源只在中国做,我建议不要开源。如果只针对国内市场,就是所谓的自主可控,去IOE,替代Oracle,这很难让你成为一个独角兽公司,Oracle在中国市场的收入只占了全球市场的3%都不到,你把它在中国的市场全吃了,你又能怎么样?你依然撼动不了他,你依然无法成为Oracle这样级别的公司,很难跟美国这些公司对抗。Oracle他们面向的是全球市场,投入也远远超过我们。
好多人做的软件没有能力推到全球,你看GitHub上有很多中国的霸榜项目,使用说明都没有英文,你怎么走向全球市场?而且中国开源的好多软件都是前端类型,生命力不够。
当然,如果别人卡脖子不卖给你,那是另一回事。
CSDN:你们的 50 家付费客户里有多少来自海外市场?
陶建辉:目前已经有一家美国的客户,后期我们一定会在海外市场发力,我认为,我们80%的收入会来自海外。
CSDN:不过,“国产”基础软件平台近几年也有一定热度。
陶建辉:开源在中国已经做了 20 年,最近这几年很明显要起来了,除了TDengine,像PingCAP、OneFlow都做得挺好,当然如果没有资本注入进来,开源也做不起来,现在让很多人觉得开源在中国也可以玩,是因为好几家做开源软件公司的融资不错。中国人购买服务的意识也没上来,尽管风气在变好,但时间还很长。
“国产”开源和开发者
CSDN:除了产品和技术,你们的市场营销也不错,你说这是你在上一次创业做快乐妈咪时学到的技能,如何用To C的方式来推广现在涛思数据的To B业务?
陶建辉:To C的套路是什么?就是要多渠道、全方位宣传,而且各种社交媒体,微博、微信、抖音到各种技术论坛都要用上,不仅要自己写文章,也要鼓励客户写文章介绍我们的技术。但中国做To B的公司都很低调,可能怕竞争对手搞事情或是让客户没面子,从来不写文章,不爱分享,而且在推广时,用的也是冠冕堂皇的冷冰冰的官方话术。
传统的To B推广是搞定客户的负责人,我们是Bottom-up,跟开发者做朋友。我就爱高调,希望全世界开发者都知道TDengine,你看好多投资人加我好友,我都不想加他们(拿出手机给作者展示了微信申请好友添加页面),但任何开发者想加我,我都马上接受。
CSDN:通过文章与开发者直接交流是推广开源项目非常重要的途径。
陶建辉:TDengine的传播主要来自我个人写的几篇文章,最近集群开源的那篇都有 7 万多阅读量。到目前为止,我们还没掏过一分钱做付费推广。
CSDN:在运营开源项目上,你有哪些建议给技术型创业者?
陶建辉:创始人一定要自己要写文章,你自己都不传播,没有人帮你传播。要把自己的感受和真实想法分享出来,要分享干货,给你的同行还有开发者带来一些新想法。我从来不保守秘密,愿意把我的理念贡献出来,包括我怎么赚钱都愿意分享,这是一种分享精神,我大概周一、周二又会发一篇文章(作者注:截止发稿,还未发布)。
CSDN:关于什么主题的?
陶建辉:CEO到底要不要写代码。
CSDN:创业公司的CEO应该要写?
陶建辉:我认为 500 强公司的CEO也得写,哈哈...
CSDN:作为一个老派工程师,并且通过TDengine与国内开发者的交流,你发现了哪些优点和不足?
陶建辉:国内的开发者至少有上千万,优点是特别好学,这也是为什么我们开源成功的原因之一。
缺点就是受的专业训练太少,这与中国鲜有真正严格意义的标准软件有关。但国外,像美国的公司微软、Oracle特别擅长做除能卖到全球的标准软件。但在中国,像阿里、腾讯、字节跳动等伟大的互联网公司,他们都是在运营一个服务,而不是做标准软件产品。互联网服务和标准产品都是软件,但差别很大很大。
一旦要做标准软件,接口定义就很重要,文档必须很清晰,对代码、容错、运行稳定性的要求极其之高,比如整个微信内部的研发团队保证几千人都不止,但可能文档都不完整,而且天天在变,也没法完整。
CSDN:大多数像涛思这样的初创公司可能没那么多流程,怎么让工程师写好文档,提高沟通沟通效率?
陶建辉:我们都是要求文档化,在Confluence上写博客、写文章,而且用文字评论同事的文章,进行提问等。把自己想要表述的事情或想问的问题用文字写下来,比面对面的语音沟通更有挑战。但它更有利于高效沟通,更利于知识积累,特别是远程协同办公。
CSDN:你怎么定义“有品味、有格调”的优秀工程师?
陶建辉:写出能工作的代码不是问题,大家用各自的方法、编程语言解决了同一个问题,但你代码里结构体、API的定义,函数的命名、变量的命名、日志输出等等,要让你的代码好读好懂,便于后续的debug和维护,便于扩充新的功能,这就是有品位。