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

導讀

隨着金融行業數字化轉型的需求,銀行核心系統的升級改造成爲重要議題。杭州銀行成功上線以 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 從業者,在面臨國產化升級的整體規劃上,既需要考慮企業當前現狀,也能充分瞄準未來架構的延伸性,以創新的思維推動銀行核心系統的整體升級,共同助力中國金融的數字化轉型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章