<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          打破中國企業(yè)類軟件成長的怪圈,我找到了方法!

          共 6110字,需瀏覽 13分鐘

           ·

          2022-09-16 10:16

          上周六(8 月 13 日),濤思數(shù)據(jù)舉行了成立 5 年來的第一次 TDengine 開發(fā)者大會,近 400 名開發(fā)者和客戶來到了現(xiàn)場。大會主旨之一是發(fā)布 TDengine 3.0 版,而且我們將其核心代碼全部開源。37 萬行產(chǎn)品源代碼,23 萬行測試代碼,以及 181 份共 13.6 萬字的完整文檔,已經(jīng)全部在 GitHub(https://github.com/taosdata/TDengine) 上公開,供全球開發(fā)者下載、查看并體驗。


          TDengine 是一款時序數(shù)據(jù)庫(Time Series Database,TSDB),3.0 版本完全解決了困擾業(yè)界的高基數(shù)(High Cardinality)問題,能夠支持 10 億個設(shè)備采集的數(shù)據(jù),集群規(guī)模可以超過 100 個節(jié)點。除超強的水平擴展能力之外,3.0 實現(xiàn)了存儲計算分離,計算資源與存儲 資源可以彈性伸縮,采用 RAFT 協(xié)議實現(xiàn)數(shù)據(jù)的一致性來保證系統(tǒng)的高可用,讓 TDengine 成為真正的云原生數(shù)據(jù)庫。3.0 重構(gòu)了計算引擎,更好的支持標(biāo)準(zhǔn) SQL 查詢以及各種時序數(shù)據(jù)特有的查詢,讓時序數(shù)據(jù)的分析變得高效而且簡單。3.0 還優(yōu)化和重構(gòu)了緩存、消息隊列、流式計算的實現(xiàn),讓 TDengine 成為一個真正的極簡時序數(shù)據(jù)處理平臺,大幅降低了系統(tǒng)設(shè)計的復(fù)雜度,降低了運營和維護成本。?

          3897de380fc0baef155cd7856db383f5.webp

          TDengine 開發(fā)者大會現(xiàn)場

          從我 2016 年底寫下第一行代碼,TDengine 已經(jīng)走過了 5 年,版本從 1.0 到 2.0,到今天的 3.0。對于時序數(shù)據(jù)庫產(chǎn)品究竟要解決什么問題,我之前已經(jīng)從技術(shù)層面寫過一篇博客來闡述: 研發(fā)了5年的時序數(shù)據(jù)庫,到底要解決什么問題? 作為一個從 1984 年就開始寫程序的持續(xù)創(chuàng)業(yè)者,我雖非常享受通過技術(shù)來實現(xiàn)創(chuàng)新的過程,哪怕一天 14 小時敲代碼也是樂此不疲,但三家公司的創(chuàng)業(yè)經(jīng)歷也讓我深知,作為一個產(chǎn)品,最重要的是去挖掘并滿足“用戶需求”。
          在企業(yè)類軟件、基礎(chǔ)軟件幾乎被歐美公司壟斷的情況下,中國的企業(yè)類軟件、基礎(chǔ)軟件能發(fā)展起來,并走向全球市場,是中國無數(shù) IT 人的夢想。我想結(jié)合 TDengine 的發(fā)展歷程,分享一下我的想法。

          1、中國企業(yè)類 、基礎(chǔ)類 軟件成長的怪圈


          中國的企業(yè)軟件、基礎(chǔ)軟件的發(fā)展一直深陷一個怪圈。
          以中美之間的軟件對比來作為例子。20 年前,中國的軟件都沒有美國做得好。但今天,相當(dāng)多大眾類的軟件,中國都比美國做得好。比如,微信就比 WhatsApp、Facebook 這類軟件好用得多;企業(yè)辦公軟件飛書,就比 Confluence 用起來更舒服。為什么?不是微信、飛書團隊的程序員更聰明,能力更強,而主要是中國的用戶群大,而且競爭激烈,來自用戶端的需求在源源不斷地提出,逼迫這些產(chǎn)品快速地迭代升級。
          反觀企業(yè)類軟件、基礎(chǔ)軟件,與歐美相比,中國依然相當(dāng)落后。為什么? 不是中國程序員不想做好或者能力不夠,而是由于開發(fā)出的企業(yè)類軟件,普通企業(yè)都沒有買單能力。有買單能力的大多是政府、國企和軍工,而這些單位往往一大堆定制化需求,最后企業(yè)類軟件公司都變成了做集成、做項目的公司,很難開發(fā)出全球使用的標(biāo)準(zhǔn)化產(chǎn)品,難以規(guī)模化。一年多前我們團隊上線用友財務(wù)系統(tǒng),但沒想到做了 30 年財務(wù)軟件的公司,依然是 BUG 一堆,發(fā)票上傳就經(jīng)常有問題。拋開研發(fā)管理的問題,我想不是用友研發(fā)不努力,核心原因還是與 SAP、Oracle 相比,他們用戶數(shù)不夠,迭代升級太慢。?
          我相信,中美程序員之間的技能并沒有太大差別,即使有差距,經(jīng)過幾個有挑戰(zhàn)性的項目,也可以掌握,關(guān)鍵是要交給中國程序員真正的需求和問題,他們一定能學(xué)會,一定能解決。TDengine 創(chuàng)始團隊的四位程序員,除了廖博士,勝亮、洪澤和我自己都沒有研發(fā)數(shù)據(jù)庫的經(jīng)驗,但 5 年下來,處理過太多太多的技術(shù)問題,在時序數(shù)據(jù)領(lǐng)域,在全球范圍都應(yīng)該是絕對的專家了。
          好的產(chǎn)品不是程序員在計算機面前想出來的,而是用戶用出來的,提出問題比解決問題更為重要。而只有拿到足夠數(shù)量、足夠場景的客戶需求,得到足夠的用戶使用反饋,才能真正地不斷打磨和迭代產(chǎn)品。支持 10 億設(shè)備的數(shù)據(jù)采集,看似很難,但仔細分析,是完全可以解決的。
          因此,無法短期內(nèi)獲取大量用戶和場景,已經(jīng)成為企業(yè)類和基礎(chǔ)類軟件可以快速且在正確方向前進的最大障礙。但值得慶幸的是,我們找到了開源這個利器。 ?

          2、開源打破怪圈,帶來巨變


          2019 年 7 月 12 日我們宣布 TDengine 單機版開源,10 多萬行 C 語言代碼被上傳到 GitHub。沒想到,我們的開源迎來了開發(fā)者社區(qū)的熱烈歡迎,不到四個月的時間,GitHub 的 star 就達到一萬,多次在全球趨勢排行榜上排名第一,獲得無數(shù)的贊美。
          但同時,也獲得很多專業(yè)的批評,有人仔細分析并測試我們代碼,認為多線程的處理有瑕疵,高并發(fā)大數(shù)據(jù)量的持續(xù)測試一定會撞到問題;有人認為模塊結(jié)構(gòu)不清,耦合過重,難以增加新的功能;多維度的聚合分析在一些場景中并不高效;亂序數(shù)據(jù)的處理效率很低等等。而且還有人發(fā)現(xiàn),我們沒有建立起標(biāo)準(zhǔn)的 CI/CD 流程,難以保證質(zhì)量。
          對于一個擁有開放心態(tài)的我而言,每每看到這些中肯的批評,我都是很開心,這說明產(chǎn)品還有努力的空間。因此 2019 年 12 月,TDengine 團隊正式啟動 2.0 的開發(fā)。包括我自己在內(nèi),8 位程序員日夜奮戰(zhàn),力圖把大家發(fā)現(xiàn)的這些技術(shù)問題全部解決。?
          2020 年 8 月,TDengine 2.0 正式發(fā)布,同時開源了集群功能。全球開發(fā)者又一次把 TDengine 推向新的高度。贊美之外,迎來的又是被大家發(fā)現(xiàn)的不少問題:雖然亂序插入的效率問題已得到很好的解決,系統(tǒng)穩(wěn)定性也大幅度提升,但是集群有時不工作;更有人仔細分析我公布的數(shù)據(jù)同步設(shè)計文檔,指出里面的設(shè)計漏洞;雖然支持 SQL,但支持不夠徹底,很多復(fù)雜查詢做不了;業(yè)內(nèi)普遍存在的“High Cardinality”問題,TDengine 并沒有真正解決,雖然能處理五千萬臺設(shè)備的數(shù)據(jù),但系統(tǒng)重啟的時間至少需要半個小時,無法忍受……?
          雖然 TDengine 2.0 的設(shè)計經(jīng)過了很多次內(nèi)部討論,但依然有些問題沒有考慮到。感謝開源社區(qū)的反饋,讓我們意識到產(chǎn)品還有可提升的空間。因此 2021 年 6 月我決定正式啟動 3.0 的開發(fā),不僅要解決大家發(fā)現(xiàn)的問題,實現(xiàn)標(biāo)準(zhǔn)的 SQL,將數(shù)據(jù)庫、流式計算、緩存、消息隊列融為一體,實現(xiàn)真正可以實用的極簡時序數(shù)據(jù)處理平臺,而且還準(zhǔn)備瞄準(zhǔn)未來,設(shè)計出真正的云原生時序數(shù)據(jù)庫
          但經(jīng)過 1.6、2.0 的發(fā)布,我頭腦清醒了不少,意識到僅靠幾個十倍程序員是不夠的,而且底層數(shù)據(jù)庫軟件的研發(fā)確實如大家所說,就是難,沒有那么簡單。因此這次我們組織了 40 人的全職研發(fā)團隊來研發(fā) 3.0 版本,測試研發(fā)組就有 8 人,開發(fā)各種連接器、周邊工具的也有 8 人。TDengine 第一個演示版本是我一個人兩個月時間開發(fā)出來的,1.6 是 4 個程序員的奮斗,2.0 是 8 個程序員的努力,3.0 則包含了40 個程序員夜以繼日的汗水。?
          從開源到現(xiàn)在,GitHub 上報告的 TDengine 的 issue 已經(jīng)超過一萬。TDengine 用戶微信群近 20 個,每天都是很活躍,贊譽之外,同樣有各種問題和吐槽。如果沒有開源,很難讓用戶指出這些問題,或者這些問題要等到相當(dāng)多用戶相當(dāng)長時間使用后才會發(fā)現(xiàn)。可以說,開源幫我們找來了高質(zhì)量的設(shè)計評審、代碼評審、系統(tǒng)測試,開源大大加速了我們產(chǎn)品的迭代和升級
          沒有開源,TDengine 不可能在短短的三年,就有 13.9 萬的安裝實例。沒有開源,我們不可能在歐洲、美國、日本、韓國等地收獲客戶。沒有開源,我們產(chǎn)品的 BUG、設(shè)計上的缺陷,需求的挖掘,不可能依靠一個小小的團隊來發(fā)現(xiàn),也就不可能快速地迭代升級。即使我們都是十倍程序員,也無法與在市場上存在已久的歐美大公司一爭高低。

          3、用戶才是技術(shù)進步的推動力


          2016 年底,我想到的最好的 TDengine 的應(yīng)用場景是汽車、能源和 IT 運維行業(yè)。但沒想到的是,開源之后,除自己設(shè)想的行業(yè)外,居然物流、智能制造在用,金融行業(yè)在用,煤礦在用,建筑工地在用,石油、石化在用,連鋼鐵廠、卷煙廠、啤酒廠都在用,農(nóng)業(yè)、畜牧業(yè)等很多完全出乎意料的領(lǐng)域都有客戶在用,TDengine 的適用場景一下子幾乎覆蓋了所有的行業(yè)。我們公開的 100 多個案例分析里,包括蔚來、理想、零跑汽車,包括西門子、順豐、中通、大疆、OPPO、京東、TCL、玉溪卷煙廠、中天鋼鐵、同花順等眾多行業(yè)巨頭。
          收獲這么多用戶,當(dāng)然開心。但最重要的是,通過海量的用戶,我們了解到了很多想象不到的需求。
          2017 年初,我根本沒想到時序數(shù)據(jù)有亂序的可能,而且看到 Prometheus 也不處理亂序數(shù)據(jù),因此設(shè)計中就沒去處理它。但在與車企交流之后,我才意識到亂序是必然存在的,最后只能用補丁的方式來解決,自然運行效率就不行,而且代碼也變得丑陋不堪。
          我們也沒想到過一個設(shè)備居然能采集幾千個物理量,但在與風(fēng)電企業(yè)交流之后我才發(fā)現(xiàn),一臺風(fēng)機完全可能有 1000 個以上的指標(biāo),因此只能修改設(shè)計,支持 4096 列。更沒想到,物聯(lián)網(wǎng)上報的數(shù)據(jù)里有可能有空值,而且比例可能很大,只好又在設(shè)計上做出修改。
          我們很自豪地推出了連續(xù)查詢,但在與一些制造業(yè)的客戶交流后,發(fā)現(xiàn)他們還希望有基于狀態(tài)窗口的聚合,比如某個閥門處于關(guān)閉或打開狀態(tài)時的聚合;在與車聯(lián)網(wǎng)企業(yè)的客戶交流后,發(fā)現(xiàn)他們希望有基于會話窗口的聚合,比如發(fā)動機運轉(zhuǎn)時的聚合。于是我們就推出了 session 窗口與 state 窗口功能。但大部分平臺都采用一個流式計算引擎做數(shù)據(jù)的清洗、計算,整個流式計算平臺的維護成本還遠超時序數(shù)據(jù)庫,因此我們才意識到光有時間窗口驅(qū)動的流式計算還不夠,必須支持事件驅(qū)動的流式計算,才能把用戶數(shù)據(jù)平臺的復(fù)雜度和成本進一步降低。
          在與能源、制造等行業(yè)的用戶交流后,我們知道了邊云協(xié)同不只是概念,而是他們真實的需求,他們需要把某個邊緣節(jié)點的數(shù)據(jù)有選擇的同步到區(qū)域中心,然后再同步到集團。在與金融、證券等行業(yè)的用戶交流后,我們知道了他們對數(shù)據(jù)的訂閱有過濾的需求。結(jié)合各種反饋,最后,我們抽象出了 TDengine 獨有的數(shù)據(jù)訂閱功能,API 與 Kafka 一樣,但可以訂閱一個設(shè)備或一組設(shè)備(表),可以訂閱指定的列,可以對值進行過濾,訂閱時還可以做計算,從而大幅降低數(shù)據(jù)的傳輸量,降低應(yīng)用端的復(fù)雜度。
          如果沒有開源,沒有海量的用戶,我們聽到的只是少數(shù)客戶的聲音,而且由于是付費的,他們的需求可能并不代表真正的行業(yè)需求。TDengine 推出的極簡時序數(shù)據(jù)處理平臺,好幾個特殊的分析函數(shù),寬表的支持,多達 128 個標(biāo)簽,包括 JSON 格式的標(biāo)簽,Schemaless 寫入等等,完全是傾聽了很多開發(fā)者用戶的聲音之后才推出的。?
          TDengine 開源了 3 年,我深刻地意識到用戶才是技術(shù)進步的推動力,是一款成功產(chǎn)品背后的英雄。 因此在 TDengine 開發(fā)者大會上,一開場就先邀請了京東科技 IoT 產(chǎn)品部技術(shù)總監(jiān)閆政和中通科技資深架構(gòu)師黃國石作為用戶代表上臺,給參會者分享他們在業(yè)務(wù)中使用 TDengine 的故事。

          4、你的反饋,我們前行的勇氣


          中國的基礎(chǔ)軟件能發(fā)展起來并與全球巨頭直接競爭,是無數(shù) IT 人的夢想。將 TDengine 打造成全球第一的時序數(shù)據(jù)庫,是我創(chuàng)業(yè)時的立下的目標(biāo)。要實現(xiàn)它,必須認真傾聽用戶的反饋,用不斷提升的產(chǎn)品品質(zhì)服務(wù)好用戶。而且我們要看到,中國企業(yè)類軟件,只占全球 10% 的市場,還有 90% 的用戶不在中國,因此 TDengine 必須全球化。我們需要有英文文檔、英文技術(shù)社區(qū),目的是吸納更多的用戶來使用,發(fā)現(xiàn)更多的用戶場景和使用的問題,進一步加速產(chǎn)品的迭代升級。
          怎么做到?我選擇了將核心代碼全部開源的方式。
          無論你是我們的付費用戶,還是使用開源版本的社區(qū)用戶,不管你在世界的任何地方,只要登錄 GitHub (https://github.com/taosdata/TDengine),無論是贊譽的 star、fork,還是提 issue、吐槽、報告問題,都是對 TDengine 的最大支持,都是我們沒日沒夜不斷迭代升級產(chǎn)品的最大動力。 f314c249ed8a163b3c2385cae0f65505.webp

          TDengine GitHub 頁面

          你與我們的任何一次互動,都會推動 TDengine 的技術(shù)進步,都會讓我們離目標(biāo)更近一步。
          過去,因為有大量用戶的支持和鞭策,我們迭代到了 3.0,未來,只要大家繼續(xù)去下載、體驗、測試,并在業(yè)務(wù)中使用,我們就一定能解決所發(fā)現(xiàn)的問題,我們就一定會不懼國際巨頭的競爭,將性能、用戶體驗做到極致,TDengine 就一定會成為時序數(shù)據(jù)處理的事實標(biāo)準(zhǔn)、成為全球第一的時序數(shù)據(jù)庫
          我特別欣賞丘吉爾的一段話 “Success is not final, failure is not fatal, it’s the courage to continue that counts” 。TDengine 開源才三年的時間,未來的路還很漫長,而且一定會困難重重,但我們唯有堅持走下去,才能實現(xiàn)自己的夢想。
          陶建輝 2022年8月16日于北京望京

          ?? 點擊“ 閱讀原文 ”,體驗 TDengine 3.0!

          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91中文字幕+乱码 | 亚洲无码免费观看视频 | 久久秘 成人久久无码 | 欧美激情三级 | 九九九毛片 |