两天前7月12号,我对外正式宣布TDengine, 一款专为物联网定制打造的大数据平台软件,正式开源,将我和涛思数据团队两年多的时间写下的10多万行C语言代码放在GitHuB上,分享给全球的开发者。
开源的代码里,有我自己亲手写的3万多行C代码,包括我自己一直很得意的定时器,RPC, 内存管理等一系列工具类程序。更重要的是,我们将最核心的存储引擎、计算引擎完全开源出来。存储引擎是我亲手写的,是我仔细分析物联网数据特点后写出来的,因此具有超强的数据读写性能。计算引擎是团队里的廖博士写的,创新的解决了多表聚合的性能问题。宣布开源,而且是将核心代码开源,对于我个人,对于涛思数据,都是跨出了最重大的一步。宣布前我还在忐忑不安,但宣布后,如释重负,轻松了不少,因为终于做了一件想做,但又不敢做,一直犹豫是否要做的事情。
从1984年我高一时写下第一个Basic语言程序,35年过去。这35年中,我进中国科大学流体力学、天体物理,后去美国留学,进芝加哥Motorola,3Com等公司工作,2008年回北京创业,开发了无数的产品。从编程发烧友,到专业的软件工程师、高级工程师、架构师再到CTO,CEO,一路走来,可以说是典型的IT男发展路线。2016年底,我休整一年后,看到物联网大数据的技术挑战和市场机会,虽然自己当时已经快50岁,但我实在不想游山玩水结束后半生,于是抱着“Leavea dent in the world”的想法,再次走向战场,并且冲在了最前线。一个人呆在家里,每天12个小时,连续两个月时间,写了一万八千行代码,写出了一个高效的时序数据存储引擎,证明出我设计的数据模型能把数据插入、查询速度提高十倍以上。随后获得明势资本、蛮子基金的天使投资,组建团队,2017年6月涛思数据正式成立。
在团队的努力下,2018年8月涛思数据发布了TDengine的第一个商业版。凭着产品超强的性能,简单、易用、易学的特点,在没有任何销售人员的情况下,我们获得了将近十个付费客户,涉及到智慧城市、数控机床、新能源、车联网、IT运维等行业,而且最近又在电力行业实现突破。在所有场合,当我介绍TDengine的时候,我都是特别的自豪,因为这个超强的产品是我与团队一行一行代码码出来的,是无数个日夜debug出来的,不仅远超国内的产品,更是能把全球排名第一的同类产品拉下马。但我不时陷入沉思,我50岁的年龄,每天还没日没夜写代码,debug程序,见客户的目的是什么?什么才是一个程序员最大的回报?
一段程序好比一个作品,一个作品只有有人欣赏才有价值,一段程序只有更多的人使用才有价值。这35年里我开发过很多产品,但一直让我念念不忘,总给人提及的是1991年我为中国科大LB膜实验室开发的LB膜天平,还有1993年我为姐姐开发的财务软件。因为这两个软件,在将近30年后,还有人在天天使用。中国科大LB膜实验室的老师同学,还有我姐,打开电脑,看到的还是陶建辉的名字。这真是一件让我兴奋和自豪的事情,因为他们证明了我的价值。
怎么让更多的人使用上TDengine?怎么让物联网、车联网、工业互联网等行业普遍采用的Hadoop一套大数据处理体系被尽快淘汰掉?作为一个基础软件,一个中间件产品,怎么能在全球范围推广,而不是仅在中国自吹自擂?我自然想到了开源。但开源什么,不开源什么,与很多朋友交流,举棋不定。
后来终于想明白了,要开源,就一定要开源最核心,最有价值的部分。因为最核心的部分不分享给大家,大家采用你的产品就没有任何意义,毕竟,市场上有太多的可替代的方案。只有将自己最美、最有吸引力的地方充分展示出来,才能吸引更多的人来使用。因此我最后决定将最核心的存储引擎、计算引擎、还有成套的工具完全开源。但怎么让更多人的领会到我们的架构呢?决定花大力气写文档、把我们技术实现细节写出来,而且这相当程度上能够回答众多的关于性能的质疑。开源的目的,不仅是想给中国的开发者用,还希望全球的开发者来用,因此又花时间写出整个英文文档。TDengine只是一个中间件,不是最终应用,因此团队又开始写应用案列,结合车联网、IT运维、数控机床等实际场景,将TDengine怎么使用用中文、英文写出来。
从高中起,我写程序的癖好就是用极少的代码量去追求极致的运行效率和极致的用户体验。2008年我创办和信,我自己写的WindowsMobile的和信客户端只有18K,就能通过移动互联网免费收发短信、彩信和邮件。2013年创办快乐妈咪,胎心算法程序不到600行源代码。TDengine是我这一风格的延续,没有采用任何第三方组件,1.5M的安装包就将一个物联网大数据平台搞定,从下载、安装到运行,不会超过5秒钟。要是有程序员仔细研究我们源码,看我们是怎么做到的,我会特别的开心。要是有程序员能把我这套方法借鉴过去,把他现在臃肿的系统大幅裁剪,把性能大幅提升,那我更会心花怒放。昨天有人在微信群里告诉我,说RPC模块写的高效简洁,准备采纳,真让我有点得意忘形。
写财务软件,LB膜天平程序时,是我一个人的战斗。令人开心的是,这次TDengine是一个团队在战斗。为了开源,团队备战了一个月时间。90后洪泽、江燚总担心我们的文档写的不清楚,不够仔细,让大家看不明白,因此不停的改,廖博士总想着代码要如何规范,如何让产品更稳定,性能对比测试文档的文字都一丝不苟,胜亮、李晖想着怎么让配置参数更加简单、怎么让安装过程更加顺利,连我们团队里唯一的女生虽然不写程序也激情高涨,为我们程序猿们摇旗呐喊。最开心的是,我刚刚高中毕业的儿子,主动承担了整个新版网站的开发,从设计、前端、后台、浏览器适配、数据分析到搜索引擎优化,都是他一人搞定,而且不放过任何一个细节,无论是单词、语法错误,还是排版的样式,都细细研究。有这样的团队,我心满意足。
宣布开源之前,我没有去征询投资方的意见。但我宣布之后,明势资本的明明、Neil等都第一时间转发消息,主动问我需要什么样的支持,蛮子基金、永辉瑞金和温青投资也都是第一时间支持转发。谢谢你们的信任,谢谢你们对程序员情怀的支持。有你们做后盾,我们开源的道路只会更顺。
写了35年的程序,终于把自己的看家本领晒了出来,共享出来。两年多的时间,近二十万行代码,放在了GitHub上。好多朋友关切的问我,开源怎么赢利?抛开开源的商业模式不提,我想,只要我们开源的代码真正创造了价值,有人用,那我和团队就是最大的赢家。如果30年后,还有人在用TDengine,哪怕只是其中一个模块,其中一个函数,那就是对我们两年多日夜奋战的最大肯定,就是给我这个程序员的最大回报。更希望30年后,我还能对TDengine继续贡献代码,那将是我还未老去的最好证明。
如果大家想支持我这个50岁的程序员和涛思数据团队,支持源自中国的IT底层核心技术,那就赶快到GitHub上搜索、下载TDengine源码,用起来。如果你发现什么问题,我只会高兴,不睡觉都想尽快去解决它。如果喜欢,更欢迎参与到我们这个项目中来。五年之内,世界上90%以上的数据都将是物联网采集的数据,如果我们一起开发出一个极为高效的数据处理引擎来处理这些数据,而且为全球开发者所使用,你是贡献者之一,那是一个多么自豪的事情。
钱再多,也难让人在历史上留下痕迹,但一幅好的作品却可以传承,让后人好好的品味。愿我领头开发的TDengine成为传世之作,Leave a dent in the world!