天天看點

OceanBase CTO楊傳輝:放手去幹,這行沒有35歲危機

近日,OceanBase CTO 楊傳輝做客 CSDN 《開談:中國開源資料庫新格局》欄目,中達金橋資深資料庫專家盧東明對話楊傳輝等中國領先資料庫廠商從業者。對話開場,楊傳輝給 OceanBase 打了 3 個标簽:分布式、成本效益、HTAP,并由此展開對中國資料庫新格局、未來趨勢、職業發展等多個話題的探讨。

以下為對話精華 4000 餘字實錄。

OceanBase CTO楊傳輝:放手去幹,這行沒有35歲危機

不管是全球的 DB-Engines 排行榜,還是中國的資料庫領域排行榜,近年來,大家都非常關注中國資料庫的發展情況。據統計,2022 年 1 月,中國資料庫大約有 190 多家,到了 12 月,達到了 249 家,并且還在往上漲。關于中國資料庫市場是否正在處在百花齊放,百家争鳴的階段?我有一些自己的看法。

OceanBase 從 2010 年開始研發,當時中國基本沒有多少人從事資料庫研發,也沒有幾家資料庫研發公司。是以,當我現在聽到已經有幾百家資料庫公司,我是非常高興的。因為不管是招聘人才,還是人才跳槽都更容易了,資料庫從業者的發展空間更加廣闊,這是一件有利于整個行業發展的好事情。

百花齊放,百家争鳴可能會有兩個走向:一是“低水準重複建設”,二是“高水準競争”。

雖然現在看起來有這麼多家資料庫廠商,但不同技術路線的其實沒有多少家,每條技術路線都隻有幾家領頭企業。在不同技術路線上資料庫廠商越多越好,大家可以一起探索,高水準競争。反之,如果在一條技術路線上有過多廠商競争,這就很容易出現低水準的重複建設。重複建設過度的情況下,市場的商業化會進行整合,像美國的資料庫小廠商也有很多,但真正做大的隻有 Oracle、DB2、MySQL 等幾家。

OceanBase CTO楊傳輝:放手去幹,這行沒有35歲危機

2000 年之後,分布式資料庫開始發展,“分布式”這個詞在市場上剛推開時,大家在選資料庫時隻有廠之分,沒有類型之分。無論是 Oracle 還是 IBM DB2,它們都是關系型資料庫,但近年品類突然暴增,比如圖資料庫、時序資料庫、記憶體資料庫。這些品類為什麼會出現?存在的意義是什麼?值得我們思考。

關系型資料庫所包含的 SQL 引擎、SQL 語言、交易處理、關系模型,其實已經基本可以滿足使用者的需求。但傳統的經典 SQL 資料庫,自身的設計是一個相對比較封閉的體系,這就導緻今天的商業資料庫在發展過程中經曆了“分久必合,合久必分”。

一開始,用一體化架構來解決所有問題。像 Oracle 什麼都能做,不管是 TP 還是 AP 還是時序,即 One size fits all。

但随着需求的發展,大家覺得 One size fits all 解決不了很多其他問題,是以提出了一個新理念——One size does not fit all,認為每一個專用的場景,都需要有一個專門的資料庫。

發展到最後,其實大家意識到這兩種說法都存在一些問題,最終應該是 One size a bunch,即一類資料庫不是隻解決某一個專用的場景,也不是解決所有的場景,而是解決一批的場景。

是以,今天 OceanBase 的 HTAP,并不是說什麼場景都能應用,而是某些 TP、AP 的交集部分,OceanBase 可以做到最好。這個場景比原來 TP、AP 的範圍更大,但不包含全部。以後預計會有越來越多的産品繼續 One size a bunch。

OceanBase CTO楊傳輝:放手去幹,這行沒有35歲危機

甲方的 CIO/CTO 或其他角色在選型資料庫時,面對品類衆多、品牌衆多的資料庫産品常常很難做出抉擇。每家廠商似乎都在說自己的資料庫能解決絕大部份的問題,再外加某個元件就能完全解決。

作為乙方,其實我們更需要站在甲方的角度思考問題。以 Oracle 為例,Oracle 是做得很好的資料庫産品,能在大部分場景滿足使用者需求,是以全球有很多使用者都會優先選擇它。OceanBase 有一個 Oracle 相容的功能,這個功能比 MySQL 相容難一個量級往上,但我們仍然做到了其高相容,覆寫了其 95% 以上的常見功能。

抛開資料庫種類來看選型,資料庫的标準定義是資料庫管理系統,是以資料庫本質上解決的還是基本的資料管理、存儲、事務處理等問題。

對于 CIO/CTO 來說,選型資料庫時最重要的就是穩定性。資料庫是存資料的,越接近交易的系統,對穩定性的要求越高;越往外圍的,可以更“百花齊放”一點。這裡的穩定性涉及到很多:資料庫有沒有經過場景的打磨?資料庫的延遲,抖動等一系列難題?資料會不會丢?丢資料時有沒有備案?這些非常重要。

OceanBase 在承載“雙 11”期間遇到過很多很難的問題,我們之是以能在前期就解決,不讓問題在交易中出現,就是因為 OceanBase 做了很多這方面的預防性設計。這就像是 0 和 1 的問題,如果資料庫沒有穩定性,其他的都免談。

其次,資料庫核心能力。資料庫包括不同的種類,有不同的應用場景,但核心能力都聚焦在高可用、可擴充、ACID、存儲等等。資料庫要滿足功能的需求,再是易用性,這是第一個前提。在滿足功能需求和易用性的前提下,再看成本效益。

如果功能滿足不了或者不好用,談成本效益沒有意義。資料庫是一個長期投資,一旦選擇再更換是很難的,是以大家都會傾向于選成本效益更高,使用更容易的産品。

最後,廠商的服務能力。智能資料庫、無人運維等詞近些年大家都在提,但目前其實都沒有做得很好。任何資料庫目前還是都需要人來支援,通俗點說即遇到問題需要有兜底,這時傳遞、生态、社群工具等各闆塊的及時響應非常重要。

OceanBase CTO楊傳輝:放手去幹,這行沒有35歲危機

目前主要有兩類資料庫公司——獨立的資料庫廠商、基于雲的資料庫廠商。

經過多年的發展,資料庫的研發模式發生了重要更新。以前的 Oracle、SAP 等傳統軟體時代,是 License 模式,不管是版本更新、回報使用者需求,還是産品傳播的效率都比較低。而基于開源,這種社群協同的高效模式,疊代起來會非常快。對于一個獨立的資料庫廠商而言,開源是必然選,而不是一個可選項。

開源不是一個商業模式,因為很多時候是要利他的。傳統模式是廠商做好蛋糕,再去配置設定蛋糕;開源模式是大家一起來把蛋糕做大,每個人分一小塊,在大蛋糕裡切小蛋糕,本質上是新的生産力替代了舊的生産力,效率更高。

在我們認識到開源是必經之路後,就開始堅定地走開源路線。OceanBase 過去是完全的商業軟體,從 2021 年兒童節開源到現在的一年多時間,使用者采用開源的效率要比商業版高很多,并且擴散速度也非常快。

開源可以說是加速生态建設的必然選擇,因為對于資料庫這樣的基礎軟體,其實都是用出來的。沒有人寫的代碼是沒有 bug 的,也沒有人能想到所有東西。在開源社群,每個使用者會以各種形式參與進來,可能是貢獻代碼,可能是貢獻需求,最有價值的使用者給廠商提供的最有價值的東西是場景。就像當年的支付寶,它給 OceanBase 提供的最有價值的東西不是錢,而是支付寶的各種場景。

有同學問到 OceanBase 是否要開源 Oracle 相容代碼?在我看來 OceanBase 可以了解為是兩個産品,一個是相容 MySQL 的産品形态,另一個是相容 Oracle 的産品形态,這兩個産品形态的應用場景差别很大。雖然看起來 MySQL 和 Oracle 都是資料庫,但實際上差距非常大。

網際網路有很多應用場景,在 MySQL 裡,簡單查詢是靠 DBA 去完成的,但是在更多的一些傳統業務上,Oracle、DB2、SQLServer 使用者不僅僅追求 QPS,還有很多複雜的查詢。當簡單和複雜的查詢在一個庫解決時,複雜查詢不能影響簡單查詢,這也是我認為 Oracle 也是 HTAP 資料庫的主要原因。而且在 OceanBase 的實際場景裡,我們發現 HTAP 在中小使用者中的使用是最多的。

開發者想要真正參與到社群共建,想要的也是 MySQL 模式,或者 PG 模式、MongoDB 模式,不會是 Oracle 模式,因為 Oracle 對開發者并不友好。這是開發者的需求,不是我們的企業使用者,企業使用者希望免費的不一定是開源的。

從設計架構的角度來看,我們比較開放,開源邏輯也很簡單,MySQL和Oracle模式是兩個産品形态,底層共享分布式的能力,包括事務、存儲、高可用的能力。但是 Oracle 和 MySQL 的功能有不同,總結來說:MySQL的功能全部開源,而 Oracle 的功能不開源,OceanBase 亦是如此,MySQL 模式開源,Oracle 模式不開源。

OceanBase CTO楊傳輝:放手去幹,這行沒有35歲危機

很多年前,中國真正從事資料庫行業的工程師很少,但現在有了一個躍升,這個趨勢很好。OceanBase 2010 年成立時沒有這方面的人才,都是一些應屆生或者其他領域的人員應聘。中國的研發當時也比美國少很多,是以我們早期核心更看重應聘人員寫代碼的潛力。

Oracle 和 SQLServer 裡有一些技術人員,比如資源隔離、HTAP 方面,經過幾十年積累的這些人才是妥妥的稀缺人才。OceanBase 的核心優勢是做資料庫比較早,是以美國包括 Oracle 的很多核心人才回國都選擇加入了 OceanBase,使得我們在做複雜查詢優化等 HTAP 功能得心應手。

OceanBase 最早的一批人都是分布式的背景,這批人基本上是中國最強的,也是最早探索的一波人。我們的核心人員大部分都是當時我們培養的應屆生,還有一部分就是從最頂尖的公司挖過來的,這些人才能讓我們在技術架構少走很多彎路。

近兩年出現了比較樂觀的一件事:以前在高校沒有人學資料庫,但這兩年開始出現了。這其實是蠻好的一件事情,并且我也認為這個行業是很好的行業、很好的工作,對于一個做技術軟體的程式員來說,如果會寫資料庫,就可以寫所有的軟體。

此外,資料庫領域從業者的職業生涯往往比較長,是一個非常“老中醫”的行業,對從業者和開發者都十分友好,變動往往不會太大。這一行沒有 35 和 55 的年齡差異,技術就是永遠的競争力。我也呼籲更多的人加入這個行業,資料庫是一個有壁壘的工種,未來會越來越重要,人才也會更加稀缺。

OceanBase CTO楊傳輝:放手去幹,這行沒有35歲危機

中國現在的資料庫市場接近 300 個品牌,而市場占有率仍然有限。但在我看來,五年後私有化部署的資料庫,中國品牌的市場佔有率應該能達到裡程碑式的 50%。但能否占據 50% 的市場佔有率,核心在于有沒有平替的方案,其難點就在于  HTAP,既要有簡單查詢又要有複雜查詢,還要保證資料強一緻。如果沒有平替的方案,可能十年都不會超過 50%。

目前,僅僅是 OceanBase 就在很多行業做了傳統資料庫的平替,包括銀行核心系統、最大的保險公司、中國移動、社保系統等這些大家認為很難平替的瓶頸被打破了。

比如,我們在營運商已經成功上線了好幾個省,攻破第一家營運商花費了一年半;在保險行業也平替了千萬條傳統 Oracle 的應用層代碼,第一家超大型保險公司全核心替換大約花費了一年時間。當廠商積累了一定的經驗,後面幫助客戶平替的速度會越來越快。

今天,不僅是品牌多,中國資料庫的類型也很多,但就目前來說更有前景還是面向雲設計的資料庫。并且面向多雲設計的資料庫,可以說是一個必然的發展趨勢。

偏融合型的資料庫是未來的主要發展方向。雖然站在使用者角度是越友善越好,但是站在技術角度沒辦法讓使用者完全友善,是以廠商在努力做結合,可能是一部分 TP 和 AP 融合在一起,甚至可能是單機和分布式融合在一起,把這些優勢組合在一起,能适應更多場景。

這樣一來,以前使用者可能要使用十個資料庫才能滿足全部的需求,現在隻要使用兩三個資料庫即可,會友善很多。是以,偏融合型的資料庫必然會越來越受歡迎。

對于資料庫從業者來說,找工作不一定要和雲資料庫、融合型資料庫完全挂鈎。因為雖然資料庫類型不同,但很多本質的技術是相通的,是以對于剛畢業的學生來說,更應該看重在哪能學到比較核心的技術,再将這些融會貫通,就會有很強的分辨能力和競争力!

參考閱讀:

  • 從 ChatGPT 被擠崩,淺談如何做入口限流?
  • 十億人都在用的健康碼,運維體系是怎麼設計的?
  • vivo 低代碼平台【後羿】的探索與實踐
  • 分布式系統關鍵路徑延遲分析實踐
  • 分布式資料庫排序及優化

本文由高可用架構轉載。技術原創及架構實踐文章,歡迎通過公衆号菜單「聯系我們」進行投稿