螞蟻架構師郭援非:分散式資料庫是金融機構數字化轉型的最佳路徑

OceanBase資料庫發表於2020-09-02
2020年8月26-28日,在中科軟科技舉辦的中國財險科技應用高峰論壇上,螞蟻集團高階解決方案架構師郭援非發表了《OceanBase分散式關聯式資料庫助力保險業務創新》的主題演講,為大家分享了螞蟻集團企業級分散式關聯式資料庫OceanBase的發展歷程、產品價值,以及在保險行業的最佳實踐應用。


以下為演講整理:

 
各位朋友,下午好!
 

支付寶在全球有十幾億使用者,他們可以同時進行可靠、穩定、高效的支付交易,這背後離不開一個重要的秘密武器——OceanBase。今天我很榮幸向大家介紹OceanBase的發展過程、產品特點,以及在保險行業的最佳實踐。


分散式資料庫OceanBase的迭代

OceanBase資料庫立項於2010年,第一個客戶是淘寶收藏夾。2013年,OceanBase開始了對SQL的支援。2014年,OceanBase開始支援網商銀行的所有業務,成為了全球首個應用在金融核心業務系統的分散式關聯式資料庫。從2014年到2016年,支付寶全部的交易系統和核心賬務系統都跑在OceanBase之上。 多年來全世界十幾億使用者在支付寶上發生的所有交易都是由OceanBase來承載,始終穩若磐石。


2017年,我們開始向更多的外部客戶輸出我們的技術,我們幫助南京銀行打造了“鑫雲+”網際網路金融業務核心。OceanBase服務過的這些場景裡既包括新興的網際網路金融核心業務、傳統的金融核心業務,也包括對傳統資料庫的替換、對MySQL的替換,都非常成功。
 
2019年, OceanBase參加了世界資料庫範圍內最權威的TPC-C認證測試,我們取得了6088萬tpmC的成績,是第二名傳統資料庫公司甲骨文的兩倍。TPC-C絕對不是一個簡單的跑分測試,實際上,它是要求被測試的物件必須滿足資料庫的ACID四個事務特徵才能夠進行的測試。
 

2020年,我們又一次參加了TPC-C測試, 達到了7.07億tpmC,跑出了接近去年12倍的成績,再次問鼎TPC-C榜首。今年6月份OceanBase正式獨立成公司,我們立志於成為世界領先的企業級資料技術解決方案提供商。


資料庫形態演進

金融業的核心業務系統,包括保險行業的核心業務系統仍舊大規模使用傳統集中式資料庫。這種方案帶來了兩個問題,一是 集中式資料庫造價非常高,來自於兩方面,一方面是軟體License很貴;另一方面是硬體很貴,因為它必須使用高階硬體,比如IBM的大機、EMC的高階儲存,這些都是非常昂貴的,時間長了再大的企業也很難承受;二是 擴充套件性非常不好,傳統集中式資料庫都是基於共享儲存(shared-storage)的方式做橫向擴充套件,當面臨關鍵業務系統發展需要不斷擴容的時候,這種方案有心無力,難以做有效的支撐。
 


對於上面這種方案業界提了一種補丁方案,十幾年前曾有人提出既然傳統集中式資料庫很貴,那麼在單機開源的基礎上加一個語法相容,這樣就解決了它昂貴的問題。但是發展到今天,我們在金融領域的核心繫統還沒有看到廣泛使用這種方案。原因很簡單,金融業核心系統使用傳統集中式資料庫主要不是因為它們在語法上的完善和優秀,根本原因在於它們的穩定可靠,而這個補丁方案做不到這些,同時這個方案也沒有解決擴充套件性的問題。

 
說到擴充套件性同樣是在十幾年以前,最早在網際網路企業中提出了這麼一種方案,叫做 分庫分表,一個典型的例子就是在多臺單機的MySQL上,用Proxy把MySQL單機整合為MySQL叢集,提供很好的算力。這種方案同樣具有很大的問題,當計算發生在單個MySQL機器內部的時候一切很好,但是一旦使用者的負載跨越MySQL單機邊界的時候,你可能會發現分庫分表系統的表現並不盡如人意。具體來說,在全域性事務、資料強一致性、負載均衡以及複雜SQL方面都不能很好的支援,所以這種方案的使用場景非常受限。截止到今天,在銀行、保險、券商行業的核心業務系統中依然沒有廣泛使用過這種方案。
 

那麼到底是否存在這樣一種資料庫系統,它既可以提供傳統集中式資料庫的高可靠性,又成本可控,同時擴充套件性良好?在這個基礎之上還能夠滿足事務的ACID、具備強一致性、複雜SQL的處理能力? 答案是有,而且可以更好,那就是OceanBase。


OceanBase的三大獨特價值

首先,OceanBase是一款完全自主研發的分散式關聯式資料庫, 程式碼是百分之百自研的,包括SQL引擎、儲存引擎都是我們的工程師自己一行一行程式碼寫出來的。這一點很重要,它意味著當你的資料庫出現問題的時候,我們的工程師不需要求助開源社群,我們自己就可以兜底,這對於要求穩定,要求可靠,要求有可預期性的金融領域的核心業務系統是一個剛需,這一點OceanBase可以充分提供。

第二, OceanBase是全世界唯一一款經過長時間複雜金融場景驗證的原生分散式資料庫。 資料庫其實是一個非常複雜的系統,它的複雜度甚至不亞於作業系統,對它的各種複雜應用場景的測試不是一個簡單的測試程式可以窮盡的。目前,可能唯一有效的方法就是在實踐中找到足夠複雜、足夠多的場景對資料庫進行反覆的使用,使用到最後沒有問題為止大家才會信任它。我們非常高興的告訴大家,OceanBase做到了。
 

第三,OceanBase資料庫是全世界範圍內唯一一款基於普通的X86雲伺服器,在TPC-C領域獲得第一名的原生分散式資料庫。 登頂TPC-C榜單意味著OceanBase不但可以提供世界級的效能,而且可以提供單機資料庫一樣的完整體驗,這一點意味著使用者可以像使用單機資料庫一樣使用OceanBase。


OceanBase核心特性

在OceanBase資料庫中,我們透過“五高一多”的特點定義了分散式資料庫的領先標準。

 

高可用

我們透過Paxos協議和多副本技術,可以提供很好的高可用性,當出現災難的時候我們可以做到RPO=0,RTO<30秒,這完全可以滿足企業的容災需求。同時由於我們使用的是Paxos協議, Paxos協議是支援日誌空洞的,這就帶來一個好處,當在網路出現波動的時候,我們可以給到更好的效能保證。
 
OceanBase的高可用性,是完全在通用X86伺服器和普通硬體上提供出來的,沒有使用任何高階硬體,所以我們的成本會更低一些。
 

高擴充套件

在實際生產系統中單個OceanBase叢集內的伺服器可以達到100臺以上。而且OceanBase具有很好的線性擴充套件比。高擴充套件性還體現在擴容時的自動負載均衡,這意味著當DBA需要擴容的時候,所做的只是增加一臺機器到叢集裡,接下來,我們的OceanBase管理系統會自動的根據系統的負載情況,把資料遷移到新加的機器上。整個擴容縮容過程中,業務沒有感知。
 

高效能

我們採用了很多先進的技術來提高資料庫的效能。比如LSM Tree、無鎖結構、消除磁碟的隨機寫等等,這些技術幫助我們充分使用硬體的能力,再輔以高擴充套件性,我們就可以提供一個世界級效能的OceanBase叢集。
 
在實際的生產系統裡,我們可以在峰值的時候提供6100萬次每秒,單表最大容量可以到3200億行。和高效能伴隨的是低成本,因為我們採用了LSM Tree結構,所以當資料落盤的時候是更有組織的,可以做到1:3的壓縮比。
 

高透明

我們實現了不少關鍵技術,比如全域性一致性快照、全域性索引、自動事務兩階段提交。使用OceanBase資料庫,應用就像使用一臺單機資料庫一樣,不需要做針對分散式資料庫的特別感知和修改。
 

高相容

我們在一套OceanBase叢集上同時為您提供兩套生態,一套是Oracle生態,一套是MySQL生態,有效地降低業務遷移改造的成本。同時我們和國內主流的作業系統、晶片也都做了互認的支援,可以有效滿足技術供應鏈安全的需求。


多租戶

多租戶就是在一個OceanBase叢集上,可以建立很多個租戶,每個租戶對應一個Oracle例項或者是MySQL例項。可以用這個特性實現業務大集中,把以前全國一省一套的傳統集中式資料庫都集中在一個OceanBase資料庫叢集那裡。也可以做不同種類的小業務的集中,之前幾十個小的業務現在都集中在一個OceanBase叢集裡統一管理,這個特性不但可以有效利用叢集資源,更可以有效降低 DBA的運維成本。


OceanBase產品定位與形態

OceanBase可以提供擁有世界級效能的OLTP引擎,同時也提供一個非常優秀的OLAP引擎,這意味著輔以剛才提到的多租戶功能,您可以在一個OceanBase的叢集裡建立不同的例項,有的專門用於交易,有的專門用於分析,當然也可以建立一個大的例項,既做交易又做分析。OceanBase目前真正做到了一套HTAP引擎,它能夠同時支援交易和分析型業務。
 


OceanBase的容災架構,既支援經典的主備容災方式,同時也支援基於Paxos協議的容災方式,我們支援同機房三副本,也支援同城三機房,甚至是兩地三中心,三地五中心,這些不同的容災級別可以完全滿足您的容災訴求。
 

關於部署模式,如果您希望和阿里雲其他的優秀產品,比如和金融級分散式中介軟體SOFA或者物件雲端儲存OSS一起使用,那麼OceanBase可以在阿里雲的專有云上為您輸出。如果您只想使用OceanBase,我們也可以以一個純License的方式提供給您,就在您的伺服器上安裝我們的軟體,一樣可以獲得一個高可用、高擴充套件、高效能的叢集。如果您希望只是購買一個公有云的服務,您可以在阿里雲的公有云上購買一個OceanBase的RDS。這些不同選項可以無縫適配您各種不同的需求。


OceanBase在保險業的實踐

OceanBase在保險業的最佳實踐,一個很好的案例就是人保健康險。 如果不熟悉的朋友可以開啟您的手機支付寶,在上面搜“好醫保”就可以看到人保健康險的產品。人保健康利用了金融級分散式資料庫OceanBase和金融級分散式中介軟體SOFAStack解決了高併發保單處理能力速度慢的問題,目前每日平均出單量在15萬左右。
 
自2018年4月11日人保健康險好醫保產品成功上線後,截止到目前,好醫保已成為支付寶網紅保險產品。OceanBase上線中國人保健康以後,取得了顯著的收益:
 

  • 處理能力提升了上千倍,並可根據業務情況動態擴容

  • 2018款好醫保住院醫療保險,每天1萬單的日結檔案,處理速度從以前的4小時縮短至6分鐘

  • 新產品上線時間縮短80%以上,從原來的數週縮短至數天

  • 採用多種協議轉換和標準化對接流程,使外部渠道接入效率提升6倍,支援第三方業務快速擴充

 
謝謝大家聽完我的彙報,期待著未來我們可以用OceanBase資料庫更好地服務於保險行業,和各位好朋友一起打造面向未來的保險業的核心業務系統。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69909943/viewspace-2716674/,如需轉載,請註明出處,否則將追究法律責任。

相關文章