“分布式透明化”在杭州銀行核心上線之思考
原創作為國家支柱性行業,金融業在國民經濟中發揮著舉足輕重的作用。近些年來金融業的運營模式和服務方式都發生了很大變化,這對于金融科技提出更高要求。與此同時,國內金融機構還面臨國產化訴求,用以應對脫鉤、斷供等潛在風險。作為數據應用高地,金融企業普遍存在業務復雜、可用性要求高等特點,尤其是以銀行核心系統為代表。對銀行核心系統提供做架構升級、國產化改造是風險極大的一項工程。近期,國內杭州銀行新一代核心系統成功上線,引起業內普遍關注。筆者有幸受邀對項目實施方做了專訪,了解項目實施中的一些細節。作為用戶的行方從開始就秉承著應用與基礎設施解耦架構思想、分布式透明化的設計開發理念,通過與國產分布式數據庫TiDB的通力合作,完成此次核心系統的成功上線。這為國內廣大同類型銀行升級,帶來積極參考意義;其背后的實踐過程也很值得思考。
1、銀行核心系統演進及觀察
銀行核心系統,也稱為 Core Banking,是銀行處理存款、貸款業務為主的核心IT系統。作為支撐業務營運的關鍵系統和銀行信息化的重要組成部分,被稱作銀行IT系統的“心臟”。同時,銀行核心在整個銀行IT系統架構中是其他業務子系統的基礎,處于承上啟下的關鍵位置。核心系統在金融服務能力、處理性能等方面,對銀行日常經營的業務與流程優化、提升客戶體驗度、推動業務改革或創新等方面起著決定性作用。
從歷史演進來看,銀行核心系統經歷了從手工時代到PC時代,到聯網聯機、數據大集中,再到以客戶為中心的發展歷程。從上世紀九十年代開始,銀行核心系統技術架構從數據集中路線演進而來的“胖核心”時期;到本世紀頭十年因核心系統龐大且耦合嚴重,將輔助功能拆分后形成的“瘦核心”時期;再到近十年來互聯網對銀行業務產生影響,銀行開始構建分布式核心,形成以穩態集中式架構與敏態分布式架構并存的情況。特別是在 2017 年,中國人民銀行提出發展規劃,鼓勵實施架構轉型,包括采用分布式架構,這一趨勢推動了分布式核心系統的發展。分布式核心系統的關鍵目標是突破單機系統的數據存儲和處理能力上限,同時減小單點故障對整個系統的影響。這通過多機分片處理數據庫來實現,提高了銀行系統的健壯性和可用性。
在推動分布式核心發展中,以“微服務、單元化”為代表的架構設計理念成為主流。前者是一種軟件架構風格,其應用程序被拆分為一組小型、松耦合的、自治的服務。每個服務都可以獨立地進行開發、部署和擴展,并通過輕量級的通信機制(如HTTP、消息隊列等)進行互相通信。其核心原則是將復雜的單體應用程序拆分成更小、更可管理的部件,每個部件專注于完成一個特定的業務功能。后者則通過把一部分計算資源和一部分數據資源進行邏輯上的綁定,形成一個標準化的處理單元。每個處理單元具備完整的業務能力,但只處理全量數據中的一部分,簡單理解一個單元就相當于一個小分行。其核心原則是將業務拆分更為細小的處理單元,并可根據需要進行擴展。
無論采取兩種架構之一或兼而有之,都對底層基礎設施提出更高的要求,特別是數據的主要載體-數據庫。相對而言,單元化更傾向于通過數據拆分,將數據形成一個自包含的處理單元,對數據庫的承載體量、處理能力可以通過單機或集中式數據庫完成。但由于單元化架構學習、實施成本很高,比較適合于體量較大或有異地多活規劃的銀行。對以城商行為代表的廣大中小規模銀行來說,因其技術底子相對較薄、業務系統多以外購或合作開發為主且財力投入相對有限,上述原因都造成了單元化對于中小行不太適合,那么中小行也更多采用“微服務+分布式數據庫”的道路。
隨著近十年國產分布式數據庫的快速發展,其成熟度、穩定性等已趨于完善,開始在金融核心系統為代表的重要業務系統中嘗試使用。當然,這一新架構產品對架構、開發、運維等都帶來很多變化。特別是架構、研發層面,之前業務系統在設計上多是以集中式數據庫能力為基礎進行的,對于分布式架構存在諸多差異。如何降低這一差異,盡量復用之前架構設計,甚至做到將應用與底層基礎架構解耦成為關鍵。這里提出一種新的觀點-“分布式透明化”,即在分布式架構下仍然可沿用單機或集中式數據庫的開發設計習慣,做到完全無感。這里不是簡單的與某種數據庫的語法、運維兼容的問題,而是從架構之初就可以透明處理。正是這種分布式透明化能力給城商行等中小銀行的核心系統國產化及升級改造,提供了一條平滑的創新之路。
2、TiDB在杭州銀行新一代核心的實踐
近期,杭州銀行以 TiDB 為底層數據庫的新一代核心業務系統成功投產上線,也是業內首個實際投產的云原生、分布式、全棧國產化的銀行核心系統上線,是金融科技領域突破關鍵核心技術應用的重大實踐,標志著杭州銀行核心業務系統實現完全自主可控和架構升級。這一實踐中正是遵循了“分布式透明化”這一理念,為廣大同業建設核心系統架構轉型提供了參考。杭州銀行此次核心系統升級,在規劃之初就將業務與基礎設施解耦放在首要因素,從多角度對底層數據庫提出很高要求。
- 從架構角度來看,首要問題就是解決所謂透明化問題,即對數據庫建模、設計、開發過程仍可沿用之前的實踐,盡量減少因引入分布式數據庫所造成的差異。一方面業務系統開發中很難避免人員的更迭,另一方面很多業務系統也是采用合作開發模式。透明化對于最大化保留原有開發積累,有著重要意義。其次就是需要數據提供全面的兼容能力,對上可以兼容新型應用架構,包括微服務、云原生及可能會有單元化;向下可兼容具備自主創新能力的基礎平臺。第三則是希望數據庫提供標準而非定制化能力,這也是基于業內實踐,很多國產數據庫當面臨功能不足時會提供定制開發已解決問題,但這是不利于用戶長期技術戰略的。
- 從研發角度來看,針對數據分片后不可避免的分布式事務問題,在框架層尚無成熟完善的分布式事務解決方案下,充分利用底層數據庫的分布式事務能力來解決,這樣開發簡化很多。弱化對數據庫特性功能的依賴,將很多功能前置到框架層來解決。例如針對數據庫中常用的序列功能,即可在框架層提供分布式全局發號器來解決,不再依賴數據庫實現。針對數據庫經常需面對的熱點問題,雖然分布式架構能在一定程度上緩解這一問題,但在開發方面仍可以有多重手段去前置解決。例如,通過緩存與數據庫的結合,降低對數據庫熱點對象的訪問。通過將業務處理異步化,將對數據庫壓力分散開來。這些措施都可以有效解決熱點問題。針對具備金融特點的跑批類業務,通過將處理工作打散并行可以有效提高吞吐量,消除批量熱點,充分利用分布式數據庫的豐富算力。例如針對銀行核心系統日終及日間批量處理采用帶有業務屬性的分布式調度器,充分發揮分布式數據庫TiDB支持多會話及高并發處理特性,在原有作業流程基礎上由調度器使用分段SQL語句或分片算法將任務平均分配,并將分片任務同時下發到多個執行器節點并行處理提升批量處理性能;同時批量任務執行器節點和TiDB數據庫節點均可實現彈性水平擴展,保證杭州銀行在未來業務快速增長、數據規模急劇擴大的情況下,批量處理性能不降級。
- 從運維角度來看,引入分布式數據庫會帶來不小的挑戰,當然同時也有著明顯收益。從數據完整性角度來看,以 TiDB 為代表的原生分布式架構產品提供的是基于共識協議的多副本機制,能保障數據的強一致性和完整性。從可行性來看,分布式數據庫產品多通過三中心仲裁方式來提供整體高可用性,但這一方式成本較高。TiDB 在實現上提供了更為經濟的強雙中心方案,即當滿足同城低延遲的條件下,可通過兩中心提供同樣的可用性保障能力。通過同城強雙中心與異地備份的結合,最終達到RPO=0的可用性標準。這也是很多金融行業用戶最終選擇分布式數據庫架構的原因,其不僅可提供高并發、高擴展性,其整體較高的可用性及容災能力也是被選擇關鍵理由之一。同時這一架構還提供跨中心的多寫多讀能力,這對于業務側實現業務同城多活具備重大意義。針對在具體運維工作中普遍比較頭疼的大表 DDL 變更、分布式監控問題,TiDB 也通過特有的對象在線變更技術及可觀測技術解決了整體的維護性。金融行業作為涉及國計民生的重要行業,對于供應鏈安全尤為重視,因此希望數據庫產品能提供底層適配能力。TiDB 在這方面提供了多種架構 CPU 的適配能力,可滿足用戶未來可能的遷移需求,從根本解決“斷供”問題。
杭州銀行核心系統升級,正是從架構、研發、運維多角度出發,在充分考慮新型分布式數據庫能力的同時,結合自身技術發展現狀及長遠規劃,最終選擇 TiDB 作為核心系統的數據庫,并通過近兩年與廠商的通力協作成功上線。杭州銀行新一代核心系統上線以來運行安全穩定,大幅提升了業務處理效率,已支撐日均交易量 1000+ 萬筆,平均交易耗時小于 100 毫秒,較原核心業務系統縮減 54%,日終跑批的處理速度為原核心業務系統的 2.1 倍,能夠有效支撐未來業務的快速發展。
3、杭州銀行實踐帶來的思考
杭州銀行核心系統的成功上線,為廣大同業者及數據庫行業帶來很多思考。中國有數千家金融機構,隨著業務發展及技術演進,都正面臨架構升級改造的工作。但由于各金融機構,體量差異巨大、發展階段不同、技術路線各異,很難找到通用性、標準化的路徑。與此同時,數據庫的發展近年來也呈現“井噴式”發展,一方面采用新架構、新理念的分布式數據庫不斷涌現;另一方面傳統單機、集中式數據庫也紛紛推陳出新。上述問題,共同造成金融用戶在架構升級改造中很多痛點。從技術架構上看,數據庫可分為集中式數據庫、分庫分表型分布式數據庫、原生分布式數據庫,不同架構數據庫產品各有其特點。集中式產品更符合用戶使用習慣,可實現相對順滑的“平替”,但也面臨承載力有限等問題。分庫分表型分布式數據庫,因可知悉數據精準分布,計算效率更高,但需面臨必要的應用改造。原生分布式數據庫,相對折中,盡量保留原有使用習慣下,提供一定的平滑遷移能力。上述三種方案,各有優缺點,要看用戶數據體量、業務復雜度、底層技術積累等多種因素。
近日杭州銀行核心系統上線,正是走出了一條的適合自己的實踐道路,其秉承的應用與基礎設施解耦的架構思想,分布式透明化的設計開發理念對同行業具有很大參考意義。在既保持了原有使用習慣的基礎上,又在整體架構路線方面選擇了可持續創新的架構。未來,希望廣大金融IT從業者,在面臨國產化升級的整體規劃上,既需要考慮企業當前現狀,也能充分瞄準未來架構的延伸性,以創新的思維推動銀行核心系統的整體升級,共同助力中國金融的數字化轉型。