導讀
在剛剛結束的 PingCAP 用戶峯會 2023 上,PingCAP 創始人兼 CEO 劉奇分享了題爲“創新湧動於先”的演講, 全面解析了 AI 時代 TiDB 的演進方向,宣佈 TiDB Serverless 正式商用,並攜手用戶代表發佈了面向中國企業級用戶的平凱數據庫 。以下是演講實錄全文,閱讀需約 8 分鐘。
過去一段時間,我拜訪了全球各地的客戶,聆聽他們的挑戰和建議,以及 PingCAP 是如何幫助他們解決挑戰的。 在這個過程中,我們也看到一些新的技術發展趨勢。 當下,AI 技術非常火,到處都是各種各樣的 AI Demo,每家企業都在思考這樣一個問題: AI 到底有沒有可能重塑軟件行業?我的答案是——AI 這次真的要重塑整個軟件行業了 。
AI 重塑軟件行業
作爲一家軟件公司,我們思考的問題直接體感通常有兩個 : 一個是代碼,一個是數據 。
先從代碼說起,大家有沒有意識到, 很多人在過去一段時間不自覺地變成了程序員 。今天,我們向 ChatGPT 提問題,它會給我們一個答案;向它提要求,它會給我們一個結果。比如我們可以讓 ChatGPT 做總結、寫文章,或者讓它生成圖片。大家可以回憶一下,在 AI 時代到來之前,所有這些工作都需要用程序去完成。我們需要用各種各樣的輔助工具,那些東西都需要編程開發 。而今天,我們沒有寫任何一行代碼,只是提了個需求,結果就有了 。以前,這需要很多程序員很長時間努力才能得到一樣的結果。而現在,我們向 AI 發命令、提要求、提問題就能拿到結果,事實上就等於完成了編程工作。現在,自然語言已經成爲最熱門的編程語言。在過去七個月的時間裏,GitHub 上新增代碼中已經有超過 46% 是由 AI 生成的。如果從軟件開發效率的角度看,AI 實際上已經完成差不多一半的人類工作。
再說數據,我們今年一月份發佈了一個 AI 生成 SQL 的產品,叫 Chat2Query(前往 tidbcloud.com 立即註冊體驗),用戶使用 Chat2Query 就不需要再寫 SQL 了,只要用自然語言描述一下希望得到什麼數據,希望做一個什麼分析,SQL 便會自動生成,只要在數據庫裏運行一下,就能得到想要的結果,並且還能用圖表化的形式自動展示出來。
上圖右側是 PingCAP CTO 黃東旭在 GitHub 上的個人數據看板。以前要實現這樣一個數據看板,需要一個前端程序員、需要一個數據分析人員寫 SQL 來分析數據,還需要一個後端程序員部署服務,甚至還需要知道一點雲的知識,理解如何把應用部署在雲上。到了今天,這 變成一件非常簡單的事情,只需十分鐘,一行代碼都不用寫。這是一次巨大的生產力提升, AI 帶來的能力讓數據消費的門檻變得極低 。以前,我們必須是一個 SQL 的專家,才能分析數據。 有人曾經寫過一萬多行的 SQL 來處理一個分析需求 ,這個東 西不是人類能輕易掌握的。如今,這個門檻已經降到人人都有可能做到。這意味着我們只要能夠連接上電腦,能和 AI 交互,能接觸到數據,就可以消費數據。這個數量級可能達到 10 億人。在接下來的幾年裏,由數據消費門檻降低帶來的數據消費人數的增加,數據消費頻次的增長,將使數據呈 10-100 倍規模的增長,這是一個遠超我們預期的增速。
AI時代,我們需要怎樣的數據庫技術?
以上改變,將給數據庫帶來巨大的挑戰, 數據消費的門檻降到人人可用的程度,需要每個人都有一個數據庫可用。早在四五年前,我和 CTO 黃東旭探討過一個話題——如果 PingCAP 要爲全世界所有開發者提供一個免費的數據庫,那這個數據庫的架構應該是什麼樣?
我們希望這個數據庫能夠做到 實時在線 ,隨時都可以訪問,隨時都可以用;我們也希望它是一個 開放的生態 ,因爲我們不僅僅有存在數據庫裏面的數據,還有很多存在其他地方的數據,我們需要有一個生態能夠和所有數據消費端做更好的對接。
後來,我們形成了一個結論,起碼它應該是個雲原生的架構。如果不是雲原生的架構,我們就沒有辦法去應對各種各樣彈性的需求;今天,一個用戶相對容易預測,那爲全球所有開發者都提供一個免費的數據庫,就意味着我們會有數千萬甚至數億的用戶,這個數據庫怎麼才能做得到?它需要 很強的數據整合能力 ;其次,因爲不同用戶的需求是不一樣的,數據量也不同,我們需要它有 非常強的彈性擴展能力 。
過去這兩年的變化特別快,大家感知最直觀的可能是宏觀經濟變化很快,其實除此之外,AI 技術的進步速度也非常快。從 ChatGPT 在去年 11 月底推出,到今天才過去短短八個月的時間。這八個月中已經創造了無數新的紀錄,包括一個新的項目在 GitHub 上面獲得 Star 的數據、ChatGPT 用戶增長的速度等等。
大家在面對大量新技術的時候,都做出了最直觀的選擇,那就是 擁抱先進性 。過去一段時間我在與美國、日本的客戶交流時,最直接的感受是每個人都在討論兩個方向,一個是成本,另一個是效率。在當前經濟環境下,這幾乎成了所有人的共同選擇。
客戶的關注點就是 TiDB 的焦點
如果仔細觀察 TiDB 發展的軌跡,你就會發現用戶對數據庫的關注點,其實和 TiDB 實際解決的問題是高度一致的。 TiDB 在穩定性、性能、高可用性、易用性、工具生態的提升等方面付出了巨大努力。但我們認爲這件事光努力還不夠,我們還需要有一個非常好的演進策略以及分層的架構設計 。
在內部,我們有一個說法叫做 API First ,各個模塊之間優先設計 API(接下來我們也會推出更多基於 Open API 規範的 API 測試),有了 API 之後系統就很容易被其他各種各樣的業務系統集成。舉個例子,各大型用戶基於 TiDB 都有自己公司內部的運維平臺,通過我們提供的 API 能更好地融合到客戶內部的平臺裏。在日本我和一個客戶交流的時候,對方專門提到過這一點。過去他們需要花幾天時間才能完成新版本的集成,但有 API 之後只要花幾分鐘就能做到。
TiDB 整個系統除了模塊化的切分, 也做了很好的縱向切割 ,從上到下分成三層。比如 Chat2Query 在最上面一層,這層會更關注整個系統的交互性、易用性,如何讓系統更加自動化、更加智能;在 SQL 層主要關注如何提升它的穩定性,讓它變得更加智能。比如 TiDB 的優化器如何更智能地選擇,到底使用行存還是列存,還是讓行列同時使用;最下面是內核層,所有人對此的關注點都一樣,就是高可用、高性能。
**在內核層,**TiDB 的存儲引擎使用了一個持續升級的策略——部署一代、研發一代、預研一代 。今天我們聽到的所有關於 TiDB 的討論,其實都是基於部署一代的體感,不少用戶還使用着 TiDB 3.0、4.0,而這已經是四五年前的版本了。當然我們也希望用戶能更快升級到最新版本,享受到新版本帶來的優勢,每一個新版本都會帶來巨大的性能和穩定性提升。7.0 版本發佈的實驗特性 Partitioned Raft KV 就帶來了巨大的性能提升。前面預測未來幾年數據會擴大 10 倍,部分領域會擴大 100 倍,在如此大的數據規模下面我們的數據庫能力是不是也能同步擴大 10 倍、100 倍?這是 Partitioned Raft KV 解決的問題。我們預研一代的存儲引擎 Cloud Storage Engine 已經在後面要提到的 TiDB Serverless 中應用,我們的 CTO 黃東旭在後面的演講和 Blog 中都有詳細的解讀。
如果大家留心就會注意到,過去一年時間裏 TiDB 的 Online DDL 的速度提升了 10 倍。設想一下,我們有一個 100TB 的表,加一個索引要多久?對系統資源的消耗又是什麼樣的?除了 DDL,還有一點是 TiDB 的擴縮容的速度在這個引擎裏面提升了 5 倍,這也意味着數據丟失的風險降低 5 倍,業務中斷的風險降低 5 倍。
平替還是躍遷? TiDB產品家族的協同演進
**經過多年發展,**TiDB 目前已經擁有三大產品家族 :一是 面向企業級市場的 TiDB 企業版 ,服務於企業級關鍵業務場景;二是 全託管的 TiDB Cloud ,提供雲端一棧式 HTAP 數據庫服務,已經成爲歐洲、北美、日本、亞太地區衆多數字原生企業的選擇;三是剛剛正式商用的 TiDB Cloud Serverless ,一個 AI Ready 的數據庫,以極 簡架構、極致體驗和超低門檻爲雲上開發者、創業公司提供低至零成本的選擇,較 TiDB 社區版 和 MySQL RDS 更具成本優勢。
TiDB 是如何在多個版本間協同演進的?從上圖可以看出,最上面有一個 TiDB 的 Open Core,TiDB 的所有這些版本都是基於共同的 Root 生長出來,去適應不同的客戶和不同的使用場景。
TiDB 企業版已經擁有很多大行、大型企業的使用經驗,他們有些是從數據庫一體機遷移過來的,在遷移過程中和 TiDB 一起積累了大量的遷移經驗。最近 MySQL 5.7 馬上就要結束產品生命週期(End of Life)了,用戶應該怎麼辦?換一個數據庫平替一下?我們的思路不一樣, 我們希望的是用戶不僅僅是從 MySQL5.7 遷移到 TiDB,更要關注的是他遷移過來之後的獲得的價值到底是什麼 。
我們希望 TiDB 提供的價值是“ 可持續、可擴展、可整合 ”。很多企業都有大量的 MySQL 5.7 ,有成百上千個 instance,管理和維護它們都是非常複雜的事情。TiDB 提供了資源共享的多租戶能力,我們可以把更多的 MySQL 實例整合到一個或者多個 TiDB 集羣,極大提升資源利用率,從而降低硬件成本,同步降低管理集羣的成本。最近我們和一個客戶交流,他們有很多 MySQL 實例,有的利用率不高,就直接降級,從原來的 8C 配置,直接降成 4C 或 2C 配置。過了一段時間,業務這邊有個流量把系統卡死了,再給升級一下。過一段時間流量又下來了,再降級。這就很頭疼,運維和開發的關係就很難處,降本增效的壓力很大。這麼多的 MySQL instance 一旦遷到 TiDB 上面,基於 TiDB 本身的資源共享能力,流量超了幾倍都沒問題,這就可以帶來非常顯著的降本增效。
接下來是 TiDB Cloud,它在過去幾年裏得到了全球客戶的認可,包括歐洲最大的移動出行公司 Bolt,北美新銳的 SaaS 公司 Catalyst,印度最大的電商 Flipkart,日本著名的遊戲公司 CAPCOM 等等。
最後是 TiDB Serverless。四年前,我親手寫下第一行源代碼,探索新一代雲上 Serverless 架構,這是預研一代的成果。非常幸運,預研一代的速度遠遠超出我們的預期,它現在已經正式商用了。 過去幾個月的時間裏,TiDB Serverless beta 版已經擁有超過 1 萬個活躍的集羣 。
Serverless 帶來了什麼樣的價值和能力呢? 第一,低成本零元起步 。TiDB Serverless 完成了 PingCAP 的一個夢想, 我們有能力爲全球每一個開發者提供一個免費的數據庫 。
我想稍微分享一個內部的小故事,最早 TiDB Cloud 的 free tier 成本是現在的 100 多倍。我們內部有個笑話,自己總是調侃說我們是“貴司”。“貴司”是什麼意思呢?TiDB “貴”。因爲比較的對象是 MySQL,作爲一個分佈式系統,TiDB 跟一般的系統比成本肯定高,起步就三個副本,還有計算層、調度層,跟單機比肯定是貴了。很幸運的是, TiDB Serverless 出來之後“貴司”終於不“貴”了。得益於 TiDB Serverless 採用的完全分離式的架構,不僅僅做到了存算分離,我們還做到了 算算分離、存存分離 ,整個系統的彈性非常強,同時它的使用異常簡單,用戶體驗非常好。我們收到大量用戶的讚譽,超出了自己的預期。
大家都希望把自己的時間精力投資在自己的創新上面,投資在自己的業務上面,儘量不想再花時間在數據庫上面,將所有複雜的事情都交給系統,交給 PingCAP 完全自動化處理。過去,大家可能會很好奇,這聽起來好得有點過了,能做到嗎?憑什麼?
TiDB Serverless 爲什麼比社區版更便宜?
今天我們在雲上面使用數據庫或者使用傳統的 RDS,不管是什麼數據庫,本質上都是買一個虛擬機,按照最高的峯值要求配置,不管你的業務現在跑的是什麼量,哪怕 CPU 利用率是 1%,你也必須爲它的 100% 利用率付費。這就是一個傳統的計費模式,永遠爲最高的峯值付費。
TiDB Serverless 的創新在於,你永遠只爲你正在使用的資源付費 。舉個例子,你現在假設有 10 TB 的數據跑在 TiDB Serverless 上面,你沒有任何訪問,那所有的計算節點全部會被自動 shutdown,但你可以在百毫秒的時間內就馬上讓它啓動提供服務。這是一個巨大的進步,用戶僅僅爲使用付費,使用曲線長什麼樣,TiDB 的計費就會長什麼樣。這就是爲什麼 TiDB Serverless 能夠做到比現在的 RDS,比雲上面部署社區版還要便宜 ,只要這個 CPU 的利用率低於 20%,全自動的彈性就會帶來巨大的成本優勢。
今天,不管你使用的是經典的單機數據庫、開源數據庫還是雲端的數據庫,TiDB 都提供了成本更低,擴展性更強,更加省心的選擇。
面向中國企業級用戶,發佈平凱數據庫
TiDB 源於中國,很多關鍵特性也來自於中國複雜的用戶場景,毫無疑問中國市場就是 TiDB 的根據地和大本營。最近我們和很多中國用戶溝通交流,他們給了我們非常多的反饋,很多反饋都非常有價值,特別是對於 TiDB 未來發展的預期和展望。我們發現,TiDB 企業版經過五年的打磨,更多是面向全球用戶提供通用性的功能,但是這些功能對於中國企業級用戶來說還遠遠不夠。
當下,隨着 TiDB 逐步進入中國用戶的核心場景以及 TiDB 規模化進入國產化生態, 面向中國企業級用戶的“平凱數據庫”正式發佈了 。
簡單來說, 平凱數據庫主要包含 TiDB Open Core 的穩定內核以及滿足中國企業用戶的增強級企業功能 。第一,提供國產化需求的企業級功能,包括圖形化管控平臺、全鏈路數據遷移平臺、安全特性等等;第二,提供更完善的國產化生態系統的接入功能,包括國產軟硬件的適配,比如操作系統、服務器等等;第三,提供更完善的國產化企業級服務支持能力。
未來, 我們希望平凱數據庫站在 TiDB LTS(長期支持版)的基礎上能爲中國的客戶帶來更好的價值 ,我們希望這個過程是開放的,會定期在國內各個區域組織用戶討論交流的活動,我們希望大家能一起參與到未來平凱數據庫的建設中來。