Categories
程式開發

沖頂GitHub,52歲程序員創業獲2000萬美元融資,他卻將公司的核心代碼“洩露”了丨開源創新30人


嘉賓| 濤思數據CEO、TGO鯤鵬會會員陶建輝
採訪| 極客邦科技CEO霍泰穩
編輯| 周文猛

到GitHub下載TDengine源代碼:https://github.com/taosdata/TDengine

在今年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 中國創始人霍泰穩與陶建輝進行了深入的訪談對話,陶建輝針對以上疑惑逐一給出了解答。

為什麼用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。

超級表創新,從產品到生態構建企業壁壘

在時序數據庫領域,目前在全球範圍內不僅在美國有排名第一的InfluxDB,還有市場上用得較多的Hadoop 生態內基於HBase 基礎開發的OpenTSDB,此外還有比如Prometheus 等。

在陶建輝的介紹中,相較於同類競品,TDengine 除了在統一平台上實現了需要Kafka、Redis、HBase、Spark 等多款軟件配合才能實現的功能,具有一站式物聯網大數據處理能力之外,它還具有“一個設備一張表”以及“超級表”創新兩個特別之處。

一方面,TDengine 採用了一種叫做“一個設備一張表”的新型數據模型,使得它的性能更為突出。 以電錶監測為例,一百萬台電錶就意味著系統中會建有一百萬張表來分別存儲不同電錶數據,這樣就可以保證單個設備的插入、查詢速度極其之快。

另一方面,為了避免“一個設備一張表”設計導致表數量過多問題的出現​​,比如智能電錶,中國一個省就有幾千萬台電錶,那麼幾千萬台智能電錶所對應的幾千萬張表的數據庫管理就極其之難,這個時候TDengine 還設計了“超級表”概念,它能夠把所有的電錶當做一張表來看,通過打標籤的方式讓所有的表快速聚合,並且使表的數據跟採集的數據完全分離存儲,與普遍的KV(key-value)型存儲形成區別,保證表聚合處理的快速進行。

“中國的軟件公司歷來都是跟在美國的軟件公司後面跑,國外能做到什麼樣,我們就跟到什麼樣,甚至稍微差一點也無所謂,但是我要告訴所有在做研發的,濤思數據開發的TDengine 至少是在所有指標上都能打敗了InfluxDB,打敗了Prometheus 這些軟件”,陶建輝對自己的產品特別自豪。

研製出產品之後,陶建輝不僅開源了TDengine 的核心代碼,還不止一次將公司產品的核心原理公之於眾,但他絲毫不怕自己的創新思路被同行抄襲,“開發數據庫這種基礎軟件,它不是一個簡單的原理問題,如果我的競爭對手要學我,至少要三年之後才能來跟我叫板。”

陶建輝表示,TDengine 的原理自己花了兩個月時間不到兩萬行代碼就驗證出來了,但現在TDengine 有一個團隊在負責研發,包括他本人又寫了三年多,仍處於一個不斷調BUG ,持續改進的過程中。

在有了TDengine 這一款核心產品之後,陶建輝也有考慮準備以TDengine 為核心來向兩邊延伸,通過組建產品矩陣做大公司生態,構建企業壁壘。“往更底層的通訊物聯網技術領域,比如說物聯網MQTT 協議、工業上的OPC 協議等,我們希望這些協議的數據能夠直接無縫接入TDengine;另外,海量的物聯網數據存在我這裡,也需要能做高效的查詢計算操作,它一定要跟各種可視化、BI 等工具無縫的銜接起來,這樣生態才能形成。”

我們現在已經在做這種可視化軟件的銜接了,比如說Grafana,開發者任何程序不要寫,就做一個配置,就能從我們的庫里拉數據到Grafana 做各種圖表顯示。 而且我們現在還和一些國內做組態軟件的企業合作,也是不用寫程序它就能接起來……

只賺大客戶的錢,集群版開源後給自己打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 協議,唯一的目的就是不想讓雲廠商來直接集成我們的技術,避免他們直接把我們公司的方向帶偏了”,陶建輝表示。

雲服務是未來,開源軟件也是未來,但是開源軟件也需要與雲廠商保持合適的距離。 開源軟件也一定要盈利,如果開源無法生存,那麼再有情懷也做不成事情,一定要商業成功才能帶來開源軟件的成功。

以十倍速研發產品,把握國產基礎軟件崛起機遇

對於技術出身的陶建輝來說,對編程以及技術的追求一直都是他創業過程中格外重視的。 他之前寫過一篇叫做《CEO 要不要寫代碼》的文章,發表了這樣的一個觀點——如果公司的創始人不重視硬核技術,那就千萬不要去做硬核技術的公司,而且CEO 不要只是嘴上說重視硬核技術,更重要的是身體力行。

作為極客邦科技旗下TGO鯤鵬會會員,此前陶建輝在接受作者採訪時發表過《我生命的最後一刻,希望還在計算機前》
有了創始人對於技術的熱愛以及親自投身參與,濤思數據整體的技術氛圍也極為濃厚。 “有時候遇到一些性能瓶頸之類的硬核難題,我就對團隊說,你必須要解決,你解決不了我自己上,這個時候所有的人就不會退縮了”,在濤思數據內部,所有的研發工程師也都在以十倍速的突破能力創新前行,以一擋十,濤思數據強調團隊的決戰能力。

訪談接近尾聲,談及中美IT 在底層技術層面的差距,陶建輝承認國內在在一些非常基礎的IT 信息領域和國際上確實有差距,但同時也不忘稱道一下自己的產品。

“目前國內也出來了很多開源軟件,但既是底層軟件又在性能各項指標上都超越美國的,我覺得我們濤思數據的TDengine 可以稱得上是第一家,作為一個52 歲還在貢獻代碼的程序員,我覺得這值得80 後、90 後程序員仔細到GitHub 看看我老陶寫的程序到底怎麼樣。”

由於中美意識形態的競爭,最近一段時間以來國內各界人士對於基礎軟件等底層技術的重視程度上升到了新高度,無論是數據庫、操作系統,還是芯片、EDA 等不同形態的產品都成為了資本以及政策開始傾斜關注的對象,國產基礎軟件的春風,也開始刮起來了。

相關數據表示,截止2017 年國內的IT 從業人員已達1950 萬,與二十年前的中國相比,如今國內的IT 技術從業人員、軟件開發者的總量已經是幾十倍的增長。如此龐大的工程師的數量,也讓國內開始出現了孵化自己新的工具的可能性,而且中國龐大市場所需要面臨的豐富場景,也更加的需要有自己的基礎軟件工具出來。

踩在國產基礎軟件工具崛起的東風之上,陶建輝特別興奮。 “我們不僅找到了市場的空白點,而且也踩對了時機。”

限量免費採訪報導名額推薦[中国新基建50人],[中国开源创新30人]
沖頂GitHub,52歲程序員創業獲2000萬美元融資,他卻將公司的核心代碼“洩露”了丨開源創新30人 1

「中國技術力量」之「中國新基建50 人」以及[中国开源创新30人]系列專題報導火熱進行中,我們長期專注於發現新基建以及技術開源領域內驅動產業數字化轉型、智能升級、融合創新的科技型組織機構、企業部門,並將重點採訪其中的產業發展引領者,技術部門中堅力量等人士,深度傳播他們對於新基建、開源創新等方面的技術理解、產業需求以及商業化探索嘗試。歡迎大家點擊超鏈接申請免費採訪報導名額:>> [中国新基建50人],[中国开源创新30人]