冲顶GitHub,52岁程序员创业获2000万美元融资,他却“泄露”了公司核心代码-冯金伟博客园

嘉宾 | 涛思数据CEO、TGO鲲鹏会会员陶建辉

采访 | 极客邦科技CEO霍泰稳

编辑 | 周文猛

在今年 8 月 3 日到 8 月 8 日共 6 天的时间里,GitHub 全球趋势排行榜第一的位置连续被一款名为 TDengine 的开源大数据处理引擎占据着。而在这款备受开源爱好者热捧的产品背后,它的创始人是一位 52 岁依然奋斗在编程一线的大龄程序员——涛思数据创始人兼 CEO 陶建辉。

“未来 5 到 10 年,世界上 90% 的数据都会是各种机器或者传感器采集的,而这些数据可能都会是用我写的软件来运算处理”,如今已是陶建辉第三次创业了,但这位 52 岁的程序员依然激情澎湃,并且还时不时的四处宣战。

“我们的产品具有诸如 HBase、Kafka、Spark 等 Hadoop 生态大数据处理技术的功能,体积却只有 5M,未来在物联网这一细分领域,我们完全有可能把 Hadoop 替代掉”,谈及自家产品与同类产品的比较优势,陶建辉对自己研发的产品信心十足,认为目前 IT 技术领域用 Hadoop 来处理物联网数据的做法是完全搞错了。

2017 创立涛思数据之初,三次创业的陶建辉瞄准了物联网数据处理这一场景,决定开发一款自主可控的物联网大数据处理平台——TDengine,他的这一想法迅速的得到了包括 GGV 纪源资本、红杉中国、明势资本等多家投资机构超 2000 万美元的投资。但是,他却仿佛从来没有把投资人投给他的这些钱“当回事儿”。

去年 7 月,陶建辉直接在 GitHub 上免费开源了公司辛苦研发两年、自己也贡献了 3 万多行代码的 TDengine 产品内核代码,开源当天社区 Star 数突破 2000,三个月后 Star 数飙升至一万。而在上月初,陶建辉再次不顾公司销售人员反对,也没有事先通知投资人,直接把公司最核心的集群功能也给开源了,这一举动在 GitHub 上迎来了不少关注,TDengine 连续 6 天位居 GitHub 全球趋势排行榜第一,赢得广大 GitHub 社区开发者好评。

然而在选择将公司最核心的集群功能也开放的同时,大量核心代码直接向开发者的“暴露”,无疑也正加速削弱着涛思数据的核心竞争壁垒。大幅度的开源举措,虽带来了营销便利与客户信任的前期便利,但却也埋下了公司核心代码“泄露”的后忧。

面对未来激烈且残酷的市场竞争,涛思数据下一步何去何从?而对于 TDengine 这一款连续 6 天 GitHub 趋势榜第一的产品,它又有何特别之处?在持续扩大开源力度的背后,陶建辉本人有着怎样的思考以及心路历程?

在近期极客邦科技推出的「中国技术力量」之「开源创新 30 人」采访报道活动中(点击阅读原文参与报道),极客邦科技创始人兼 CEO、InfoQ 中国创始人霍泰稳与陶建辉进行了深入的访谈对话,陶建辉针对以上疑惑逐一给出了解答。

1为什么用 Hadoop 处理物联网数据搞错了?

2016 年,陶建辉第二次创业的智能硬件公司快乐妈咪被太平洋网络收购之后,他的生活又一次轻松了下来。下一步做点什么呢?这一个问题再次成为了他不得不去思考的问题。

由于曾经在摩托罗拉工作,前两次创业与通讯和智能硬件有关,陶建辉在智能硬件圈子内有了一定的名气,很多朋友也拉他去看项目,有想让他投资的,也有想让他加入团队的。但在看了一圈智能硬件、物联网项目之后,陶建辉依然没有找到真正适合自己的机会,唯一的收获是——物联网发展势不可挡,而研发一个物联网平台的想法,也开始在他的心底萌生。

在仔细研究了国外从 IT 巨头如微软、IBM、 Oracle、亚马逊,到工业巨头如 GE、Siemens,以及国内海尔、三一、徐工、阿里、百度等公司在做的物联网平台之后,陶建辉的心又凉了——物联网平台已经太多了,而且已经进入靠资源取胜阶段,进去也是瞎折腾,不适合自己。

但在放弃了做一款物联网平台的打算后,由于深入研究了当时市面上的物联网平台,陶建辉却发现了另外一条新的出路——做物联网数据的处理平台。

由于物联网平台里模块很多,而且其中很重要的数据处理包括采集、存储、查询、分析和计算都是比较共性的,个性化程度不高,允许出现一家比较大的数据处理平台机构。但是再仔细一看,却发现目前市面上大部分物联网数据平台,尤其是国内,几乎无一例外的都是用的 Hadoop 生态搭建,以陶建辉多年 IT 技术领域的经验来看,这其中存在不合理之处。

以车队管理为例,在基于 Hadoop 搭建的物联网数据处理平台当中,为了知道司机当前的位置(经纬度)、平均车速、里程等,汽车上的 TBox 会将这些信息大约每隔 15 秒钟采集一次并上传到云端。基于 Hadoop 的做法是先把 TBox 采集的数据送到 Kafka 消息队列,然后再分发给 MongoDB、HBase 等做持久化存储,分发到 Redis 做缓存、实时展现,分发到 Spark 做实时流式计算。这才有了实时查询每辆车当前位置,以及通过实时计算得出当前在线行驶车辆数,更新实时数据看板等功能。

虽然当时的陶建辉并没有真正接触过大数据处理,但在了解了通用的大数据框架后,他的直观反应是——Hadoop 这套体系太重,搭建一个平台,居然需要将多款开源软件拼接在一起,这会导致研发、运维成本的提升,不可取。

随后,陶建辉又将各种物联网场景抽象出来,总结出了物联网数据具有时序性、数据量大、结构化、极少更新或删除、数据源唯一、写多读少以及流量稳定可预测等十二大特点。发现了很多技术缺陷:基于 Hadoop 生态研发的产品在数据库中的事务处理实现是完全多余的;通用大数据处理平台除了需要集成大家所熟悉的 Hadoop 组件外,往往还需要集成 Spark 这么复杂的计算引擎;以及 Kafka 或其他消息队列工具等。像 HBase、Cassandra 那样用 Key-Value 来存储数据会导致计算效率和存储效率大打折扣……

尤其是当陶建辉更进一步了解到在当时工业界里目前比较通用的实时数据库居然都是属于老古董级别的产品——仍然还在 Windows 上研发,不仅价格贵,而且没有标准 SQL,水平扩展能力差,缺乏大数据分析能力,完全没有能力应对日益增长的大数据量和大数据分析需求等现状之后,他预感传统工业场景的实时数据库迟早会被淘汰。

做完初始阶段的理论分析之后,陶建辉极其兴奋,打造一款新的物联网数据处理工具,成为了他的新目标。

说干便干,陶建辉自己先花了 2 个月的时间,写了接近一万八千多行代码,验证了自己的创新,并且在性能上超越了当时市场上已有的产品,而涛思数据最初的产品模型——TDengine 也终于面世了,之后随着天使轮资金的跟进,涛思数据的公司与团队也正式组建。

“TDengine 其实把数据处理中的缓存、消息队列、数据库,包括流式计算等功能都统一在一起了,能够替代 Kafka、Redis、HBase、Spark 这些软件组合实现所达到的功能”。据陶建辉介绍,客户在用 TDengine 搭建它的车队管理系统的时候极其简单,只需要写一个 Java 应用,再加上 TDengine 就够了,开发与维护的成本都极其低。

而且由于充分利用了物联网数据的特点,数据处理的性能也极其之高。“我们的性能无论是插入还是查询,比跟 HBase、MongoDB 比都是十倍得快,在有的场景下达到几十倍得快”,据陶建辉透露,由于 Hadoop 超过 1G 的安装包在边缘端极其耗费资源,这使得整体体积仅 5M 左右的 TDengine 在物联网边缘数据处理领域有着压倒性的优势。

“在工业互联网、物联网等平台上,90% 以上的几乎都是在用 Hadoop 做开发,事实上这完全是搞错了,用 TDengine 这种极其简单的方法来处理工业互联网、车联网的数据才是正确之道”,陶建辉以芯片领域 GPU 专用芯片巨头英伟达最终超越 CPU 通用芯片巨头英特尔的案例自比,认为涛思数据有望完全取代物联网场景下的 Hadoop 生态,而且多年后市值将会超过 Oracle。

2超级表创新,从产品到生态构建企业壁垒

在时序数据库领域,目前在全球范围内不仅在美国有排名第一的 InfluxDB,还有市场上用得较多的 Hadoop 生态内基于 HBase 基础开发的 OpenTSDB,此外还有比如 Prometheus 等。

在陶建辉的介绍中,相较于同类竞品,TDengine 除了在统一平台上实现了需要 Kafka、Redis、HBase、Spark 等多款软件配合才能实现的功能,具有一站式物联网大数据处理能力之外,它还具有“一个设备一张表”以及“超级表”创新两个特别之处。

一方面,TDengine 采用了一种叫做“一个设备一张表”的新型数据模型,使得它的性能更为突出。以电表监测为例,一百万台电表就意味着系统中会建有一百万张表来分别存储不同电表数据,这样就可以保证单个设备的插入、查询速度极其之快。

另一方面,为了避免“一个设备一张表”设计导致表数量过多问题的出现,比如智能电表,中国一个省就有几千万台电表,那么几千万台智能电表所对应的几千万张表的数据库管理就极其之难,这个时候 TDengine 还设计了“超级表”概念,它能够把所有的电表当做一张表来看,通过打标签的方式让所有的表快速聚合,并且使表的数据跟采集的数据完全分离存储,与普遍的 K-V(key-value)型存储形成区别,保证表聚合处理的快速进行。

“中国的软件公司历来都是跟在美国的软件公司后面跑,国外能做到什么样,我们就跟到什么样,甚至稍微差一点也无所谓,但是我要告诉所有在做研发的,涛思数据开发的 TDengine 至少是在所有指标上都能打败了 InfluxDB,打败了 Prometheus 这些软件”,陶建辉对自己的产品特别自豪。

研制出产品之后,陶建辉不仅开源了 TDengine 的核心代码,还不止一次将公司产品的核心原理公之于众,但他丝毫不怕自己的创新思路被同行抄袭,“开发数据库这种基础软件,它不是一个简单的原理问题,如果我的竞争对手要学我,至少要三年之后才能来跟我叫板。”

陶建辉表示,TDengine 的原理自己花了两个月时间不到两万行代码就验证出来了,但现在 TDengine 有一个团队在负责研发,包括他本人又写了三年多,仍处于一个不断调 BUG,持续改进的过程中。

在有了 TDengine 这一款核心产品之后,陶建辉也有考虑准备以 TDengine 为核心来向两边延伸,通过组建产品矩阵做大公司生态,构建企业壁垒。“往更底层的通讯物联网技术领域,比如说物联网 MQTT 协议、工业上的 OPC 协议等,我们希望这些协议的数据能够直接无缝接入 TDengine;另外,海量的物联网数据存在我这里,也需要能做高效的查询计算操作,它一定要跟各种可视化、BI 等工具无缝的衔接起来,这样生态才能形成。”

我们现在已经在做这种可视化软件的衔接了,比如说 Grafana,开发者任何程序不要写,就做一个配置,就能从我们的库里拉数据到 Grafana 做各种图表显示。而且我们现在还和一些国内做组态软件的企业合作,也是不用写程序它就能接起来……

3只赚大客户的钱,集群版开源后给自己打 80 分

当然,对于涛思数据而言,虽然有做大生态的考虑,但目前涛思需要真正发力的,依然还是要把公司的计算引擎做得越来越强大。

“许多创业者犯过的错误我不想再犯了,包括我自己前两次创业也犯过,以为手里有一点钱了就可以盲目扩张,这个想做那个想做,最后其实没有一个产品能做到了真正的 90 分以上,也很难在生态链上牢牢的占住了一个环节。”。陶建辉目前希望把公司的内功做得更好,把核心的产品做到 90 分以上,然后再去考虑扩张。

去年 7 月,在将 TDengine 的核心代码开源之后,陶建辉给自己打了 60 分,到了上个月集群功能正式开放之后,他将这一分值调到 80 分,但他的终极目的是希望 TDengine 后续能做到 90 甚至于 95 分以上,到那个时候他认为涛思将会再也没有竞争对手。

“TDengine 的市场空间很大,如果未来所有的物联网数据都用 TDengine 这个工具处理,那涛思数据的市值一定会超越 Oracle。”陶建辉对未来公司的发展信心满满,认为现阶段的主要任务依然是做好产品,不宜过早扩张。

然而,在追求将产品做到 90 分的过程中,涛思数据在商业策略上采用的大幅度开源举措也正在引来行业的不解——一个高科技的产品为什么一定要通过开源的方式来去做呢?开源之后,公司的核心竞争优势是否会被削弱?

在陶建辉的回答中,涛思数据决定代码开源并不是一时的头脑发热。事实上在组建创始团队的时候,陶建辉就已经在考虑开源了,而且他也引入了在开源社区比较活跃的人加入到团队当中。

由于基础软件太重要了,而且企业迁移的成本也很高,大家又不太想被 Oracle 等单一闭源企业绑定,于是采用开源软件一直很普遍,在行业内,基础软件不开源几乎没人用已成为了共识。所以作为一个基础软件初创公司,通过开源手段来打开市场非常有必要,同时这也是与客户增强信任的一种方式。

此外,开源还是一种占领市场,甚至于形成市场垄断最好的方法。比如说在工业控制领域,目前还有很多企业在做实时数据库,像西门子、GE、Honeywell 以及美国一家叫 OSISoft 的公司都在做,他们的产品不仅老式、性能落后,而且完全没有一家是开源的,那么新的产品一旦开源,就完全可替代掉他们。

“因为我们在开源,而且比那些老式的实时数据库做的好,企业为什么不用呢?”,在陶建辉看来,开源是提高市场占有率,甚至于挤压竞争对手一个非常有效的方法。

在上个月决定开放 TDengine 集群功能的时候,陶建辉也遇到了来自团队销售人员的阻力,由于涛思之前开源的是单机版,但所有客户一般都要有集群版,之前销售团队在卖给客户的时候强调的也都是集群功能,所以当决定开源集群功能时,销售们觉得没东西可卖了,于是就反对。

陶建辉只能静下来跟销售团队讲:“必须要开源集群,而且开源后仍然能卖得出去,只是销售的时候,要更加的强调价值所在,而不能只强调集群”。在陶建辉的介绍中,开源集群版之后,TDengine 至少还有三个主要的方式可以赚钱,也就是至少还有三个价值点。

首先,TDengine 要靠辅助功能来赚钱。因为 TDengine 还有极少量的辅助功能没有开源,比如说异地容灾、安全加密等,这些功能只有一些大的国企、军工等企业才希望考虑用这些功能。此外,为了防止 Developer 错改数据、删库跑路,企业可能还要做审计,这些功能涛思不开源。首先不会妨碍别人来使用他们的产品,而有需求的企业跟涛思合作就可能产生一定的利润。

其次,TDengine 可以为中小企业提供服务并形成付费。任何软件都会存在 BUG,也都需要升级,对于一些个体比较小的公司,如果没有专业的技术人员支持的话,就一定会遇到很多问题,企业可以选择自己招聘技术人员自己做服务,但也可以选择向涛思数据付费,然后涛思来为他们提供持续的技术服务。

最后,TDengine 还可以通过云服务来实现盈利,提供一个技术和产品,然后通过背后多种场景解决方案去实现盈利。

在陶建辉眼里,开源的方式是类似于在用 To C 的方式来做 To B 生意,就像互联网大家都懂,绝大部分人都不付费,但少量的人在购买企业的增值服务之后,公司就能活得很好,TDengine 的思路也是类似的。“如果全世界 95% 的人都在用 TDengine,那么即使大多数人一分钱都没掏,但只要有那 5% 真正付费的人,也足以使涛思成为一个巨无霸公司了。”

当然,开源之后涛思数据也并不是完全没有压力。原则上来讲,开源软件的真正出路都不在卖辅助功能,而是在卖云服务,云服务才是开源软件的未来。于是开源软件在开源之后,所遇到最大的挑战,可能就是类似于 AWS、阿里云这些云厂商将开源软件集成到自己系统上所造成的巨大生态挤压。

“以 MySQL 为例,一些云厂商在自己价值 200 元的硬件产品之上安装了一个开源的 MySQL 软件,然后就直接以 600 元价格售卖,不用自己的软件,凭空涨了 400 元”,因此,陶建辉介绍到,目前像 Redis 等很多开源软件都在改协议,不再想让云厂商直接用自己的代码。

“我们也吸取了这个教训,采用了 AGPL 协议,唯一的目的就是不想让云厂商来直接集成我们的技术,避免他们直接把我们公司的方向带偏了”,陶建辉表示。

云服务是未来,开源软件也是未来,但是开源软件也需要与云厂商保持合适的距离。开源软件也一定要盈利,如果开源无法生存,那么再有情怀也做不成事情,一定要商业成功才能带来开源软件的成功。

4以十倍速研发产品,把握国产基础软件崛起机遇

对于技术出身的陶建辉来说,对编程以及技术的追求一直都是他创业过程中格外重视的。他之前写过一篇叫做《CEO 要不要写代码》的文章,发表了这样的一个观点——如果公司的创始人不重视硬核技术,那就千万不要去做硬核技术的公司,而且 CEO 不要只是嘴上说重视硬核技术,更重要的是身体力行。

作为极客邦科技旗下TGO鲲鹏会会员,此前陶建辉在接受作者采访时发表过《我生命的最后一刻,希望还在计算机前》

有了创始人对于技术的热爱以及亲自投身参与,涛思数据整体的技术氛围也极为浓厚。“有时候遇到一些性能瓶颈之类的硬核难题,我就对团队说,你必须要解决,你解决不了我自己上,这个时候所有的人就不会退缩了”,在涛思数据内部,所有的研发工程师也都在以十倍速的突破能力创新前行,以一挡十,涛思数据强调团队的决战能力。

访谈接近尾声,谈及中美 IT 在底层技术层面的差距,陶建辉承认国内在在一些非常基础的 IT 信息领域和国际上确实有差距,但同时也不忘称道一下自己的产品。

“目前国内也出来了很多开源软件,但既是底层软件又在性能各项指标上都超越美国的,我觉得我们涛思数据的 TDengine 可以称得上是第一家,作为一个 52 岁还在贡献代码的程序员,我觉得这值得 80 后、90 后程序员仔细到 GitHub 看看我老陶写的程序到底怎么样。”

由于中美意识形态的竞争,最近一段时间以来国内各界人士对于基础软件等底层技术的重视程度上升到了新高度,无论是数据库、操作系统,还是芯片、EDA 等不同形态的产品都成为了资本以及政策开始倾斜关注的对象,国产基础软件的春风,也开始刮起来了。

相关数据表示,截止 2017 年国内的 IT 从业人员已达 1950 万,与二十年前的中国相比,如今国内的 IT 技术从业人员、软件开发者的总量已经是几十倍的增长。如此庞大的工程师的数量,也让国内开始出现了孵化自己新的工具的可能性,而且中国庞大市场所需要面临的丰富场景,也更加的需要有自己的基础软件工具出来。

踩在国产基础软件工具崛起的东风之上,陶建辉特别兴奋。“我们不仅找到了市场的空白点,而且也踩对了时机。”