雲原生之後,資料庫的下一個方向是什麼?

語言: CN / TW / HK

在去年的 DevCon上,PingCAP 聯合創始人兼 CTO 黃東旭提出了一個猜想:“資料庫作為一個軟體形態本身會消亡,而資料庫的平臺化、微服務化會取代原來的資料庫軟體形式。”如今,這個猜想正在得到證實——幾乎所有的資料庫廠商,都在雲上提供服務,並且還有不少資料庫正在強化其雲原生屬性。

那麼,雲原生之後,資料庫的下一步是什麼?12 月 1 日,在 PingCAP DevCon 2022 大會上,黃東旭給出了答案:Serverless。

過去一年,PingCAP 一直在忙著把資料庫技術變成資料庫雲服務,最後誕生了 TiDB Cloud。而今年開始,Serverless 則成為了 PingcCAP 的重點技術方向。

業內普遍認為,Serverless 最早可以追溯到 AWS Lambda 等無伺服器雲函式的引入,它允許開發人員通過簡單的 API 呼叫來啟動和停止應用程式。開發人員無需為其配置任何硬體即可執行程式碼。之後,這個概念被擴充套件到資料庫領域。

Serverless,往往會被翻譯為“無伺服器”,但黃東旭認為,應該稱為之“伺服器無感化”。那麼在軟體開發這一更高的維度來看,則是“技術無感化”。他表示,Serverless 的核心,就是通過更高層次的抽象,把資料庫的複雜性一步步降低,如此一來,開發者對具體的技術幾乎不需要感知,就能把資料庫用起來。

為了更好地理解 Serverless 與開發效率之間的關係,黃東旭引入了“抽象”的概念。

二十年前,如果要建一個網站,開發者除了要寫程式碼,還要把大量時間花在與業務無關的事情上,比如買伺服器、租機房、網路租用等,抽象程度很低,迭代速度很慢。
 
而後,公有云的出現把硬體、部署、網路等資料中心的複雜性抽象掉了,變成了虛擬機器。開發一個應用,只需要在公有云上開個賬號,把應用部署上去,按月給錢就行了。這比起自己去折騰資料中心來說,迭代速度又快了一步。
 
接下來,雲原生的概念出現了。原來的計算單元是 VM 虛擬機器,在雲原生的世界裡,計算單元進一步被抽象成了一個 Container。Container 是比 VM 虛擬機器更高層次的抽象。在虛擬機器時代,你依然要考慮 VM 掛了怎麼辦,但在 Container 世界裡,Container 以及底下雲的排程器都不用管,這些都被抽象掉了。這意味著,雲原生軟體的開發迭代速度會比傳統基於 VM 的抽象程度更更快。

 

儘管已經來到雲原生的時代,開發效率得到了前所未有的提升,但黃東旭仍然認為還不夠。他表示,開發效率低下,開發者沒有時間專注于于業務創新,這是阻礙數字化轉型進一步深入的一個重要原因。Inapps 公司的研究支援了這一觀點。“開發人員每天將 41% 的時間花在基礎設施維護上,而不是創新或將新產品推向市場。” 

實際中,這一原因通常會被很多人忽視,但作為一個開發者,黃東旭卻對此深有體會。“當我想要雄心勃勃地開發一個新的應用時,真正開發的時間可能只佔整個時間的 10%-20%。大量時間都花費在買伺服器、部署資料庫、資料的備份恢復、CI/CD 搭建上,而不是在開發應用上面。”

 除了資料架構系統本身的複雜之外,資料庫技術的多點開花也成為了開發者的壓力。

 上大學的時候,老師告訴黃東旭,資料庫這個東西很簡單,你只要會寫 SQL 就可以了。但工作以後,黃東旭發現, 除了SQL ,還有 OLTP、OLAP、時序資料庫、圖資料庫以及各種各樣稀奇古怪的資料庫,且每一種資料庫都有著自己複雜的概念與運維,想要用好它們,得學習一大堆東西。

 “業界有一句特別真實的笑話:別釋出了,別做新的東西了,我真的學不動了······這些複雜的概念現在都沒有被隱藏起來,反而全都透傳給了開發者。”黃東旭說:“我一直想把資料庫帶回到我上大學的那個時候,那時候多簡單。”

 這正是 PingCAP 在做的事:Serverless。這也是 PingCAP 所認為的,雲原生之後,資料庫的下一個方向。一個月前, PingCAP 釋出了 TiDB 的 Serverless 雲服務—— TiDB Cloud Serverless Tier 。

 據瞭解,TiDB Cloud Serverless Tier 具備四大特性:

  •  一是資料庫核心穩定,可以在雲上提供很好的彈性、自動 Failover、SQL 等非常硬核的基礎能力。
  • 二是 HTAP 能夠提供實時的一棧式資料服務。使用者無需關心關心什麼是 OLAP,什麼是 OLTP。一套系統可以支撐所有負載,也不用擔心 OLAP 負載影響 OLTP 的正常服務。
  • 三是 Serverless 部署成本極低,不用關心任何運維的細節。通過程式碼和 open API 就能控制叢集的起停。尤其在處理更復雜或更大系統的時候,Serverless 能顯著減低複雜性。
  • 四是真正地按需計費。Serverless 能夠真正按照資源的消耗量來去計費。對於開發者來說,想用資料庫的時候,召之即來,不用的時候,也不用給錢。任何時候訪問,資料庫都能對外提供服務。

黃東旭表示,設計 TiDB Cloud Serverless Tier 的一個原則就是,充分利用好雲提供的不同服務,比如 Spot Instances、S3、EBS、彈性的 Load Balancer。它對雲上所有的彈性資源都進行了有效的整合以及巧妙的排程,為使用者提供了極致彈性的體驗。“使用者體驗比原來的雲原生資料庫往前跨越了一步,細節更少,抽象程度更高。”

 他還表示,Serverless 架構還能解鎖更多的可能性。“以 TiDB Serverless Tier 底下重度依賴的雲物件儲存服務——S3 為例,A 使用者用 S3,B 使用者也用 S3,資料共享就變得很簡單。但在私有環境下,要先把資料下載,拷貝一份,再上傳,然後才能做分析。如果資料量比較大,這幾乎是難以想象的。而 Serverless 架構從技術層面來說,是能夠做到資料共享的。”

 就當前而言, PingCAP 還只是邁出了 Serverless 路上的第一步。 

關於 Serverless 的未來,PingCAP 副總裁劉松早就暢想過:“下一代應用開發者的程式設計正規化會發生重大的變化,就是因為有了 Serverless 這樣‘技術無感化’的技術。未來所有的雲廠商,包括資料庫廠商都開始進入到了 Serverless 這張門票。最後的一個根本性變化,那就是三五年以後,90% 的應用開發者,都不用關心資料庫是什麼。” 

黃東旭想得更遠。“未來,應用開發者對資料庫的關注點會從資料庫變成 API,甚至在更長遠的的未來,只需要關注 web 前端開發就好。“