從實時資料庫轉戰時序資料庫,他陪伴 TDengine 從 1.0 走到 3.0

TDengine發表於2023-10-17

關於採訪嘉賓

在關勝亮的學生時代,“神童”這個稱號如影隨形,很多人初聽時會覺得這個稱謂略顯誇張,有些人還會認為這是不是就是一種調侃,但是如果你聽說過他的經歷,就會理解這一稱號的意義所在了。

受到教師母親的影響,關勝亮從記事起就“長”在了教室後排,提前開啟了啟蒙教育,這也使得他在四周歲直接就讀了一年級。儘管所在村莊的教育條件非常有限,他仍然憑藉著優異的成績,在 16 週歲就進入了中國科學技術大學化學物理系,並拿到學校和政府合計 13000 元的助學獎金。要知道,2001 年時科大和清北差距並不大,在關勝亮所在的吉林省被並稱為“三校”。更有意義的是,他的求學故事給家鄉燃起了一把希望之火,讓教育觀念薄弱的村裡人發現“原來上學也是孩子可以選擇的出路”。

進入大學後,彼時還是大一新生的關勝亮透過旁聽招聘會,分析出了日後理科學生的工作出路,無非就是留校、研究所、出國幾類,當時科大理科相關專業能夠獲得全額獎學金並出國的比例大約為 20% ~ 30%,似乎也是一個不錯的選擇,但在接觸 C 語言和資料結構的課程後,他發現自己更喜歡坐在電腦旁邊寫點程式。就這樣,關勝亮確定了自己的未來發展方向,併成功從化學物理系轉到了新開設的軟體工程系,開啟了自己的“程式設計師”生涯。

與濤思結緣,始於一個“無奈之舉”

對於關勝亮來說,當初選擇資料庫這個就業方向,其實純粹就是一個“無奈之舉”。

“我研究生就讀於中科院計算所,專業是虛擬現實,本來最對口的方向是一直火到現在的遊戲行業,為了一紙戶口,我進入了一家做實時資料庫的企業,它和時序資料庫(Time Series Database)還不一樣,只能儲存當前時間的資料,歷史資料是儲存在其他系統的。就這樣我一直做了很多年的實時資料庫,一度覺得實時資料庫是明日黃花了。”

雖然這在當時看起來並不是一個明智選擇,但人生也沒有絕對正確的選擇,機會總是留給善於思考且有所準備的人,關勝亮深諳這個道理。“選擇賽道,其實是在考慮如何生產出一個能賣錢的產品,要相信硬核技術永遠都不會過時,只有技術才能帶來新的元素。因此,與其選擇賽道不如沉澱自己,找到自己的核心競爭力在哪裡,看準時機將創業風口與自身專長相結合,技術才是第一生產力。”

2017 年,從 360 過渡到只有幾個人的創業公司濤思資料,他沒有過多猶豫,在發現自己在時序資料、分散式方面的技術儲備,以及在監控領域的業務儲備,正好與這個產品完全匹配後,他欣然選擇了加入。“我想和 Jeff(TDengine 創始人與核心研發陶建輝) 一起,開發出一個行業領先的資料庫產品,重新點亮我的職業生涯,讓我十餘年的知識積累能夠發揮出更大的作用。”

到現在,關勝亮加入濤思也有了 6 年時間,而在這 6 年時間中,他也確實將自己的所學毫無保留地傾注在了 TDengine 這款產品之中。

“在濤思資料,我就是一塊磚,哪裡需要哪裡搬。 我組織開發了 TDengine 從 1.0 到 2.0 再到 3.0 的所有迭代版本,哪個模組缺人手,我就會補充到哪裡,不但做架構、管理,也寫了很多程式碼。開啟 Github 倉庫,檢視 TDengine 的貢獻者,可以看到我是排在第一位的。”

可以說,職業生涯到現在為止,專注於 TDengine 的產品研發就是讓關勝亮最有成就感的事情了。讓他欣慰的是,在濤思人的共同努力下,TDengine 已經發展成為了國內一線的時序資料庫產品,在國際上也有了一定的影響力,同時也得到了廣大開發者的認可——GitHub 上已經發展了兩萬多的 star。

在 IT 技術不斷髮展的今天,使用者要想實現一種功能,一定會有很多的待選方案,但想要在一定效能條件下去實現,選擇就不多了。TDengine 之所以硬核,就在於超高效能的資料處理能力。“回想 TDengine 1.x 的版本,產品的穩定性還達不到很高的標準,但我們的首批種子客戶依然堅定的選擇了 TDengine,一方面是對國產自研軟體的支援,另一方面就是市面上沒有可用的替代品。”

這也直觀地說明,物聯網領域確實需要一個能夠真正解決問題的時序資料儲存引擎。而隨著 TDengine 的發展,關勝亮在 6 年前做出的選擇也已經“開花結果”。

與 TDengine 同行,技術更新與海外市場兩手抓

作為一個基礎軟體,尤其是國產基礎軟體,發展難度是顯而易見的,也因此,從選擇加入 TDengine 的那一刻開始,關勝亮就做好了長期紮根打持久戰的準備。

“資料庫產品一定要靠豐富的應用場景,透過時間的沉澱和場景的打磨才能發展起來。好的資料庫是用出來的,不是靠幾個程式碼高手設計出來的,決定資料庫企業未來的是有效使用者和應用場景,我們要做的就是在真實的場景中解決使用者的痛點問題。”

從這一點出發,TDengine 開啟了核心程式碼完全開源的發展模式,獲得了數以千計的真實使用者場景,如關勝亮一般的 TDengine 技術人員在這些案例的基礎上總結提煉,抽象出使用者的真正需求,不斷調整迭代產品,不受定製開發等短期利益誘惑,始終保證著將核心研發力量投入在產品的主線發展方向上。

“開源軟體想要獲得長期發展,成為一個企業敢用的產品,背後一定需要一個強力的組織支撐,用以保證軟體的架構穩定,保證程式碼質量和測試覆蓋,保證軟體缺陷可以穩定且及時的得到處理,越是功能強大、架構複雜的 2B 軟體越是如此。”

藉助開源的力量,TDengine 發展了大量的使用者,為便於和使用者交流溝通,濤思資料目前已運營了 20 多個使用者群,各個使用者群日常都非常活躍。以 TDengine 3.0 為例,一經發布,每天就有 5~600 人安裝試用 TDengine,不到兩週的時間已經收集了 100 個最佳化建議,進一步推動著產品的快速迭代。

“有的競品攻擊我們,說 TDengine 迭代速度太快,產品怎麼可能穩定。這種說法非常有意思,產品穩定與否,是和質量體系有關的,和迭代速度關係不大。沒有使用者的使用,不要說大版本的迭代,小版本的迭代都成了無源之水。在國內競品把目光瞄準 TDengine 時,TDengine 已經把目光瞄準了全球。”

從聯合創始人的身份出發,關勝亮表示 TDengine 接下來的發展道路也已經非常清晰了。“TDengine 在國內時序資料庫領域已經有了一定的江湖地位,但是海外市場的擴充還很有限。隨著 TDengine 3.0 穩定性和易用性逐步增加,我對海外市場非常有信心,中國 IT 產業約佔全球市場的 20%,海外市場具備更大的發展空間。 在 IoT 領域,TDengine 已經解決了基礎的資料讀寫的問題,下一步就是引入時序資料分析,在更廣闊的領域推動技術的發展。

再起航:繼續“六”下去

發展 6 年,TDengine 也已經沉澱了幾十萬行程式碼了,在產品架構設計和演進上,關勝亮也有著“經驗之談”。“在做開發之前,一定要考慮是在做一個產品,還是在做一個專案。作為專案,你可以選擇一些主流的開源產品,不要過度設計,讓專案可以快速上線;但作為一個產品,關鍵部分還是要以自研為主,控制核心程式碼,讓迭代升級快速有效。”

他以 TDengine 為例進行了說明,“一個裝置一張表的資料模型,作為其最核心的創新點,在三個大版本迭代時都沒有變化;但是在工程實現方面,其後設資料管理模組,從 1.0 的集中式管理,到 2.0 的半分散式管理,再到 3.0 的全分散式管理,完全是業務需求驅動的。 集中式管理可以處理百萬時間線,半分散式管理可以處理千萬時間線,而全分散式則可以處理上億的時間線,徹底解決了業界困擾的高基數問題。

從他的陳述中我們可以看到,TDengine 從 1.0、2.0 到 3.0 的演進,不是簡單的數字堆積,每個版本都是真真正正的質的提升。它的成功不只是技術實現細節,更在於研發人員對時序資料特點的抽象融合,對於物聯網業務的深度理解。

行文至此,關勝亮與 TDengine 的第一個六年故事就告一段落了,而他們的下一個六年也已經起航。對於關勝亮來說,他的終極目標就是讓 TDengine 成為時序資料領域的事實標準,成為全球第一的時序資料庫,而他也將為此繼續奮鬥在產品第一線。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014783/viewspace-2989278/,如需轉載,請註明出處,否則將追究法律責任。

相關文章