刘奇:当今一切都要更实时、更弹性、更简单,TiDB 就是这样的基础设施 | TiDB DevCon 2020
6 月 7 日,TiDB 社區(qū)年度技術(shù)大會 TiDB DevCon 2020 圓滿落幕,本屆大會采取線上直播的形式,匯聚了來自全球各地的 80+ 開發(fā)者、TiDB 用戶及合作伙伴分享第一手開發(fā)及實踐經(jīng)驗,議題覆蓋金融、電信、電商、物流、視頻、資訊、教育、醫(yī)療等諸多行業(yè),干貨滿滿,目不暇接。會上我們正式發(fā)布了具有里程碑意義的 TiDB 4.0 GA 版本,并分享了技術(shù)細(xì)節(jié)及生產(chǎn)環(huán)境的實戰(zhàn)效果,并為過去年在 TiDB 社區(qū)作出卓越貢獻(xiàn)的 Contributor、Committer、Maintainer 授予了榮譽(yù)獎杯與證書。
本屆大會歷時 2 天,共設(shè)置 7 個論壇,29 小時累計分享時長,直播間人氣值高達(dá) 2.3 萬,錯過的小伙伴們可以繼續(xù)“蹲守”本公眾號近期推送,我們將陸續(xù)挑選整理部分精彩內(nèi)容輸出,敬請期待!
以下是我司聯(lián)合創(chuàng)始人兼 CEO 劉奇的現(xiàn)場分享實錄。
每年我都有一個時間會特別激動,就是產(chǎn)品大版本發(fā)布的時候,通常也是社區(qū)年度技術(shù)大會 TiDB DevCon 舉辦的時間。去年 TiDB DevCon 2019,我們發(fā)布了 TiDB 3.0 Beta,當(dāng)然今年 TiDB 4.0 GA 也如約而至。
Serverless
很長一段時間 TiDB 用戶使用的集群規(guī)模都很大,然后就會再提出一個訴求說“怎么降低我的使用成本”。TiDB 4.0 擁有了 Serverless 能力之后,會根據(jù)用戶的實際業(yè)務(wù)負(fù)載,基于 K8s 自動做彈性伸縮。
從前,當(dāng)我們在上線一個系統(tǒng)的時候,第一件事就是 Capacity Planning,去評估一下我們大概需要多少臺服務(wù)器,比如提前準(zhǔn)備了 50 臺,但是實際上線之后跑了一個月,發(fā)現(xiàn) 5 臺機(jī)器就夠了。這就導(dǎo)致了大量的資源浪費(fèi)。如果整個系統(tǒng)能夠在云上全自動彈性伸縮,就能避免這種資源浪費(fèi)。
更重要的是,TiDB 的彈性伸縮,意味著你永遠(yuǎn)不需要按照業(yè)務(wù)的峰值配備系統(tǒng)資源。比如大家的業(yè)務(wù)會有早、晚兩個明顯的高峰,但實際上每個高峰持續(xù)時間通常只有 2 個小時左右,也就是說,為了這 4 個小時的高峰,而我們配置了 24 小時的最高資源配置,并為此付費(fèi),但非高峰時間的資源和成本完全是可以節(jié)省的,可能算下來,我們能夠節(jié)省的成本大概在 70% 左右,甚至更高。
另外,能夠彈性伸縮的 TiDB 可以應(yīng)對無法預(yù)測的 Workload,沒有人知道哪一個商品在什么時候會大賣,沒有人知道我賣的哪一個基金在什么時候會火,這時如果我們給系統(tǒng)一個權(quán)限,讓它能夠自動根據(jù)業(yè)務(wù)當(dāng)前的實際情況,擴(kuò)充服務(wù)器,這對某個企業(yè)或者某個業(yè)務(wù)來說,可能是“救命之道”,比如像上圖的情況,人為介入往往是太慢了,來不及了。
Real-Time HTAP
在當(dāng)今這個世界,大家希望所有的東西都要更快、更簡單。但如果大家還是按照傳統(tǒng)的方式去運(yùn)用一個數(shù)據(jù)庫,就不能滿足這個“更快、更簡單”的需求了,因為傳統(tǒng)的方式需要經(jīng)過一系列非常復(fù)雜的過程從數(shù)據(jù)庫里面去提取這些變化的信息、事件、日志,再去做分析,那這個過程往往會帶來比較長的延遲,這些「延遲」讓我們失去了很多直接的經(jīng)濟(jì)價值。
在 TiDB 4.0,我們正式推出了 TiFlash,TiFlash 是配合 TiDB 體系的列存引擎,它和 TiDB 無縫結(jié)合,在線 DDL、無縫擴(kuò)容、自動容錯等等方便運(yùn)維的特點也在 TiFlash 中得到繼承,同時 TiFlash 可以實時與行存保持同步。
有了 TiFlash,TiDB 4.0 在大量的復(fù)雜計算場景下,至少能夠比上一個版本快 10 倍,并且我們永遠(yuǎn)不需要去操心“一致性”的問題。不管,面臨的是簡單的 OLTP 類型的 Workload,還是復(fù)雜的 OLAP 類型的 Workload,它總是一致的、實時的,并且能夠自動彈性擴(kuò)張或伸縮。
上面的架構(gòu)圖大家應(yīng)該非常熟悉,幾乎每一家擁有一定數(shù)據(jù)規(guī)模的公司都經(jīng)歷過。曾經(jīng)有一個用戶,他們在一個大概只有幾十 T 數(shù)據(jù)規(guī)模的場景下,搭建了類似上圖那樣復(fù)雜的系統(tǒng),就是為了能夠做 OLTP 和一個報表查詢。這中間不得不接入 Kafka 和 ETL,然后將這個報表查詢的結(jié)果又重新序列化到 HBase 之類的存儲系統(tǒng)里面。有沒有辦法去簡化整個系統(tǒng)呢?
當(dāng)我們用 TiDB 4.0 的視角去看的時候,用戶已經(jīng)給出了他們上線的答案。如上圖所示,當(dāng)我們把 TiDB 放在中間這一層,整個系統(tǒng)的復(fù)雜度就降低了非常多。接下來也會有用戶分享他們使用 TiFlash 的經(jīng)驗,以及他們在架構(gòu)上面做了哪些簡化。
說回來,站在基礎(chǔ)架構(gòu)這一層,用戶其實并不想知道這個 Workload 到底是長查詢還是短查詢,站在用戶的角度,只是希望盡快得到結(jié)果,盡可能減少過程的復(fù)雜度以節(jié)省成本、提高開發(fā)速度,創(chuàng)造更多價值。
Cloud-Native
我知道大家都非常期待 PingCAP 能夠提供 TiDB 的云服務(wù),現(xiàn)在我很高興發(fā)布 TiDB Cloud,由 PingCAP 來管理,維護(hù),優(yōu)化的 TiDB 云。
我們從四年前就開始做了這個準(zhǔn)備,今天 TiDB 可以無縫地在“云端跳舞”。
如果有人說:“我不想安裝 TiDB,我不想去維護(hù) TiDB”。那這個事,你也可以選擇交給 PingCAP 來做。目前我們已經(jīng)支持了 AWS、GCP 兩個云平臺(其它云平臺的支持也在穩(wěn)步推進(jìn)),如果你正在使用這兩個平臺,那么你什么都不需要做,點幾下鼠標(biāo)就可以輕松使用 TiDB,真正的「開箱即用」。
在 TiDB 4.0 中我們提供了超過 70 個新特性,可以閱讀這篇文章《TiDB 4.0:The Leading Real-Time HTAP Database is Ready for Cloud》。
Dashboard
在 TiDB 4.0 里面內(nèi)置了 Dashboard,非常適合像我這種很久沒有寫 SQL 的人,通過圖形界面解決大多數(shù)問題,觀察整個系統(tǒng)里的熱點數(shù)據(jù)、慢查詢,業(yè)務(wù)在數(shù)據(jù)庫上具體是什么樣子,通過多種不同的視圖去理解業(yè)務(wù)負(fù)載等等。我們希望在 10 秒鐘內(nèi)就幫用戶定位大部分故障和問題,下面的 Dashboard 滿足了我的所有“幻想”。
性能:Faster and faster
性能是一個永遠(yuǎn)都會“令人興奮”的問題。對比 3.0 版本,TiDB 4.0 整體的性能提升了 50% 左右;如果是跑聚合查詢,在很多場景下能做到提升 10 倍,甚至是更高,TPC-H 的性能也提升了一倍。這個成果也來自于整個 TiDB 開源社區(qū)的貢獻(xiàn),去年年底我們舉辦了 TiDB 挑戰(zhàn)賽 第一季“性能挑戰(zhàn)賽”,總共有 165 位社區(qū)開發(fā)者參賽,包括 23 支參賽隊伍和 122 位個人參賽者,他們的參賽成果都落地到了 TiDB 產(chǎn)品當(dāng)中。
TiUP 一鍵安裝部署
之前有同學(xué)吐槽說,我安裝 TiDB 太麻煩了,花了幾十分鐘甚至一天,才把整個系統(tǒng)部署起來。
在 TiDB 4.0 中,我們專門寫了一個工具,叫 TiUP,它是一個包管理器。通過 TiUP,大家可以在一分鐘內(nèi)本地把 TiDB 跑起來,一分鐘就能夠體驗 TiDB。而部署 15 個節(jié)點的生產(chǎn)集群也只需要 45 秒,也就是完全做到 1 分鐘內(nèi)快速體驗。TiUP 是一個巨大的易用性體驗的提升,歡迎大家去體驗。
TiUP: A component manager for the TiDB eco-system
Try TiDB (playground) within 1 minute with 1 command
$ curl https://tiup-mirrors.pingcap.com/install.sh | sh && tiup playground nightly --monitor
Deploy a production cluster in 45 seconds
TiUP 對用戶來說是一個巨大的易用性體驗的提升,歡迎大家去體驗。
Security matters!
隨著 TiDB 在全球的應(yīng)用規(guī)模越來越大,越來越多的用戶在更加嚴(yán)肅的場景里使用 TiDB,因此我們也提供了大家非常關(guān)注的安全特性,來符合各個國家對安全和隱私的合規(guī)要求。目前所有 TiDB 通訊組件的通訊過程都是全部加密的,所有存儲的數(shù)據(jù)都支持透明加密,包括 PingCAP 或者任何一家云廠商,都不能侵犯到 TiDB 用戶的數(shù)據(jù)隱私與安全。當(dāng) TiDB 跑在這個云上時,沒有人能夠看到數(shù)據(jù)庫,沒有人能夠從中截獲到通訊過程的數(shù)據(jù)。
實戰(zhàn)效果如何?
相信有人會有疑問,講了這么多,TiDB 4.0 是否真的準(zhǔn)備好了?能不能上生產(chǎn)環(huán)境?有沒有實戰(zhàn)數(shù)據(jù)分享?
上圖知乎的已讀服務(wù),前幾天知乎剛升級到 TiDB 4.0 的最大的一個內(nèi)部集群。整個集群容量有 1 PB,目前的存儲數(shù)據(jù)量已經(jīng)達(dá)到了 471TB。
我第一次看到這個數(shù)據(jù)的時候還是非常震驚的,不僅僅是因為數(shù)據(jù)規(guī)模,還震驚和感動于孫曉光老師(知乎,TiKV Maintainer)對 4.0 的信心,他們在 5 月 28 日 4.0 GA 版本正式發(fā)布的第4天,就已升級。當(dāng)然,看到這個結(jié)果,我的信心也更強(qiáng)了,TiDB 不僅僅支撐這么大數(shù)據(jù)規(guī)模,更重要的是讓知乎已讀服務(wù)的整個系統(tǒng)計算能力有了很大的提升,極大改善了整個系統(tǒng)的延遲。
從上圖可以看到,TiDB 4.0 與上一個版本相比,降低了 40% 的延遲,換句話說,如果在維持相同的延遲的情況下,大約能夠降低 40% 的成本。
Why is TiDB so Popular ?
過去的一年,我也會經(jīng)常被問到一個問題,為什么 TiDB 如此的流行?為什么 TiDB 能夠走遍全世界?為什么能夠得到這么多用戶的使用和贊賞(當(dāng)然也有吐槽,用戶的吐槽也讓我們很積極、很有動力去改進(jìn),去快速迭代)?
其實這一切不僅僅是 PingCAP 的功勞,而是整個開源社區(qū)的功勞,PingCAP 只是 Community 的一部分。正是因為有全球各地的開發(fā)者參與貢獻(xiàn),比如美國的 Square、Azure、Zoom、法國的 Dailymotion、日本的 PayPay 等等,給我們提意見、提需求,提 PR 貢獻(xiàn)代碼,一起打磨、一起成就了今天的 TiDB ,組成了現(xiàn)在龐大的 TiDB 開源社區(qū)。
在 4.0 發(fā)布的時候,我們也做了一個詞云,看了看 TiDB 代碼貢獻(xiàn)者所屬的組織,并且按照組織的貢獻(xiàn)程度,畫了一張圖出來,我們才發(fā)現(xiàn)原來有這么多的組織,在 TiDB Community 中持續(xù)貢獻(xiàn):
同時,經(jīng)常會讓我感到驚喜的是社區(qū)的創(chuàng)造性。比如 TiDB Contributor 劉東坡把貢獻(xiàn)排名前 100 的 Contributor 做了可視化的展示:
https://rustin-liu.github.io/Ti2020/這位小伙伴也在本屆 TiDB DevCon 的開發(fā)者社區(qū)專題論壇中分享了參與社區(qū)的心路歷程,我們也希望更多人能夠像這位小伙伴一樣,在 TiDB 社區(qū)中有所收獲,更在貢獻(xiàn)中感受到樂趣&歸屬感。
另外,不管你是誰,只要你想?yún)⑴c TiDB 的打造或者想使用 TiDB,我們都為你準(zhǔn)備好了:
-
如果你在用 TiDB 過程中,遇到任何問題,你都可以去 AskTUG(https://asktug.com)提問,有超過 2700 個會員,他們都在 AskTUG 中分享實戰(zhàn)經(jīng)驗或者踩過的坑,或許你遇到的問題,在這里搜索一下就能得到解答。
-
如果你還想進(jìn)一步再深入的學(xué)習(xí) TiDB,我們也推出了 PingCAP University(https://university.pingcap.com)線上及線下的培訓(xùn)課程。最后大家也可以驗證一下自己的學(xué)習(xí)效果,也可以去參加認(rèn)證考試(如下圖所示)。
在過去的幾個月里,TiDB 社區(qū)伙伴們也做了一些比較瘋狂的事情。比如,我們花了 48 小時寫了一本書《TiDB 4.0 in Action》(閱讀地址:book.tidb.io)。或許乍一聽覺得很神奇,48 小時怎么可能能寫一本書呢?但大家去看一下作者的數(shù)量就能理解了,這本書有 100 多位作者,每個人寫一小節(jié),就是 100 小節(jié),48 小時輕松搞定。當(dāng)然這個事情也不是輕松促成的,它的實現(xiàn)其實是整個社區(qū)長時間的知識&精神力量的積累。
如果看到這里,你雄心勃勃,還想再精進(jìn)一步,想寫一個屬于自己的分布式數(shù)據(jù)庫。沒問題,我們還準(zhǔn)備了 Talent Plan 課程,可以根據(jù)課程規(guī)劃一步步 build 一個分布式數(shù)據(jù)庫的計算層、存儲層,這門課程還會有來自全球各地的導(dǎo)師幫你 Review 代碼和作業(yè),目前暫時支持中文和英文。
Bonus: Chaos Mesh?!
最后聊一聊我們在混沌工程方面的實踐,在軟件領(lǐng)域有一個常識是,“現(xiàn)實中所有可以預(yù)見的故障,最后都必然會發(fā)生”,系統(tǒng)的復(fù)雜性是無法逃避的、必須要面對的,也是我們必須要去解決的。在今天,整個系統(tǒng)的復(fù)雜性已經(jīng)不僅僅局限于數(shù)據(jù)庫了,而是延展到了整個業(yè)務(wù)的全鏈路,最終落腳在系統(tǒng)為用戶提供的服務(wù)質(zhì)量。
如上圖所示,Amazon 和 Netflix 兩家公司的微服務(wù)可視化之后的樣子,不能簡單用蜘蛛網(wǎng)來比喻,它實際上比蜘蛛網(wǎng)還要復(fù)雜得多。所以我們需要一套系統(tǒng),去模擬現(xiàn)實中所有可能發(fā)生的故障,并且讓這個故障不斷的發(fā)生,未雨綢繆地增強(qiáng)系統(tǒng)的魯棒性。
因此,我們在開發(fā) TiDB 的整個過程中,構(gòu)建了一套系統(tǒng) Chaos Mesh。它會做什么?
比如,它可以模擬磁盤壞掉。在我們的測試環(huán)境中,磁盤每分鐘壞一次,網(wǎng)絡(luò)每分鐘都會產(chǎn)生隔離。盡管這種情況在現(xiàn)實世界中極少出現(xiàn),但是一旦出現(xiàn)就會形成災(zāi)難性的故障。而模擬磁盤壞掉只是 Chaos Mesh 可以提供的眾多功能之一。
Chaos Mesh 將幫助大家在業(yè)務(wù)的全鏈路上,做完整的、所有可能出現(xiàn)的故障測試。以往大家憑經(jīng)驗所說的 “有 99.99% 或者有 99.999% 的幾率系統(tǒng)能夠正常運(yùn)行”,都包含了一些“運(yùn)氣”成分在其中。因為,我們用 Chaos Mesh 去測試了各種故障情況,會發(fā)現(xiàn)某個系統(tǒng)要做到“99.99% 或者 99.999% 正常運(yùn)行”是非常非常少見的、極其困難的一件事。在 TiDB 的開發(fā)過程中,我們同步使用了 Chaos Mesh 來測試 TiDB,TiDB 4.0 在測試用戶中的反饋非常好,一部分也要?dú)w功于 Chaos Mesh “瘋狂摧殘式”的測試。當(dāng)然我們也非常歡迎大家使用 Chaos Mesh 測試和打磨自己的系統(tǒng)。
結(jié)語
實際上,TiDB 發(fā)展到今天,已經(jīng)不僅僅是一個數(shù)據(jù)庫產(chǎn)品,它已經(jīng)是很多系統(tǒng)的基石,作為一個基礎(chǔ)設(shè)施的存在。大家在使用之前,也可以參考其他人的成熟經(jīng)驗或者解決方案,TiDB DevCon 2020 上有 80+ TiDB 用戶&合作伙伴分享一手實踐經(jīng)驗,不管你來自哪個行業(yè),比如金融、電商、物流、新零售、出行、電信、醫(yī)療、能源、制造業(yè)、高科技、教育、視頻、資訊;還是應(yīng)用在不同的使用場景,比如實時分析、數(shù)據(jù)匯聚、Data Mart,元數(shù)據(jù)存儲、日志審計、日志統(tǒng)計分析,還有 IM 等等。所有你想看了解的行業(yè)參考,你想了解的場景實踐,我們已經(jīng)準(zhǔn)備好了。后續(xù) TiDB DevCon 2020 部分視頻&文字回顧將陸續(xù)整理輸出,敬請期待。
感謝社區(qū)伙伴們的熱情參與和支持,未來我們繼續(xù)攜手同行,走向開源世界的星辰大海!關(guān)注 PingCAP 微信公眾號(pingcap2015),在后臺回復(fù)“DevCon2020”獲取部分經(jīng)過講師授權(quán)后整理的 PPT 資料。
TiDB DevCon 是 PingCAP 團(tuán)隊面向 TiDB 社區(qū)推出的技術(shù)會議,每年在北京舉辦。本屆 DevCon 在 6 月 6 ~ 7 日舉辦,以線上直播的方式,為大家展示 TiDB 近一年的產(chǎn)品技術(shù)蛻變,分享最新的海內(nèi)外生態(tài)進(jìn)展,并邀請了來自全球的 80+ 位開發(fā)者、用戶及合作伙伴,分享他們的實戰(zhàn)經(jīng)驗和開源思考,覆蓋金融、制造業(yè)、電信、電商、物流、能源、快消、新零售、云計算等多個領(lǐng)域。
本文內(nèi)容以 PingCAP 官網(wǎng)博客欄為準(zhǔn),歡迎點擊【這里】查看原文。
若對 TiDB 的使用有所疑問,也可以登錄 Asktug.com 搜索或發(fā)帖交流~
總結(jié)
以上是生活随笔為你收集整理的刘奇:当今一切都要更实时、更弹性、更简单,TiDB 就是这样的基础设施 | TiDB DevCon 2020的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。