從 0 到 1,我的分散式資料庫落地經驗談

語言: CN / TW / HK

採訪嘉賓:周傳凱。天津銀行股份有限公司,資料中心繫統軟體組組長、資料中心雲資料庫架構師、資料中心雲系統架構師。

對於金融行業而言,IT 系統的每一次架構換代升級都是關係到企業整體業務安全性、可靠性,甚至可能影響金融市場穩定性的重大事項。與此同時,金融企業面對迅速增長的業務規模與日新月異的市場需求又必須緊跟趨勢,及時完成 IT 系統技術升級,從而保持自身的市場地位與競爭力,滿足使用者多元需求。在這樣的背景下,企業 IT 部門就要充分把握好技術架構換代過程中的平衡,在確保安全可靠的前提下儘快充分利用新興技術的各項優勢。

近年來,隨著雲端計算、微服務等技術理念逐漸取代傳統的單體架構,資料庫領域也開始迎來由分散式資料庫主導的變革潮流。對於銀行等金融企業而言,分散式資料庫可以帶來很多顯而易見的收益,但出於金融準確性、安全性、穩定性的極高要求,如何在不影響業務可靠性的前提下平穩落地這一新興技術,是很多企業管理者和 IT 部門面對的挑戰。在國內,天津銀行自 2018 年起就開始了分散式資料庫落地的實踐探索,至今已經取得了值得稱道的成果,完成了專案立項之初設定的各個目標。近日,InfoQ 採訪了天津銀行資料中心繫統架構師周傳凱;他從個人經驗出發,分享了金融企業從 0 到 1 落地分散式資料庫的完整歷程。

從傳統資料庫到分散式資料庫,轉型的驅動力源自何處?

2018 年之前,天津銀行主要使用的資料庫分別是 Informix 和 Oracle 兩種單體資料庫。前者執行在 AIX 小型機上,主要處理記賬類業務。後者執行在較新的伺服器上,處理的業務更加全面。

回顧歷史,金融行業的 IT 系統曾經長期被 IOE(IBM、Oracle、EMC)的單體軟硬體架構統治。國內各大銀行每年都要投入巨資維護和更新基於 IOE 產品的 IT 系統,天津銀行所使用的 Informix 與 Oracle 資料庫就是一個典型案例。在雲時代到來之前,IOE 體系以其強大的效能、極高的穩定性/可靠性和廣泛深厚的功能積累深得金融企業信賴,很少有人試圖對這一局面發起質疑和挑戰。

但隨著時間推移,尤其是雲原生潮流席捲全球 IT 行業後,IOE 體系遭遇到了前所未有的衝擊。由於 IOE 軟硬體架構本質上仍以傳統的單體設計為主,難以適應雲時代去中心化、分散式的設計開發理念;相關產品高昂的購買升級與維護成本也令企業愈加不堪重負;最重要的是,IOE 軟硬體很難滿足新時代金融業務快速增長和變化的業務需求,逐漸成為企業競爭力提升道路上的“絆腳石”。正因如此,近年來金融行業開始探索利用圍繞雲原生理念的 IT 系統架構,逐漸替換傳統的 IOE 解決方案。

在天津銀行的運營實踐中,Informix 與 Oracle 兩種傳統資料庫就隨著業務增長而逐漸暴露出了一系列問題:

1. Informix 的維護、迭代和演進高度依賴 IBM,存在對接維護人員經常更換、長期維護較為困難的問題;

2. Informix 不具備橫向擴充套件能力,只能通過硬體更新實現效能提升;

3. 資料量達到 PB 量級後,Oracle 會出現效能瓶頸,需要做分割槽表等優化;

4. Oracle 對雙活切換不夠友好,雙線切換延遲較大。

與此同時,天津銀行正在與螞蟻集團等外部企業展開合作,並引入敏捷開發、分散式事務等技術理念,自然就需要將資料庫從傳統的單體架構升級為分散式架構,與整體的開發變革步伐相適應和匹配。2019 年,天津銀行引入阿里雲的整套產品線打造專有云,周傳凱由此接觸到了 100%自主研發的 OceanBase 原生分散式資料庫產品,開始帶領銀行 IT 部門正式踏上了分散式資料庫落地之路,開啟了銀行在資料庫領域對傳統架構的升級的旅程。

回顧銀行選擇分散式資料庫產品的經歷,周傳凱認為這裡的關鍵在於專有云的架構選項。在他看來,分散式資料庫與專有云是一個整體,分散式的資料場景、微服務化的業務和分散式資料庫可以共同形成 1+1 大於 2 的效應。因此,很少有金融企業會單獨購買某種分散式資料庫產品,更多情況下還是會像天津銀行這樣,將分散式資料庫作為專有云架構的一個捆綁解決方案。但與之前的 IOE 時代相比,企業在雲原生升級選型時可選的解決方案提供商數量要多很多,廠商之間的競爭更為激烈,技術迭代升級步伐更快,這樣的局面自然更符合行業客戶的長期利益。

分散式資料庫落地實踐,步步為營才是成功之道

如前所述,金融企業在落地新興技術架構時都會採取非常謹慎的態度,天津銀行自然也不例外。選定 OceanBase 後,銀行為分散式資料庫的落地安排了三期工程,分為三年實施。一期工程主要以技術驗證為目的,承載一些銀行二類產品的開戶、記賬等功能。在這一期間,周傳凱帶領的團隊遇到了非常多的問題,往往需要與 OceanBase 技術團隊共同探討和解決。

2020 年的二期工程中,銀行將 OceanBase 從 1.4.79 升級到了 2.2.76,引入了一些 Oracle 相關特性。二期工程開始將銀行自營網貸、風控和門戶轉移到 OceanBase,並規劃了同城雙活架構。這一過程中涉及的主要問題更多是架構和規劃層面,周傳凱會經常與阿里團隊探討諸如鏈路延時、多副本冗餘度等細節和技術目標。

2021 年三期工程開始後,天津銀行在某次宕機時間中發現在單體時代傳統的業務上線、審批流程不一定適應雲原生、分散式資料庫的使用場景,並通過此次事件對業務上線流程做了優化。經過打磨調優後,OceanBase 與業務開發端的協同能力得到增強,可用性、安全性進一步提升,也為未來更多業務逐步上雲鞏固了基礎。天津銀行上線了一個重要的銀行卡系統。該系統涉及的業務場景需要對每一筆與銀聯絡統的交易做流水錶查銷,交易量達到 1100 萬規模。然而上線半個多月後系統突然宕機,結果發現原因在於缺少欄位統一索引。雖然問題很快得到了解決,但這也暴露出了新業務上線把關存在的審查漏洞。為此,周傳凱團隊與 OceanBase 團隊做了深入討論、調優和培訓,最終圓滿解決問題的同時,為後續的遷移工作保障提前打好了基礎,這也得益於 OceanBase 資料庫是 100%自主研發的國產原生分散式資料庫,在遇到一些核心應用的問題的時候,原廠研發人員可以快速定位進行優化,通過快速的迭代精準解決使用者痛點。

歸根結底,企業從傳統單體資料庫轉向分散式資料庫的最終目的是要更好地解決業務實踐中遇到的種種問題和挑戰。從 2019 年的第一期工程開始到現在,周傳凱團隊對分散式資料庫的優勢與收益有了更加深入的體會:

1. OceanBase 高度相容 Oralce 和 MySQL 引擎,實際使用中非常便利。

2. OceanBase 的資料同步方式很好用。與傳統資料庫往往只能在兩個副本之間同步的設定相比,OceanBase 可以實現三個、五個、七個副本的同步,獲得靈活的擴充套件能力。

3. OceanBase 的透明遷移能力可以在業務執行狀態下完成很多升級事項,對於強監管的金融行業來說非常便利。業務不中斷意味著不需要根據監管要求提前報備,可以有效改善客戶體驗。

4. OceanBase 對容災建設有著很強的支援能力,可以輕鬆實現多活、副本遷移等工作。

5. OceanBase 具備靈活的資源擴充套件能力,一個租戶可以迅速無停機擴充套件 CPU 核心數量,在高壓力交易場景實現實時擴容,很好地應對未來的業務增長要求。

除此之外,周傳凱還發現 OceanBase 的執行效率與優化改進是息息相關的。例如現有的分庫分表的具體實現方式、索引方案等等,都可以根據 OceanBase 的實際執行情況做針對性配置調整和優化。經過實踐中的逐漸優化過程,OceanBase 就能發揮出很高的效率,相應的優化措施也可以沉澱為具體的技術規範。企業使用 OceanBase 的時間越久,積累下來的領域知識也會越豐富,從分散式資料庫中獲得的收益自然就能水漲船高。在實際使用過程中,也發現 OceanBase 的 LSM Tree 壓縮技術可以極大的節省原先的儲存資源成本,某些特定場景下甚至可以節省 90%以上,這也給整個專案組帶來實實在在的成本節省。

展望未來,分散式資料庫的改進方向

談到對分散式資料庫未來發展的期待,周傳凱希望相關產品的定價能夠更加實惠便宜。從天津銀行的實踐過程來看,業務系統的雲端遷移花費的成本巨大,系統改造、重構和新業務開發都需要資源投入。在這樣的背景下,留給分散式資料庫的預算必然吃緊,這時如果產品本身的價格能夠更加優惠,銀行就能加快原有業務的升級步伐。

另一方面,如果分散式資料庫能夠更多相容傳統資料庫的功能、語法和特性,也能有效節省客戶上雲改造的成本和時間。例如 Oracle 的 AWR 運維效能分析報告,以及調優功能邏輯模組,都是分散式資料庫可以參考借鑑的技術特性。從產品層面,周傳凱也期待與 OceanBase 團隊的合作能夠不斷引入更多前沿技術理念和新的產品功能,並更早轉化為實際的業務收益,實現降本增效的目的。

總結:分散式資料庫是行業大勢所趨

從行業層面來看,周傳凱認為分散式資料庫的全面普及已經是不可阻擋的趨勢。即便在金融行業這樣業務要求非常高的領域中,分散式資料庫也已經具備了替代傳統核心的能力。在雲原生浪潮的推動下,分散式資料庫作為雲原生架構不可分割的一環,必然會逐漸取代傳統單體資料庫成為企業資料庫的主流選項。但在具體的落地過程中,分散式資料庫產品開發商和客戶仍需要通力合作,根據實際業務需求和實踐中遇到的挑戰對產品進行持續打磨和優化,不斷降低產品成本和部署難度。

長遠來看,從單體架構發展到微服務、雲原生、分散式軟體體系,背後都是不斷增長和愈加複雜多變的業務需求推動的。隨著業務規模的擴張,企業對資料價值和安全性更加重視,分散式資料庫天然具備的高可擴充套件性、高可用性、靈活性、高性價比等優勢會越來越凸顯。在金融行業,金融科技興起,行業全面轉向雲原生的大背景下分散式資料庫成為主流也只是時間問題。天津銀行與 OceanBase 的合作經驗為行業在這一領域的探索提供了很好的榜樣參考,也標誌著分散式資料庫在金融領域即將迎來大規模普及,為企業數字化轉型帶來可觀價值與驅動力。