當前位置:
首頁 > 知識 > 三次創業,三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1

三次創業,三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1

三次創業,三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1

【CSDN編者按】7月28日周日下午,大暑剛過的北京,熱得愈加肆意。編者來到在濤思數據聯合CSDN舉辦的「TDengine 和他的小夥伴們」的Beijing Meetup現場時,陶建輝正在答觀眾問。

突然,編者被一位20來歲的小姑娘熱心提醒可以坐下聽。攀談幾句,得知姑娘是留學倫敦的電子工程畢業生,趁放暑假來這裡做志願者。

不僅志願者很高大上,濤思數據的團隊也很「高配」:3位博士,4位海歸。他們最近斬獲超級喜訊一枚:僅有十人的濤思數據團隊,在GitHub開源的TDengine,連續數天雄踞榜首。

那麼,這是怎樣的一個項目?又是怎樣的一個團隊?團隊背後的創始人有著怎樣的經歷?應CSDN邀約,創始人陶建輝親自撰寫本文,為你答疑解惑,趕快往下看吧!

三次創業,三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1

大家在看100億條記錄查詢的現場演示

作者 | 陶建輝

責編 | 胡巍巍

7月12日,濤思數據宣布將TDengine開源,10多萬行C代碼,包括最核心的存儲引擎和計算引擎都上傳到了GitHub上。

整整兩周時間,GitHub上Star已經超過7300,Fork數已經超過1800,在開發者社區中獲得的反響遠超預期。應開發者要求,7月28日在北京進行了一次線下交流,現場互動十分熱烈。

三次創業,三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1

線下活動現場

很多人好奇,為什麼一個從沒研發過大數據,也沒研發過資料庫軟體的人,能研發物聯網大數據平台軟體?

而且你怎麼想到要開發這樣軟體的?你三次創業,每次都在跨界,怎麼能做到的?

7月28日,我把創業過程中的思考和分析分享出來,供在創業路上的朋友特別是技術型創業者參考。

2016年初,我上家創業公司快樂媽咪被收購,一下就輕鬆下來。但總有很多朋友拉我去看項目,有想讓我投資的,有想讓我加入團隊的。

因為我在智能硬體圈子里有一定名氣,因此看的最多的還是智能硬體、物聯網相關的項目。花了自己不少時間仔細琢磨的有好幾個項目。

第一個就是菜市場的智能秤,希望通過智能秤將菜市場的信息流完全打通,打造一個不亞於美團的平台出來;

第二個就是養殖物聯網,希望對投料機進行自動控制,對養殖的魚塘的環境進行監測,通過物聯網將飼料、養殖、水產銷售打通,形成平台;

第三個是電梯物聯網,系統通過監測,由按期保修變成按需保修,而且建立全國性的電梯維保平台。

還有智能家居等好幾個,但最終沒有一個打動我,讓我投入進去。因為我分析這些項目之後,發現他們成功的關鍵因素,都不是我或者現有團隊具備的。

但這些項目讓我看到了物聯網的前景,看到萬物互聯是不可阻擋的潮流,一定要抓住。我一個強技術背景,沒有多少行業資源的人,能在這股潮流里找到什麼樣的機會?

我的第一反應就是研發一個物聯網平台,但仔細一看,從IT巨頭如微軟、IBM、 Oracle、亞馬遜,到工業巨頭如GE、Siemens等等,無不有自己的物聯網平台,特別是仔細看完GE的Predix,發現自己能想到的東西都被它做了。

再看國內,做物聯網平台的公司就更多了,海爾、三一、徐工、阿里、百度等等,就更不用提無數Startup了。心一下就涼了,這個物聯網平台是絕不能做了,要做就是瞎折騰,唯一的可能性是緊靠一行業資源,靠行業特性和市場資源取勝,但我偏偏沒有多少行業背景和資源。

但在仔細看完很多物聯網平台的資料後,終於發現了一絲曙光,那就是數據處理。物聯網平台里模塊很多,但其中很重要的一塊就是數據處理,包括採集、存儲、查詢、分析和計算,是整個物聯網行業裡面比較共性的部分,個性化程度不高。

再仔細一看,大部分物聯網平台,尤其是國內的,幾乎無一例外的用的是Hadoop生態搭建的,用的是互聯網行業流行的大數據架構,採集進來的數據先進Kafka, 然後分流進HBase/Cassandra/MongoDB等做持久化存儲,進Redis做緩存,進Spark/Flink等做流式計算,後面再接應用、大屏展示等等。

雖然我沒有真正接觸過大數據的處理,但了解這些通用的大數據框架後,我的第一反應就是,Hadoop這套體系太重,至少對於物聯網大數據而言如此。

搭建一個平台,居然要好多款開源軟體拼接在一起,研發、運維效率會很低,數據一致性很難保證,定位一個問題牽涉的環節太多,很不適合私有化部署。

將各種物聯網場景抽象出來,我總結出了物聯網數據的十二大特點:

  1. 數據是時序的,一定帶有時間戳;

  2. 數據是結構化的;

  3. 數據極少有更新或刪除操作;

  4. 數據源是唯一的;

  5. 相對互聯網應用,寫多讀少;

  6. 用戶關注的是一段時間的趨勢,而不是某一特點時間點的值;

  7. 數據是有保留期限的;

  8. 數據的查詢分析一定是基於時間段和地理區域的;

  9. 除存儲查詢外,還往往需要各種統計和實時計算操作;

  10. 流量平穩,可以預測;

  11. 往往需要有插值等一些特殊的計算;

  12. 數據量巨大,一天採集的數據就可以超過100億條。

總結出這些特點後,一下豁然開朗,覺得採用Hadoop這些開源軟體來處理物聯網數據完全是大錯特錯。

物聯網數據像日誌數據,幾乎沒有更新操作的可能,那資料庫中的事務處理的實現就完全多餘;數據是時序的,時間戳自然可以作為主鍵,根本不需要複雜的索引結構;物聯網數據是結構化的,像HBase、Cassandra那樣用Key-Value來存儲,計算效率和存儲效率大打折扣,應該採用結構化存儲才行;物聯網數據的冷熱程度是時間決定的,剛採集的數據是最熱的,而不是用戶點擊決定。

因此用簡單的先進先出的內存管理就能很好的實現高效的緩存,根本就不需要Redis;物聯網數據從一個設備來看,就是一個數據流,實現滑動窗口的流計算那不是一個最順其自然的事情,哪用得上Spark這麼複雜的引擎;對於數據分區,簡單的按設備分區按時間段分區,就輕鬆解決,根本就不需要複雜的分區機制;物聯網數據流是相對平穩的,而且物聯網設備本身一定有緩存能力,完全可以拋棄Kafka這些套件,實現一個簡單的消息隊列和數據訂閱來滿足需求。

隨後又發現有時序資料庫,馬上看他們文檔和代碼,發現他們利用了時序數據一些特點,但還是沒有充分利用,而且只是定位為一個資料庫。

後面又了解到工業界有實時資料庫,發現這些實時資料庫都是老古董產品了,基本上都還是Windows上研發,價格貴,而且沒有標準SQL,水平擴展幾乎沒有,大數據分析能力幾乎沒有,完全沒有能力應對日益增長的大數據量和大數據分析需求,遲早會被淘汰。

我做完分析後很興奮,覺得找到了一空白點。但我自己有沒有能力研發這產品?仔細一琢磨,還是興奮。

2008年,我創辦和信,推送平台除推送之外,一個重要的模塊就是消息隊列。2009年,我們就研發了一個分散式高可靠、持久化存儲的消息隊列,每台手機需要推送的消息就放在一個隊列里。消息隊列與物聯網的時序數據有區別嗎?本質上沒有。

一個是非結構化的,一個是結構化的;一個是簡單的進和出,但另外一個是需要有分析和計算的;兩者在系統的架構設計上沒有大的不同。

考慮到必須設計成分散式系統,因為多年通訊設備研發背景,對我那是輕車熟路。因此,我應該具備所需要的知識儲備和技能,自己多年積累的研發經驗全部能派上用場 。

因此我迅速定位了自己要做的產品,那就是物聯網大數據平台,要把時序資料庫、緩存、消息訂閱、流式計算等系列功能融合在一起,一站式的解決物聯網大數據問題,這樣才能將系統研發、維護的複雜度與成本大幅降低。

前面兩次創業,都是2C產品,讓我養成了追求簡單極致的習慣,馬上又定下採用SQL介面,能通過JDBC介面與眾多第三方工具無縫集成,安裝部署要一鍵搞定的策略,目的是要讓開發者用起來輕鬆,完全沒有學習成本。

研究物聯網數據的特點後,我想到了兩個技術創新點,一是「一台設備一張表」的數據模型來極大提高單台設備的數據插入和查詢效率, 二是給每張表打靜態標籤,將靜態標籤數據與採集的動態數據完全分開存儲,來解決多表聚合查詢問題。

想明白這些後,2016年底,接近50歲的我決定親自寫程序開干。為什麼不找人呢?幾個原因:

  • 自己做技術多年,有個心結,就是希望自己寫的代碼能被無數的人使用;

  • 開發難度大,特別是分散式,如果我自己不把主要框架搭完,把存儲引擎寫好,那團隊效率會很低;

  • 這個產品的核心是技術,如果自己不重度參與研發,那公司會很危險。

我準備動手寫的時候,告訴太太,如果我寫的存儲引擎在數據插入、查詢速度上不比其他資料庫好五倍以上,就當做我又寫了一段好玩的程序。

如果能達到五倍以上,那我就要再折騰一次。 因為在我的眼裡,技術型的產品,要打敗市場上現有的廠商,如果沒有五倍以上的優勢,那完全沒有必要做,因為對方有人、有錢,有客戶群,你憑什麼與對方開戰?

幸運的是,我2個月時間,寫完一萬八千多行代碼,完全證明憑藉我的兩大創新,性能上可以秒殺市場上現有產品,因此就有了今天的TDengine。

三次創業,三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1

濤思數據團隊,左三為陶建輝兒子(00後一枚),TDengine項目其亦有貢獻

研發底層基礎軟體,開發難,推廣更難。即使功能、性能比現有產品好一個數量級,客戶還是會以安全性和穩定性為由拒絕你,因此我想到應該用開源的方式,把最核心的代碼和詳細的設計都曬出來,讓更多的程序員參與進來,將開發者社區建立起來。

活躍的開發者社區能讓所有大客戶都感覺到所選的技術不會被拋棄,不會有重大安全漏洞, 可放心使用。

另外一方面,很多中小企業客戶數據量不大,技術上有很多選擇,如果不開源,他們就會選擇一些其他的開源方案。

本來就賺不到他們的錢,那為何不開源給他們,讓他們免費用呢?不僅要讓大家免費用,我們還要組織一個不小的團隊來運營,與各種背景的開發者互動,回答他們的疑問,讓他們得到技術支持和幫助,更希望他們參與進來,有榮譽感和自豪感,他們才可能發自內心地傳播。

同時,通過開源,可以快速獲得市場對產品的反饋,了解市場的需求,這是一件多好的事情,因此毫無猶豫的決定開源。

大數據平台、物聯網平台和資料庫都已經有很多主流產品,挑戰他們是一件困難的事情。而專為物聯網打造的大數據平台,目前還沒有,TDengine在全球是第一家。

物聯網的市場在高速增長,採集的數據量更是指數式的上升,5年的時間,世界上90%的數據都會是物聯網類型的數據,這個細分市場一定會成為一個主流市場。

只要濤思數據團隊繼續努力,抱著開放、合作的態度,充分利用開源打造出技術生態,同時與全球的系統集成商、獨立軟體開發商、渠道等合作,積極的構建出商業生態,那TDengine一定有成為獨角獸的一天。

喜歡丘吉爾說的一句話,「Success is not final, failure is not fatal, it is the courage to continue that counts」,繼續奔跑吧,夥伴們!

作者簡介:陶建輝,1986年考入中國科大,1994年到美國印第安納大學攻讀天體物理博士,曾在美國芝加哥Motorola、3Com等公司從事無線互聯網的研發工作,是高可靠分散式系統、即時通信、消息隊列等方面的頂尖技術專家。2008年,回國創辦和信,專註移動互聯網IP Push和IP實時消息服務,2010年被台灣聯發科收購。2013年再度創業,創辦專註母嬰智能硬體和母嬰健康服務的快樂媽咪。2016年,快樂媽咪被太平洋網路收購。2017年,再次走向戰場,創辦濤思數據,專註時序空間數據的實時高效的處理,其自主研發的產品TDengine,性能優於其他業內標杆10倍以上,可廣泛運用於物聯網、工業大數據、車聯網領域。2019年7月,TDengine開源,在GitHub全球趨勢排行榜上連續幾天排名第一。

【End】

三次創業,三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

100 萬獎金池,這不僅僅是場比賽
10 余年前端老兵親述:前端的未來在哪裡?| 技術頭條

TAG:CSDN |