技術破局:分布式資料庫創赢未來
2010年,立項伊始,OceanBase 就堅信分布式資料庫代表未來,作為原生分布式資料庫的實踐者、信仰者,曆經十年的艱難探索,已成長為全球原生分布式資料庫的技術引領者。
今天的資料庫形态仍以集中資料庫為主,随着資料量不斷增大,AI、IOT、5G 技術快速革新發展,這個比例一定會倒置,集中資料庫為輔,分布式資料庫成為主流。
聽起來似乎匪夷所思,但螞蟻集團的實戰案例告訴我們,這并非天方夜譚。
2014年,螞蟻集團支付寶核心資料庫接入 OceanBase 時,實作了 RPO 等于 0,引入這項技術初期,所有 DBA 和業務方并不了解,都認為我們做的資料庫沒有需求,沒有 RPO 等于 0 的需求。因為以前所有的資料庫都做不到 RPO 等于 0。但是,等 OceanBase 真正實作了 RPO 等于 0,并且在雙十一核心場景得到驗證的時候,獲得了集團上下的高度認可,OceanBase 技術也很快塑造了阿裡、螞蟻以及整個資料庫行業的一項新标準。
相信 OceanBase 其他的分布式技術創新,也會同 RPO 等于 0 的創新一樣,隻要在行業标杆客戶中得到應用,便會快速推進到行業,進而普及到整個業界。尋其本質,是因為分布式技術作為雲時代的技術,指引未來,可以享受到高可用、可擴充、低成本、高性能等技術紅利,能夠無縫相容傳統的資料庫。從 0 到 1 很難,但隻要突破某個臨界點,從 1 到 N、 10 到 N 其實比想象的快很多,這是從曆史中得出的經驗。
獨辟蹊徑:100%自主研發之路
與國内其他分布式資料庫不同,OceanBase 一直堅持做 100% 自主研發原生分布式資料庫。選擇自主研發,并非我們預見到今天的國産化需求,而是相信隻有 100% 自主研發,才能解決原生分布式企業級資料庫的根本需求。
做資料庫有兩條道路,一是基于開源資料庫做二次開發,初始成本較低,可以快速做出可用的資料庫,但這樣的資料庫不通用,僅在某些場景可用,且把複雜性留給業務。
二是做真正的原生分布式資料庫,道路漫漫且艱難,OceanBase 走了10年,才取得今日的小成績。基于自研,另一裨益,就是鍛煉了研發團隊,OceanBase 平均研齡超過6.5歲,可以快速滿足使用者需求,深層次問題解決能力在業界領先。
2010年開始,OceanBase 在阿裡、螞蟻場景落地;2010-2014年期間,在阿裡電商平台上線了幾百個業務;2014-2017年,在螞蟻集團全面上線交易和賬務系統,成為螞蟻集團最核心的資料庫。
阿裡集團是全國乃至全球資料業務場景最豐富、訂單量最大的一個場景,這個場景異常難得,催生了諸多資料庫項目的創新。而阿裡和螞蟻選擇 OceanBase,也恰恰因為 OceanBase 通過創新分布式技術解決了 RPO 的問題,真正做到RPO 等于 0 ,這個特性對金融行業和資料庫行業有着裡程碑式的意義。
2017年,OceanBase 走出阿裡,服務外部客戶。2019年,OceanBase 在 TPC-C 性能測試以 6088 萬 tpmC 的成績登頂榜首,在九年多一直被國外資料庫産品占據的榜單上留下了中國資料庫的印記。在 2020 年,OceanBase 又以 7.07 億 tpmC 的成績再次超越自我登頂榜首。2020 年 6 月份,螞蟻集團正式宣布 OceanBase 進行獨立公司化運作,開始在商業化道路上加速奔跑。
回溯過往十年多時間的發展,OceanBase 團隊成員遵循初心,始終堅持以業務為驅動、以技術創新為宗旨的完全自研之路。
以簡馭繁:分布式理念制勝之道
現在市場上有很多分庫分表的資料庫也被稱為分布式資料庫,那麼,原生分布式資料庫和分庫分表資料庫到底有何不同?
OceanBase 最大的不同是诠釋了原生分布式的理念——把複雜留給自己,把簡單留給業務、開發者和運維人員。
集中資料庫的确好用,但有兩大問題,一是成本比較高,依賴高可靠硬體,無法按需擴充容量。網際網路簡單正常的做法,是基于開源資料庫做分庫分表,雖部分解決了擴充問題,但卻帶來一緻性問題,一緻性導緻運維複雜性,把運維的複雜性帶給開發人員。在傳統行業中,IT 能力并非核心競争力,這些行業希望能用更簡單的技術,把複雜留給基礎設施。
螞蟻集團有上萬台伺服器,如果不用原生分布式資料庫 OceanBase,而是使用分庫分表方案,隻要其中一台機器出現故障,就無法保證一緻性,需要通過各種運維平台、運維工具或者是讓 DBA 直接處理,這是一個不可持續的方式。
OceanBase 的理念是原生分布式資料庫,底層通過分布式技術實作 RPO 等于0,上層以 SQL 的方式提供給客戶,保證完整的 ACID。
OceanBase 兩度參加 TPC-C 測試,都取得不俗的成績,跑 TPC-C 測試最大的意義不是跑出多高的性能,而是證明了一點——基于分布式架構的技術能夠實作跟集中式資料庫完全對标的ACID 能力,能夠做到和集中式資料庫一樣的功能。這其實證明的是一個不可逆的大趨勢,那就是未來分布式資料庫必然會超越代集中式資料庫。
從内部打磨到外部使用
做資料庫有一個難點,即資料庫穩定性問題。資料庫是系統工程,意味着代碼量特别大,會存在很多 BUG。資料庫可以通過測試來解決資料庫 BUG,但是這樣遠遠不夠,還需要核心應用場景的檢驗。
OceanBase 背靠螞蟻集團,立足于雙十一大促場景,能夠享受到螞蟻集團技術發展的紅利,經過數年的打磨已經應用在螞蟻集團會員、交易、賬戶、網商銀行等核心業務中100%的流量。螞蟻集團往往會出于支援 OceanBase 甘願當小白鼠,在集團内部盡早使用,将所有的坑踩一遍,團隊快速版本疊代,打磨核心功能,保證穩定性。
經過2年多時間的孕育,目前OceanBase 收獲了諸多關鍵客戶。在今年9月,OceanBase 在工商銀行對公理财業務系統上線,挑戰巨大,使用到了 OceanBase 兩地三中心的高可用容災能力。此外,OceanBase 已經在建設銀行、南京銀行、人保健康險、西安銀行、天津銀行、蘇州銀行、東莞銀行、常熟農商行、廣東農信、中國人保、招商證券、中石化、深圳公積金、山東移動、浙江移動等衆多行業機構上線。
三維一體:企業級架構設計
OceanBase 的定位是做一款通用的企業級分布式資料庫。分布式資料庫是透明可擴充的,服務的場景多種多樣,包括傳統企業,如金融、政府、營運商、公共事業、電力、能源等關系到國計民生的行業。這樣的行業對資料庫的要求,首先是穩定可靠;其次才是高性能、高可控、自主創新等。
OceanBase 和技術關鍵點主要有3個:一是原生分布式技術,通過高可用、透明、先進性等,讓更多企業能夠享受到分布式的技術紅利。二是企業級資料庫,作為服務企業場景的資料庫,OceanBase 的底層引擎能夠同時支援簡單查詢和複雜查詢混合的引擎。三是面向雲時代創新,OceanBase 做企業級雲原生資料庫,支援更多混合負載的場景,提供更好的擴充性。
OceanBase 的産品理念是一體化的設計,提供 Oracle 和 MySQL 兩種相容模式。同時,一套 HTAP 引擎同時支援 TP 和 AP 業務。采用的是透明可擴充的分布式架構,原生支援分布式事務,全局強一緻,讓使用者使用簡單。基于Paxos + 資料同步的靈活的容災架構,支援最進階别容災模式。同時具備靈活的部署模式,無縫适配雲化架構和經典架構。
2020年9月雲栖大會上,OceanBase 2.2版本正式釋出。2.2版本的重要革新在于其相容能力:提升文法和行為相容及資料安全功能,并優化混合負載引擎,并進一步提升靈活性,能夠支援多種容災模式。同時,OceanBase 積極擁抱産業生态,目前已經與更多主流晶片/作業系統完成适配。