天天看點

網商銀行×OceanBase:首家雲上銀行的分布式資料庫應用實踐網商銀行的資料庫需求金融級分布式資料庫簡介資料庫邏輯架構實體架構演進展望

本文整理自 2019 年大資料産業峰會網商銀行技術專家楊祥合(花名:宮博)的演講。本文将帶讀者深入了解網商銀行在金融級分布式資料庫 OceanBase 上的應用實踐。
網商銀行×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:首家雲上銀行的分布式資料庫應用實踐網商銀行的資料庫需求金融級分布式資料庫簡介資料庫邏輯架構實體架構演進展望

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