厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

OB君:本文整理自 2019 年大數據產業峰會網商銀行技術專家楊祥合(花名:宮博)的演講。本文將帶讀者深入瞭解網商銀行在金融級分佈式數據庫 OceanBase 上的應用實踐。

Tips:您可以關注“OceanBase”公眾號回覆“網商銀行”獲取演講PPT

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

網商銀行的數據庫需求

隨著移動互聯、雲計算、大數據等信息技術的蓬勃發展,互聯網金融應運而生,促使銀行業向互聯網模式逐步轉型。

網商銀行致力於為小微企業、三農用戶、大眾消費者、中小金融機構提供普惠金融服務,從成立之初,就提出了低成本、高可用、高彈性的要求。另外,銀行作為強監管行業,上級監管部門在不同場合都提出了自主可控的要求。為了滿足合規和業務發展需要,網商銀行採用了自主可控的金融級分佈式數據庫 OceanBase 作為核心數據庫,並基於它構建了國內首家雲上的互聯網銀行。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

在這 4 年來,網商銀行在分佈式數據庫的場景驗證、遷移保障、新的運維體系和高可用架構等方面有了一定的積累和沉澱,今天與大家一起交流一下。

金融級分佈式數據庫簡介

金融級分佈式數據庫 OceanBase,在設計和實現過程中,結合了傳統關係型數據庫與分佈式系統領域的經典技術,具備高性能、高可用、可擴展等特性,解決了容量和容災問題。OceanBase 採用多租戶技術實現資源隔離,避免了互相影響。同時 OceanBase 具有較高的兼容性,在提升易用性同時,極大地降低了業務遷移成本。


厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

數據庫邏輯架構

下面來介紹一下 OceanBase 的產品架構,OceanBase 採用了 Share-Nothing 架構,提供了多地多副本的集群。

右側是 OceanBase 部署示意圖。OceanBase 集群至少要部署三副本,並使用 paxos 協議保持數據一致性。並具備如下的能力和優勢:

(1)保證強一致性,在主備庫之間,數據始終保持一致;

(2)提供水平擴展能力;

(3)提供機房/城市級容災、異地多活、故障自動恢復能力。


厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

下面來回顧一下網商銀行在數據庫架構方面的發展史。

網商銀行從建設之初,採用 5 庫 10 表的設計。升級到 OceanBase 1.0 後,邏輯架構進行了水平數據拆分,從 5 庫 10 表到 100 庫 100 表,支持全行業務系統運行在 100 個邏輯單元,最大可支持物理部署在多地的 100 個數據中心進行並行數據處理,用於滿足指數級的金融業務增長需求。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

創新一直是分佈式數據庫架構發展的源動力,並且始終貫穿在網商銀行的技術實踐過程中。數據庫遷移拆分、秒級彈性數據源等,正是創新技術的體現。

在從 OceanBase 0.5 升級到 OceanBase 1.0 的過程中,物理架構也從兩地三中心發展到目前的三地五中心,並逐步形成了一套完整的一站式數據遷移解決方案——OceanBase 遷移服務(OceanBase Migration Service,簡稱 OMS)。

OMS 是數據庫拆分、遷移的利器,適用於在數據庫版本升級、等表拆分和1拆多等場景中。無論數據庫是同種類型,還是異構,實現了彈性拆分,同時也將影響面控制在最細粒度,可分鐘級完成。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

秒級彈性數據源是針對流水型業務提供了數據源的高可用和彈性能力,使用數據路由策略,將多組物理庫配置成 1 個數據源。多組物理庫之間互為故障切換(FailOver);可任意切換當前服務的數據庫,而不會對業務產生任何影響,切換後在秒級別所在應用立即生效,從而大大拓展了數據庫的能力,構建了數據源級別的高可用。


厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

總結來說,OceanBase 遷移服務及拆分方案,實現了靈活的數據拆分和合並,以最小的影響,在分鐘級完成切換。秒級彈性數據源,可在多套數據庫下同時提供服務和自動切換的能力,並且實現了數據源級的自動故障切換(Auto FailOver)。

物理架構演進

物理架構方面,網商銀行從原來的兩地三中心,發展到三地五中心部署架構。容災能力上,從容忍單機房掛掉,到城市級宕機。網商銀行實現了業務應用上異地多活的能力。這背後是分佈式數據庫能力的增強,是對高可用的要求,本質上也是對客戶體驗的極致要求。

為了數據源的高可用,分佈式數據庫從架構角度,來進行分集群的設計,來降低特殊情況下的影響;伴隨業務發展,數據中心的集群需要分攤到更多城市,實現單元化,來降低單集群的容損率。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

高可用架構是對用戶體驗的極致追求。網商銀行基於 OceanBase 構建了異地多活,每個城市都有全量數據,通過不同數據庫的讀寫點交叉,由多個城市來共同承擔用戶的流量訪問。

在數據庫邏輯架構示意圖中,應用每次寫入數據到主庫的同時,會由主庫將事務日誌強同步到其他的備庫,且至少要寫成功 2 個備庫。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

下面來舉例說明數據庫異地多活部署的邏輯架構。通過三地五中心的邏輯架構部署,實現 RPO = 0,RTO 小於 30 秒,單個數據中心或者當個地域故障都能保證數據庫高可用並且不丟失數據。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

下面是數據庫邏輯架構下的庫級別主從分佈的樣例。從邏輯架構上可以看出,每個機房都包含全量數據,多個數據庫集群同時提供服務,用這種方式降低了單點故障對客戶的影響。採用交叉部署的方式,同時提升了機器的資源利用率。

下圖中是在單 IDC 故障、城市故障之下,邏輯架構中表的主節點(讀寫點)自動切換到可用節點上,整個過程 30 秒內完成,即業務 30 秒內可自動恢復。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

縱觀整個業務,在線數據庫的關鍵不在於存儲,而在於計算,伴隨數據量增大,儘管計算能力夠用,但仍需更多的存儲空間。為了存儲增加而擴大機器數量會導致成本過高,而歷史庫方案可解決成本過高問題。

歷史庫降成本有兩種方案:

(1)降低在線庫機器成本:把數據分成冷數據和熱數據,將冷數據放到 sata 上,熱數據放到 SSD 上;

(2)通過終態數據進歷史庫,這樣歷史庫是隻讀的,降低歷史庫的全量備份的存儲成本,從而節約大量資金。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

從全生命週期的視角,數據庫架構的發展是從全面共享到租戶共享,再到集群專享的路線;因此,數據庫架構需要高彈性,在資源少的時候共享,資源多的時候獨享。


厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

為了提升分佈式數據庫的彈性能力,我們引入了虛擬化的技術。

當硬件資源多的時候,通過簡單的調度,即可分攤到更多硬件上來,從而降低單集群容損率,將業務影響降到最低; 架構彈性意味著按需投入,成本節約。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

作為中國第一家核心系統基於雲計算架構的商業銀行,網商銀行在實踐中開啟了新型銀行的商業模式,即便沒有一個網點,截止至 2018 年 6 月,網商銀行及其前身阿里小貸已經累計為超過 1000 萬家小微企業及個體經營者提供了貸款支持。

選擇 OceanBase 三地五中心部署架構、分佈式架構 SOFAStack 等,網商銀行實現了業務應用上異地多活的能力,極大提升了全行的系統吞吐量。同時,藉助 OceanBase 提供的多租戶特性,在集群上按照業務重要程度與流量配比分配資源策略,在資源的共享與隔離上取得了最佳的平衡,極大的減少了 IT 基礎設施的採購成本。

網商銀行選擇 OceanBase 三地五中心部署架構,滿足全行多應用系統的管理與使用需求,讓應用系統多活架構設計上變的異常簡單。這些基礎服務實現平臺與應用的深度融合,不僅大幅提升研發效率,同時經過組合後還可支持快速重構銀行業務價值鏈,將金融服務全面融入社會各類應用場景中。

除了經過內部多年的產品打磨和不同業務場景的千錘百煉,目前,OceanBase 也已經在多家金融機構落地應用,包括人保健康險、常熟農商行、蘇州銀行、廣東農信等數十家商業銀行和保險機構。

展望

在金融 IT 基礎設施中,分佈式數據庫在容災、高可用、高彈性方面不斷髮展,具備越來越強的產品能力。展望未來,網商銀行期望在一體化數據網下,用創新的能力,通過業務、應用、架構、數據、資源等多種視角,來實現數據庫的智能調度,來滿足金融業務的戰略目標和業務連續性。

厲害了!第一家基於OceanBase的雲上銀行—網商銀行最佳應用實踐

當前,金融業正走在分佈式數據庫轉型的路上,期望與行業同仁一起積極探索、開拓創新,努力拓展分佈式數據庫的應用邊界。

歡迎關注OceanBase頭條號,第一時間獲取數據庫一手乾貨~


分享到:


相關文章: