備受關(guān)注的Distributed Cloud|2021全球分布式云大會(huì)·北京站于4月7日隆重召開,分布式云是2021年全球十大重要戰(zhàn)略科技趨勢,利用分布式架構(gòu)技術(shù)創(chuàng)新,連接邊緣節(jié)點(diǎn)、私有云和公有云的IT資源組成分布式混合云。
全球分布式云聯(lián)盟力求打造分布式云計(jì)算旗艦級(jí)技術(shù)盛會(huì),本次大會(huì)共設(shè)有分布式云報(bào)告會(huì)、邊緣計(jì)算論壇、Serverless云原生論壇、分布式數(shù)據(jù)庫論壇、分布式存儲(chǔ)論壇,跨境SD-WAN咨詢會(huì)等六大論壇,圍繞分布式云、分布式算力、Serverless、云原生、HTAP、IPFS等技術(shù)與實(shí)踐展開。聯(lián)合阿里云、騰訊云、百度云、金山云等全棧技術(shù)引領(lǐng)者與全球分布式云聯(lián)盟攜手打造這場技術(shù)饕餮盛宴。
PingCAP創(chuàng)始人&CTO黃東旭在本次全球分布式云大會(huì)上分享了他對于數(shù)據(jù)庫變革的前瞻構(gòu)想,引發(fā)了諸多共鳴和思考。全球分布式云聯(lián)盟也于會(huì)后邀請到黃東旭接受專訪,讓我們一起來看看他對開源分布式數(shù)據(jù)庫的獨(dú)到見解。
為什么分布式數(shù)據(jù)庫需要開源?TiDB怎么確定要開源的,PingCAP的TiDB在開源上做了哪些努力?
中國傳統(tǒng)軟件數(shù)據(jù)庫的推廣模式,跟傳統(tǒng)的軟件很像,就是做一個(gè)產(chǎn)品,招一堆銷售挨家敲門。我們覺得這樣效率太低。就現(xiàn)在而言,基礎(chǔ)軟件好不好關(guān)鍵是在于怎么在最短的時(shí)間找到最多人來去用這個(gè)產(chǎn)品,能夠讓它變得更好,變成一個(gè)正向循環(huán),因?yàn)榛A(chǔ)軟件產(chǎn)品是被「用」出來而不是做出來的。所以傳統(tǒng)軟件推廣并不是一個(gè)特別好的選擇,因?yàn)閿U(kuò)張速度取決于銷售敲門的速度。
所以我們在成立第一天就選擇了「開源」。并且把它作為公司的發(fā)展戰(zhàn)略,堅(jiān)定地認(rèn)為開源是當(dāng)前全球化背景下基礎(chǔ)軟件領(lǐng)域成功的唯一道路。在我們看來,單純依靠一個(gè)團(tuán)隊(duì)開發(fā)力量并不能創(chuàng)造出完美的解決方案,一個(gè)好的產(chǎn)品應(yīng)該敢于將自己的代碼開放出來,不閉門造車,及時(shí)和社區(qū)溝通,交流,讓整個(gè)社區(qū)參與進(jìn)來。
「開源」相當(dāng)于用一些 to C 的方法論,在工程師的社區(qū)里通過病毒式傳播讓產(chǎn)品被更多人用起來,別人用得不爽一定會(huì) feedback 提 issue。用的人越多,它的質(zhì)量就越好,質(zhì)量越好,會(huì)變成一傳十,十傳百的這種效應(yīng),讓產(chǎn)品正向循環(huán)下去。
對于基礎(chǔ)軟件,我的觀點(diǎn)是像數(shù)據(jù)庫、操作系統(tǒng)、云技術(shù),或者云內(nèi)部的基礎(chǔ)軟件,未來只有開源一條路,如果不開源,或者說內(nèi)核不開源的話,產(chǎn)品的生命力是很差的。不像其他的商業(yè)軟件,基礎(chǔ)軟件就像在水管、水電煤這樣的基礎(chǔ)設(shè)施的層面上,你的產(chǎn)品生命力差,沒人用的話別人也不敢用,這就像一個(gè)惡性循環(huán),而開源是打破這個(gè)循環(huán)的武器。
開源是一個(gè)非常大的趨勢。大家可以看到一些比較著名的基礎(chǔ)軟件,基本都是開源的,比如 Docker 或 k8s。很多互聯(lián)網(wǎng)公司里也會(huì)用很多像 MySQL、Hadoop 等這種新一代的大數(shù)據(jù)處理的數(shù)據(jù)庫等基礎(chǔ)軟件,且也大多是開源的,正是上面理論的實(shí)際例子。
經(jīng)過五年多的堅(jiān)持,基于開源文化驅(qū)動(dòng)產(chǎn)品開發(fā)和外部推廣的方式,PingCAP 在開源上做了很多努力,也取得了成效。
產(chǎn)品開發(fā)方面,得益于活躍的國際化社區(qū)和全球超過 1200 個(gè)社區(qū)開發(fā)者的參與,TiDB 正以極其罕見的速度進(jìn)行正向迭代和超高速發(fā)展,我記得 TiDB 1.0 GA 的時(shí)間是 2017 年底,到現(xiàn)在才短短 3 年,就產(chǎn)生了這樣的覆蓋率和影響力,這點(diǎn)非常的震撼,而且每一個(gè)新 feature / 新版本,都有一大批熱情的核心社區(qū)用戶自發(fā)進(jìn)行測試,每天都有大量全球技術(shù)愛好者給 TiDB 提各種產(chǎn)品改進(jìn)建議,報(bào)問題。
開源精神不僅僅在于索取,同時(shí)我們也積極回饋開源社區(qū),力爭成為全球技術(shù)標(biāo)準(zhǔn)的引領(lǐng)者。比如 2020 年 9 月,我們的分布式存儲(chǔ)引擎 TiKV 正式從云原生基金會(huì)(CNCF)畢業(yè);2020 年 7 月,我們的混沌工程測試平臺(tái) Chaos Mesh? 正式成為 CNCF 托管項(xiàng)目;CNCF 2019 年、2020 年度報(bào)告提到,PingCAP 已經(jīng)連續(xù)兩年在 CNCF 全球代碼貢獻(xiàn)排行榜中名列第六,已成為全球知名的開源軟件廠商。
現(xiàn)在跟過去二十年前不一樣,無論是開源軟件的質(zhì)量,還是社區(qū)的迭代速度,都已經(jīng)是今非昔比,所以基本上開源再也不是低質(zhì)低量的代名詞。
中國分布式數(shù)據(jù)庫市場是怎樣一個(gè)狀態(tài)市場?為什么TiDB能夠獲得客戶的市場領(lǐng)導(dǎo)者的評(píng)價(jià)?
過去三四十年,數(shù)據(jù)庫市場都是依賴像 Oracle、IBM 所建立的理論基礎(chǔ)運(yùn)行。但在 21 世紀(jì),Google 提出分布式系統(tǒng)技術(shù)后,隨著硬件條件的成熟,像 SSD、萬兆的網(wǎng)卡,帶來的改變就是處理的數(shù)據(jù)量在持續(xù)地變大。數(shù)據(jù)庫市場到了需要去做修訂或者說要有個(gè)轉(zhuǎn)折的地方了。數(shù)據(jù)庫行業(yè)最根基的東西在發(fā)生變化,而我們要做的就是找到正確的切入點(diǎn):就是分布式理論怎么跟傳統(tǒng)關(guān)系數(shù)據(jù)庫理論融合的點(diǎn)。
TiDB 設(shè)計(jì)之初就是一款開源的分布式數(shù)據(jù)庫產(chǎn)品,無論從技術(shù)上來講還是運(yùn)營模式上來講,都是分布式數(shù)據(jù)庫非常成功的實(shí)踐。
從技術(shù)上來講,傳統(tǒng)的數(shù)據(jù)庫實(shí)現(xiàn)“分布式”的方式無非是通過 Sharding 或者分庫分表,或者采用 NoSQL 的思路,但是往往都面臨著業(yè)務(wù)侵入性的問題。如果你的業(yè)務(wù)是重度依賴 SQL,那么用這兩種方案都是很不舒適的。而 TiDB 結(jié)合了傳統(tǒng)數(shù)據(jù)庫的優(yōu)點(diǎn),以 Shared Nothing 這個(gè)思路進(jìn)行開發(fā),可以做到幾乎無限的水平擴(kuò)展,整個(gè)系統(tǒng)沒有端點(diǎn),不管是 1 個(gè) T、10 個(gè) T 或者 100 個(gè) T,業(yè)務(wù)層基本上不用擔(dān)心擴(kuò)展能力,同時(shí)提供強(qiáng) SQL 的支持,不需要指定分片規(guī)則、分片策略,系統(tǒng)會(huì)自動(dòng)的幫你做擴(kuò)展。第三是支持像單機(jī)數(shù)據(jù)庫一樣的強(qiáng)一致的事務(wù),可以用來支持金融級(jí)別的業(yè)務(wù)。
從運(yùn)營模式上來講,我們用開源的模式讓更多用戶能夠低成本的用上 TiDB,參與到產(chǎn)品的研發(fā)流程中,用戶能夠及時(shí)反饋他們的使用體驗(yàn)和遇到的問題,我們能夠快速地響應(yīng),根據(jù)客戶的需求來完善功能,快速迭代。
TiDB天生是有云原生基因嗎?TiDB云原生的歷史是怎樣?數(shù)據(jù)庫云原生有哪些必要性?
從 TiDB 誕生之時(shí)就帶著云原生的標(biāo)簽,并且底層存儲(chǔ)引擎 TiKV 也在 2019 年成為了 CNCF 的孵化項(xiàng)目,并于 2020 年順利畢業(yè)。我們很早就認(rèn)識(shí)到,云提供的基礎(chǔ)設(shè)施可編程、按量付費(fèi)等區(qū)別于傳統(tǒng)數(shù)據(jù)中心的核心特質(zhì),正是釋放 TiDB 彈性伸縮潛力的最佳載體。
我們認(rèn)為云原生是未來的數(shù)據(jù)庫方向。2010 年以來,云計(jì)算讓低成本無限擴(kuò)展的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施成為了可能,在底層資源無限的前提下,將有更多創(chuàng)造性的軟件被開發(fā)出來,大大提高我們的生產(chǎn)力。而一款跑在云上的數(shù)據(jù)庫最好是云中立的,在未來的多云場景,AWS、谷歌云、阿里云等等,他們構(gòu)成現(xiàn)在的公有云世界,而谷歌的K8S又是一個(gè)公有云服務(wù)的標(biāo)準(zhǔn)。所以,我們 TiDB 只要支持 K8S,每一個(gè)公有云都支持這個(gè),對于一個(gè)用戶來說,你可以采用一種多云的策略,你不受任何云廠商的綁架。這個(gè)就是云原生的對未來的價(jià)值,客戶可以在云上更靈活。
TiDB 5.0 架構(gòu)和功能上有哪些要點(diǎn)值得關(guān)注?
我們把 TiDB 5.0 定義為成為邁向企業(yè)級(jí)核心場景的里程碑版本:TiDB 5.0 的性能和穩(wěn)定性得到了顯著提升,從而具備更強(qiáng)大的 OLTP 金融級(jí)核心場景的服務(wù)能力;在原有 HTAP 引擎 TiFlash 的基礎(chǔ)上引入了 MPP 架構(gòu),使得眾多企業(yè)的實(shí)時(shí)/交互式 BI 成為現(xiàn)實(shí),為高成長企業(yè)和數(shù)字化創(chuàng)新場景提供了一棧式的數(shù)據(jù)服務(wù)底座,加速帶動(dòng) HTAP 進(jìn)入更多大型企業(yè)的數(shù)字化場景。
此外,TiDB 5.0 新增了多項(xiàng)企業(yè)級(jí)特性,集成更豐富的大數(shù)據(jù)生態(tài),提供更加簡易的運(yùn)維體驗(yàn),幫助企業(yè)更高效地基于 TiDB 構(gòu)建和擴(kuò)展應(yīng)用。在具體的功能點(diǎn)上,TiDB 通過 TiFlash 節(jié)點(diǎn)引入了MPP架構(gòu),從而達(dá)到加速計(jì)算的目的。經(jīng)過測試,TiDB 5.0 在同等資源下,MPP 引擎的總體性能是 Greenplum 6.15.0 與 Apache Spark 3.1.1 兩到三倍之間,部分查詢可達(dá) 8 倍性能差異;同時(shí)引入了聚簇索引功能,TPCC tpmC的性能提升了39%;此外還增加了一部提交、不可見索引能功能,也有很多體驗(yàn)上的優(yōu)化,在穩(wěn)定性和安全上均有提升。