基于多技術棧的銀行核心系統建設——在保證安全生產前提下穩步推進分布式架構轉型
項目背景
當今世界科技進步日新月異,科技已成為衡量一個國家核心競爭力的重要指標,提升核心技術自主創新能力已經上升為國家戰略要求。與此同時我國銀行業務正在迅猛增長,隨著國家核心技術創新戰略的穩步推進,擺脫數據大集中模式下的銀行核心系統“大型機(主機)依賴癥”、快速推動集中式架構向分布式架構轉型,已成為當下我國金融行業IT系統建設領域亟待解決的關鍵課題。
中國建設銀行作為國有大型銀行,在全球擁有超過8億客戶,提供7×24連續不間斷金融服務,在推進分布式架構轉型過程中面臨諸多問題與挑戰:首先是在系統遷移過程中不僅要做到客戶無感、對外服務水平不降低,而且還要完整承接現有核心銀行業務功能,同步支撐新的業務需求;其次從目前國內IT實踐來看,尚未有如此超大規模、高度復雜的應用移植成熟方案可供借鑒;然后是核心系統分布式架構轉型是復雜的大型系統工程,需要跨部門企業級合作,涵蓋多種技術棧的融合與替換,要實現的是“飛行中換引擎”,對實施工藝與跨部門協作提出了很高要求;最后與國外基礎軟硬件產品相比,大多數國產基礎軟硬件還處于爬坡階段,產品成熟度還需要較長時間打磨,支撐大規模核心系統業務穩定運行的效果需要時間檢驗。
建設目標與總體技術方案
為避免因IT產品供應鏈風險引發系統性金融風險,中國建設銀行銳意進取、迎難而上、統籌安排、周密部署,2019年啟動了基于多技術棧的銀行核心系統建設工作,建設范圍涵蓋存款、貸款、借記卡、信用卡、客戶信息等原本運行在大型機上的核心業務領域全量業務功能。
轉型后的多技術棧銀行核心系統實現了多技術棧融合運行、分布式部署、模型化設計開發、全量并行驗證、業務連續性保障等技術目標,滿足了業務服務完整承接、持續拓展、體驗友好、平滑切換的需求,為推進建設銀行可持續發展提供了堅實的技術保障。
為了全面推進多技術棧銀行核心系統建設,建設銀行提出涵蓋應用層、平臺層、基礎設施層端到端的體系化解決方案。首先提供企業級開發框架及分布式平臺技術服務,分離非業務邏輯功能并在平臺層統一實現和供給;然后通過分布式平臺統一對多技術棧技術能力進行適配與封裝,解決平臺技術服務和底層技術棧升級、替換對上層應用的影響,保證應用專注業務邏輯開發以及開發效率和質量。
基礎設施層:通過云計算平臺屏蔽了硬件差異,為應用提供高可靠、高安全的多元彈性基礎設施云服務,支持多技術棧管控。
平臺層:通過搭建企業級分布式平臺,基于研發框架統一應用開發模式,封裝分布式、微服務、云原生等主流基礎技術,解耦應用對底層技術的直接依賴,支持核心系統分布式架構轉型和多技術棧應用。
應用層:強化應用系統基礎能力,適應多技術棧特點帶來的技術和業務處理變化,使核心系統具備在多種技術棧上運行的能力。
應用層面設計采用開放與主機融合架構,支持漸進式切換,積極穩妥推進分布式架構轉型,保證過渡期核心業務與數據完整性,涉及的主要組件包括如下。
應用路由:作為交易網關,實現所有聯機服務接入、路由決策、路由分發等。
配置中心:存放路由決策服務配置、索引數據(客戶編號、賬號等)、部署信息等。
服務集成代理:自研服務集成代理框架,實現微服務編排、一致性保障等功能,支持不同單元采用不同技術棧。
微服務:單元化部署,與數據分片對應,支持不同單元采用不同技術棧。

圖1 基于多技術棧的銀行核心系統總體技術方案
主要創新點
在項目建設過程中,建設銀行遵循“大膽創新、科學嚴謹、穩步推進、平滑投產”的建設理念,開創性解決了困擾跨技術棧應用移植的10余項技術難題,項目的主要創新點如下。
1.實現核心系統多技術棧的融合運行
項目采用分層設計、自研分布式平臺、多技術棧融合部署等手段,實現了核心系統在商用技術棧、互聯網技術棧與國產技術棧的融合部署,各技術棧均能支持核心系統穩定運行,形成了一條從商用技術棧到國產技術棧的平滑演進路徑。
2.滿足跨技術棧應用統一日切的要求
自研日切協調器,由分布式批處理平臺控制各個部署單元,通過日切準備、日切執行兩階段機制,實現了多獨立運行業務單元對營業日的同一時刻同一性要求,取得了集中式架構下統一日切的業務效果。
3.建立準實時強一致性保障機制
通過自主研發的分布式事務管理器和微服務組合驅動引擎的有效協同,建立了包含事中一致性(對服務組合場景提供了實時的多模式一致性處理方式,實現了跨技術棧單元的一致性保障)、事后一致性(建立了準實時和日終一致性保障處理機制,對事中一致性處理遺留的分布式事務進行進一步處理,最大化減少極端情況下需人工處理的工作量)的兩階段、跨技術棧的一致性保障機制。
4.支持多技術棧快速交付業務功能
基于自主研發的可視化設計開發工具進行設計,形成一套模型。基于模型結合不同技術平臺的特性及規則,實例化自動生成多套不同語言程序代碼。針對數據庫表、內部構件、外部服務拆分成多個微服務單元,由服務集成代理對于跨庫事務進行服務組合對外提供完整服務。解決了多技術棧快速交付業務功能服務的難題。
5.實現核心系統高可用和業務連續性保障
按照多可用區方式實現了同園區多機房部署,應用具備同城多活能力;在異地通過數據復制實現災備環境部署,保障災難場景下的業務連續性;通過自研應用路由實現配置化、動態化流量調撥和并行控制,支持業務流量在多技術棧環境下基于多要素的流量控制,全面支撐銀行核心系統分批切換和并網業務處理。
6.形成“架構先行、平滑切換”的工程方法
“架構先行”:基于對投產風險的全面分析與評估,采用兩階段切換策略,先切換交易路徑,從集中式架構向多技術棧融合架構進行切換,再按分行遷移數據,通過穩妥的試營業安排和雙向白名單機制設置,實現非下移行和下移行的同步試營業,有效分解首次下移風險。“平滑切換”:探索出一種多維度(按客戶、分行、業務與交易)的增量漸進式切換模式,在保持交易接口不變的前提下,按照分行級或客戶級(最小)粒度進行切換,由分布式系統逐步對外提供單軌服務,對外圍透明實現從集中式到分布式的平滑過渡。

圖2 融合架構下銀行核心系統應用架構框圖
實施效果
本項目累計獲得專利授權17項,其中信用卡——《面向金融行業的服務器軟硬件應用關鍵技術研究》納入國家重大專項“核高基”金融領域唯一試點。
從2021年3月開始,在實現全量雙機并行驗證基礎上,建設銀行信用卡、個人貸款、客戶信息、對私存款與借記卡業務分批次單軌投產切換,投產后系統運行穩定,未發生業務一致性問題,系統各項運行指標滿足業務需求。
1.雙機并行驗證
將分布式系統全量部署在生產環境,在不影響生產真實交易的前提下,將全量生產真實交易在分布式系統準實時進行模擬運行。為了檢驗系統的準確性,建設銀行提出了“三真實、四比對、五驗證”的核心系統異構并行比對方法。
“三真實”:使用真實的生產數據、生產交易、生產環境基礎實施準實時運行。
“四比對”:比對主機和分布式系統的聯機交易輸出報文、批量文件結果文件、每日數據庫增量返回、交易產生的會計分錄等。
“五驗證”:驗證目標架構下的分布式系統的功能完整性、可靠性、穩定性、高可用性及高性能。
雙機并行驗證期間,分布式核心系統日均交易量4.4億筆,TOP10交易平均處理時間57.99ms,壓力測試峰值30000TPS,全面驗證了分布式核心系統的穩定性和可靠性。
2.單軌投產運行
截至2021年底,建設銀行對私存款借記卡(分布式)已在青海、寧夏兩家分行投產運行,下移2000萬賬戶;信用卡業務已全量運行在開放分布式平臺,100萬客戶運行在國產技術棧平臺,具備支持更多客戶遷移至國產技術棧能力;個人貸款業務已完成境內業務全量運行在開放分布式平臺;客戶信息已完成境內外超8億客戶全量運行在開放分布式平臺。
小結
通過本系統的建設實踐,在國產軟硬件產品仍在逐步成熟、缺乏可借鑒的成熟方案情況下,建設銀行在國有大型銀行中首家完成分布式核心系統架構轉型,探索出一種大型商業銀行核心系統架構轉型的新模式,漸進式實現了核心系統在多技術棧下的平穩切換,對于金融行業信息技術應用創新工作具有示范與借鑒意義,促進了國產技術創新與產業生態發展。