“分散式透明化”在杭州銀行核心系統上線之思考

PingCAP發表於2024-02-16

導讀

隨著金融行業數字化轉型的需求,銀行核心系統的升級改造成為重要議題。杭州銀行成功上線以 TiDB 為底層資料庫的新一代核心業務系統,該實踐採用應用與基礎設施解耦、分散式透明化的設計開發理念,推動銀行核心系統的整體升級。

本文聚焦銀行核心系統演進,結合 TiDB在杭州銀行新一代核心的實踐,深入解析“分散式透明化”理念,希望能為同行業的轉型升級提供參考。

本文作者:韓鋒 ,CCIA(中國計算機協會)常務理事,前 Oracle ACE、騰訊 TVP、阿里雲 MVP。有著豐富的一線資料庫架構、軟體研發、產品設計、團隊管理經驗。曾擔任多家公司首席 DBA、資料庫架構師等職。在雲、電商、互金、網際網路、銀行等行業均有涉獵,精通多種關係型資料庫,對 NoSQL 及大資料相關技術也有涉足,實踐經驗豐富。曾著有資料庫相關著作《SQL 最佳化最 佳實踐》、《資料庫高效最佳化》。《韓鋒頻道》公眾號作者。

作為國家支柱性行業,金融業在國民經濟中發揮著舉足輕重的作用。近些年來金融業的運營模式和服務方式都發生了很大變化,這對於金融科技提出更高要求。與此同時,國內金融機構還面臨國產化訴求,用以應對脫鉤、斷供等潛在風險。作為資料應用高地,金融企業普遍存在業務複雜、可用性要求高等特點,尤其是以銀行核心系統為代表。對銀行核心系統提供做架構升級、國產化改造是風險極大的一項工程。

近期,國內杭州銀行新一代核心系統成功上線,引起業內普遍關注。行方從開始就秉承著應用與基礎設施解耦架構思想、分散式透明化的設計開發理念,透過與國產分散式資料庫 TiDB 的通力合作,完成此次核心系統的成功上線。這為國內廣大同型別銀行升級,帶來積極參考意義;其背後的實踐過程也很值得思考。

銀行核心系統演進及觀察

銀行核心系統,也稱為 Core Banking,是銀行處理存款、貸款業務為主的核心 IT 系統。作為支撐業務營運的關鍵系統和銀行資訊化的重要組成部分,被稱作銀行 IT 系統的“心臟”。同時,銀行核心在整個銀行 IT 系統架構中是其他業務子系統的基礎,處於承上啟下的關鍵位置。核心系統在金融服務能力、處理效能等方面,對銀行日常經營的業務與流程最佳化、提升客戶體驗度、推動業務改革或創新等方面起著決定性作用。

從歷史演進來看,銀行核心系統經歷了從手工時代到 PC 時代,到聯網聯機、資料大集中,再到以客戶為中心的發展歷程。從上世紀九十年代開始,銀行核心系統技術架構從資料集中路線演進而來的  “胖核心” 時期;到本世紀頭十年因核心系統龐大且耦合嚴重,將輔助功能拆分後形成的  “瘦核心” 時期;再到近十年來網際網路對銀行業務產生影響,銀行開始構建分散式核心,形成以穩態集中式架構與敏態分散式架構並存的情況。特別是在 2017 年,中國人民銀行提出發展規劃,鼓勵實施架構轉型,包括採用分散式架構,這一趨勢推動了分散式核心系統的發展。分散式核心系統的關鍵目標是突破單機系統的資料儲存和處理能力上限,同時減小單點故障對整個系統的影響。這透過多機分片處理資料庫來實現,提高了銀行系統的健壯性和可用性。

在推動分散式核心發展中,以“微服務、單元化”為代表的架構設計理念成為主流。 前者是一種軟體架構風格,其應用程式被拆分為一組小型、松耦合的、自治的服務。每個服務都可以獨立地進行開發、部署和擴充套件,並透過輕量級的通訊機制(如 HTTP、訊息佇列等)進行互相通訊。其核心原則是將複雜的單體應用程式拆分成更小、更可管理的部件,每個部件專注於完成一個特定的業務功能。後者則透過把一部分計算資源和一部分資料資源進行邏輯上的繫結,形成一個標準化的處理單元。每個處理單元具備完整的業務能力,但只處理全量資料中的一部分,簡單理解一個單元就相當於一個小分行。其核心原則是將業務拆分更為細小的處理單元,並可根據需要進行擴充套件。

無論採取兩種架構之一或兼而有之,都對底層基礎設施提出更高的要求,特別是資料的主要載體-資料庫。 相對而言,單元化更傾向於透過資料拆分,將資料形成一個自包含的處理單元,對資料庫的承載體量、處理能力可以透過單機或集中式資料庫完成。但由於單元化架構學習、實施成本很高,比較適合於體量較大或有異地多活規劃的銀行。對以城商行為代表的廣大中小規模銀行來說,因其技術底子相對較薄、業務系統多以外購或合作開發為主且財力投入相對有限,上述原因都造成了單元化對於中小行不太適合,那麼中小行也更多采用“微服務+分散式資料庫”的道路。

隨著近十年國產分散式資料庫的快速發展,其成熟度、穩定性等已趨於完善,開始在金融核心系統為代表的重要業務系統中嘗試使用。當然,  這一新架構產品對架構、開發、運維等都帶來很多變化 。特別是架構、研發層面,之前業務系統在設計上多是以集中式資料庫能力為基礎進行的,對於分散式架構存在諸多差異。如何降低這一差異,儘量複用之前架構設計,甚至做到將應用與底層基礎架構解耦成為關鍵。這裡提出一種新的觀點-“分散式透明化”,即在分散式架構下仍然可沿用單機或集中式資料庫的開發設計習慣,做到完全無感。這裡不是簡單的與某種資料庫的語法、運維相容的問題,而是從架構之初就可以透明處理。正是這種分散式透明化能力給城商行等中小銀行的核心繫統國產化及升級改造,提供了一條平滑的創新之路。

TiDB 在杭州銀行新一代核心的實踐

近期,杭州銀行以 TiDB 為底層資料庫的新一代核心業務系統成功投產上線 ,也是業內首 個實際投產的雲原生、分散式、全棧國產化的銀行核心系統上線,是金融科技領域突破關鍵核心技術應用的重大實踐,標誌著杭州銀行核心業務系統實現完全自主可控和架構升級。這一實踐中正是遵循了“分散式透明化”這一理念,為廣大同業建設核心系統架構轉型提供了參考。杭州銀行此次核心系統升級,在規劃之初就將業務與基礎設施解耦放在首要因素,從多角度對底層資料庫提出很高要求。

從架構角度來看, 首要問題就是解決所謂透明化問題,即對資料庫建模、設計、開發過程仍可沿用之前的實踐,儘量減少因引入分散式資料庫所造成的差異。一方面業務系統開發中很難避免人員的更迭,另一方面很多業務系統也是採用合作開發模式。透明化對於最大化保留原有開發積累,有著重要意義。其次就是需要資料提供全面的相容能力,對上可以相容新型應用架構,包括微服務、雲原生及可能會有單元化;向下可相容具備自主創新能力的基礎平臺。第三則是希望資料庫提供標準而非定製化能力,這也是基於業內實踐,很多國產資料庫當面臨功能不足時會提供定製開發已解決問題,但這是不利於使用者長期技術戰略的。

從研發角度來看, 針對資料分片後不可避免的分散式事務問題,在框架層尚無成熟完善的分散式事務解決方案下,充分利用底層資料庫的分散式事務能力來解決,這樣開發簡化很多。弱化對資料庫特性功能的依賴,將很多功能前置到框架層來解決。例如針對資料庫中常用的序列功能,即可在框架層提供分散式全域性發號器來解決,不再依賴資料庫實現。針對資料庫經常需面對的熱點問題,雖然分散式架構能在一定程度上緩解這一問題,但在開發方面仍可以有多重手段去前置解決。例如,透過快取與資料庫的結合,降低對資料庫熱點物件的訪問。透過將業務處理非同步化,將對資料庫壓力分散開來。這些措施都可以有效解決熱點問題。

針對具備金融特點的跑批類業務,透過將處理工作打散並行可以有效提高吞吐量,消除批次熱點,充分利用分散式資料庫的豐富算力。例如針對銀行核心系統日終及日間批次處理採用帶有業務屬性的分散式排程器,充分發揮分散式資料庫 TiDB 支援多會話及高併發處理特性,在原有作業流程基礎上由排程器使用分段 SQL 語句或分片演算法將任務平均分配,並將分片任務同時下發到多個執行器節點並行處理提升批次處理效能;同時批次任務執行器節點和 TiDB 資料庫節點均可實現彈性水平擴充套件,保證杭州銀行在未來業務快速增長、資料規模急劇擴大的情況下,批次處理效能不降級。

從運維角度來看, 引入分散式資料庫會帶來不小的挑戰,當然同時也有著明顯收益。從資料完整性角度來看,以 TiDB 為代表的原生分散式架構產品提供的是基於共識協議的多副本機制,能保障資料的強一致性和完整性。從可行性來看,分散式資料庫產品多透過三中心仲裁方式來提供整體高可用性,但這一方式成本較高。TiDB 在實現上提供了更為經濟的強雙中心方案,即當滿足同城低延遲的條件下,可透過兩中心提供同樣的可用性保障能力。透過同城強雙中心與異地備份的結合,最終達到 RPO=0 的可用性標準。這也是很多金融行業使用者最終選擇分散式資料庫架構的原因,其不僅可提供高併發、高擴充套件性,其整體較高的可用性及容災能力也是被選擇關鍵理由之一。同時這一架構還提供跨中心的多寫多讀能力,這對於業務側實現業務同城多活具備重大意義。

針對在具體運維工作中普遍比較頭疼的大表 DDL 變更、分散式監控問題,TiDB 也透過特有的物件線上變更技術及可觀測技術解決了整體的維護性。金融行業作為涉及國計民生的重要行業,對於供應鏈安全尤為重視,因此希望資料庫產品能提供底層適配能力。TiDB 在這方面提供了多種架構 CPU 的適配能力,可滿足使用者未來可能的遷移需求,從根本解決“斷供”問題。

杭州銀行核心系統升級,正是從架構、研發、運維多角度出發,在充分考慮新型分散式資料庫能力的同時,結合自身技術發展現狀及長遠規劃,最終選擇 TiDB 作為核心系統的資料庫,並透過近兩年與廠商的通力協作成功上線。杭州銀行新一代核心系統上線以來執行安全穩定,大幅提升了業務處理效率,  已支撐日均交易量 1000+ 萬筆,平均交易耗時小於 100 毫秒,較原核心業務系統縮減 54%,日終跑批的處理速度為原核心業務系統的 2.1 倍 ,能夠有效支撐未來業務的快速發展。

杭州銀行實踐帶來的思考

杭州銀行核心系統的成功上線,為廣大同業者及資料庫行業帶來很多思考。中國有數千家金融機構,隨著業務發展及技術演進,都正面臨架構升級改造的工作。但由於各金融機構,體量差異巨大、發展階段不同、技術路線各異,很難找到通用性、標準化的路徑。與此同時,資料庫的發展近年來也呈現“井噴式”發展,一方面採用新架構、新理念的分散式資料庫不斷湧現;另一方面傳統單機、集中式資料庫也紛紛推陳出新。上述問題,共同造成金融使用者在架構升級改造中很多痛點。

近日杭州銀行核心系統上線,走出了一條的適合自己的實踐道路, 其秉承的  應用與基礎設施解耦 的架構思想,  分散式透明化 的設計開發理念對同行業具有很 大參考意義。在既保持了原有使用習慣的基礎上,又在整體架構路線方面選擇了可持續創新的架構。未來,希望廣大金融 IT 從業者,在面臨國產化升級的整體規劃上,既需要考慮企業當前現狀,也能充分瞄準未來架構的延伸性,以創新的思維推動銀行核心系統的整體升級,共同助力中國金融的數字化轉型。



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

相關文章