《【長亮科技秦金衛】單元化架構助力銀行數字化轉型.pdf》由會員分享,可在線閱讀,更多相關《【長亮科技秦金衛】單元化架構助力銀行數字化轉型.pdf(27頁珍藏版)》請在三個皮匠報告上搜索。
1、1單元化架構助力銀行數字化轉型長亮科技平臺技術部副總經理秦金衛(kimmking)2023-06-162Apache Dubbo/ShardingSphere PMC高可用可伸縮微服務架構合著作者 JVM 核心技術32講技術專欄作者阿里云 MVP/騰訊云 TVP/TGO 會員個人介紹十多年金融系統架構和數字化轉型經驗3PART ONE為什么銀行數字化轉型需要單元化PART TWO單元化架構具體包括哪些技術要點PART THREE如何實現單元化架構快捷高效落地401為什么銀行數字化轉型需要單元化銀行信息系統發展需要銀行數字化轉型的難點單元化架構帶來的價值5為什么銀行信息系統這么重要?金融是現代經
2、濟體系的命脈。而銀行是金融體系的核心,承載所有經濟活動,關系國計民生。6銀行信息系統發展階段1970-2000電子化/聯網化2000-2012信息化/移動化2013至今數字化/智能化關鍵詞:大機、小機,電算化90年代開始全國電子聯行;99-2000年人行天地聯網,覆蓋10000多網點,轉賬3163萬筆,交易金額23萬億。關鍵詞:核心,大集中,電子銀行工行Nova/中行SBS/農行ABIS;工行 99-04年完成全國大集中;農行 02-06年完成全國大集中;現代化支付和網絡渠道開始興起。關鍵詞:普惠金融,數字化轉型支付體系和營銷體系發展,電子渠道代替率高,業務創新快;分布式核心系統,主機下移;國
3、產化加速,開源自主可控。7銀行數字化轉型為什么這么復雜?業務從穩定-快速更新技術從保守-快速迭代數據從簡單-飛速暴增研發從瀑布-逐漸敏捷More is different-8單元化架構中小銀行(C+IOE)中小銀行(Java+IOE)中小型銀行(Java+去IOE)國有大行部分農信和股份行(COBOL、RPG等)基于中大機基于小機基于應用分布式單元化+云原生APP+DBDBDBDBDB應用集群應用集群分庫分表中間件PPP單元1單元2單元n基于分庫分表中間件應用集群分布式事務數據庫(GTM)PPP基于分布式事務數據庫大中型銀行(Java+去IOE)APPAPPAPPAPPAPPAPPAPPAPP
4、APPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPPAPP銀行核心分布式技術發展9所謂單元,是指一個能完成所有業務操作的自包含集合,在這個集合中包含了所有業務所需的所有服務,以及分配給這個單元的數據。單元化架構就是把單元作為系統部署的基本單位,在全站所有機房中部署數個單元,每個機房里的單元數目不定,任意一個單元都部署了系統所需的所有的應用,數據則是全量數據按照某種維度劃分后的一部分。-引用自金融級分布式架構素描單元化何為“單元化架構
5、”10大規模交易系統通過單元化分布式架構主要解決了以下關鍵問題:容災問題單元級容災庫級容災應用級容災容量和擴展性問題海量數據和交易單元可橫向擴展高可用問題單元級故障隔離 單元級灰度發布應用級灰度發布架構治理問題標準單元部署模型規范IT治理細粒度數據分片數據遷移便捷風險效率問題單元粒度隔離風險可控技術有更多選擇單元三層含義:容災單元容量單元治理單元單元化架構解決什么問題?11單元化架構帶來的優勢容量上限:提升整個系統的容量上限,以應對日益增長的客戶規模。性能提升:全鏈路降低交易的延時,提升系統性能和用戶體驗。容災粒度:提高容災能力,機房級容災,單元級容災,減小容災粒度。故障隔離:系統級/機房級/
6、單元級隔離,單元自治,減小故障影響面。異地多活:地域級容災;降低硬件資源成本;規避單機房資源瓶頸??缮炜s性:避免數據庫連接數瓶頸制約水平擴展;支持單元水平擴容?;叶劝l布:支持全鏈路灰度發布,隨時快速便捷發布新的功能版本。信創改造:使用特定單元進行創新研究,提供了極大的便利性。建設難度:縮小應用系統到合適的尺度規模,降低了系統建設難度。1202單元化架構具體包括哪些技術要點單元化整體架構模式維度劃分與數據分片單元化交易如何路由數據查詢與事務處理13 按業務維度切分數據,采用單元化架構,每個單元有自己的應用和數據;按業務維度切分數據,數據庫中間件作為代理,隔離應用和數據庫,屏蔽底層數據庫細節,簡化
7、應用架構;數據切分以及分布式事務由數據庫統一管理,理論上對應用透明;分布式定位服務分布式事務框架DB1(01)DB1(02)單元1API 網關單元路由DB2(01)DB2(02)單元2DB3(01)DB3(02)單元3DB4(01)DB4(02)單元4API 網關分布式事務框架Proxy層數據庫管理服務分片1-DBDB1(01)DB1(02)分片2-DBDB2(01)DB2(02)分片3-DBDB3(01)DB3(02)分片4-DBDB4(01)DB4(02)API 網關GTM(全局事務)Proxy層數據庫管理服務分片1-DBDB1(01)DB1(02)分片2-DBDB2(01)DB2(02)
8、分片3-DBDB3(01)DB3(02)分片4-DBDB4(01)DB4(02)單元化架構方案數據庫中間件方案分布式事務數據庫方案大中型銀行數字化轉型的三種主流分布式擴展架構目前這三種模式也在逐步融合,出現單元化+數據庫中間件,單元化+分布式數據庫的方案14單元維度如何劃分1、基本參考原則:參考經典的單元化GCR三Zone模型,按數據特點拆分。2、服務范圍原則:針對不同的提供服務方,或者可訪問的范圍進行拆分。3、部署模式原則:針對于不同組件的部署方式,不同的高可用災備要求,劃分到不同的單元類型。4、數據歸屬原則:各個單元類型的數據,落地到本單元的數據庫??鐔卧g的處理都通過遠程通信,在這個要求
9、下對不同歸屬的數據進行劃分。典型情況就是劃分為右側示例的4大類單元。業務單元1業務單元2全局單元本地單元業務單元N通用單元15業務數據如何拆分使用組織機構分片,還是客戶號分片?一般使用客戶號分片。如果使用分布式數據庫,則使用數據庫的內置拆分。拆分為多少個數據表分片合適?一般拆分為1000或1024分片。通過拆分平衡每個單元的數據量,控制每個單元、分庫、分表的數據量,以及應用側和數據庫的連接數。具體拆分為多少個業務單元?一般常見拆分5、10或16個單元。通過調整單元數和單元內的分庫數,實現連接數資源,資源利用率等的合理搭配。分片規則分片規模單元數量16交易請求如何路由客戶端SDK服務自動轉發請求
10、應用或網關集成企業級組件服務單元與分片尋址貫標通信上下文單元定位交易路由提供從客戶號或客戶要素,查詢客戶數據存儲的單元和分片的能力。微服務調用時首個服務或網關處獲取。數據通過多副本就近訪問。根據請求報文中的客戶號或客戶要素,將當前交易請求轉發到對應的單元去處理。一般情況可能會轉發到對應的網關,再由網關調用注冊中心獲取服務。17跨庫查詢如何處理實時查詢T+1查詢 通過分庫分表框架或中間件聚合 通過多寫聚合庫實現聚合查詢 通過數據庫流復制實現聚合 新舊切換過程中讀取舊庫 通過批量處理時將數據庫表進行下數,生成數據文件后聚合到下游 對于歷史查詢涉及的實時交易和歷史交易,將實時和歷史數據合并實現全量的
11、準實時數據18跨庫事務如何處理4.AT模式3.TCC模式1.XA模式5.消息事務模式2.SAGA模式盡量減少跨單元/跨庫的業務交易操作??紤]在保障一致性的前提下交易性能。分布式事務需與微服務、開發框架結合。目前主要實踐以SAGA模式為主,在熱點賬戶等場景也會考慮TCC模式。SAGATCC1903如何實現單元化架構快捷高效落地單元化架構落地效果單元化改造點與步驟單元化架構案例分享20同城-IDC2業務單元1公共單元DB-PDB-1弱從DB-2弱從DB-PDB-1強從DB-2強從ProxyP1P2P3P4APPAPP1-2APP2-2APP3-1APP4-1APP3-2APP4-2APP1-1AP
12、P2-2業務單元2DB-PDB-3主DB-4主DB-PDB-3強從DB-4強從ProxyP5P6P7P8APPAPP5-2APP6-2APP7-1APP8-1APP7-2APP8-2APP5-1APP6-1全局單元DB-PDB1弱從DB2強從DB-PDB1強從DB2弱從ProxyGP1GP2APPAPP-B-1APP-B-2APP-A-1APP-A-2APPAPP-B-1APP-B-2APP-A-1APP-A-2ProxyCP1DB-PDB主DB-PDB強從異地-IDC3業務單元1公共單元DB-PDB-1備DB-2備ProxyP1P2P3P4APPAPP3-1APP4-1APP1-1APP2-
13、2業務單元2DB-PDB-3備DB-3備ProxyP5P6P7P8APPAPP7-1APP8-1APP5-1APP6-1全局單元DB-PDB1備 DB2備ProxyGP1GP2APPAPP-B-1APP-A-1APPAPP-BAPP-AProxyCPDB-PDB備同城-IDC1業務單元1公共單元DB-PDB-1強從DB-2強從DB-PDB-1主DB-2主ProxyP1P2P3P4APPAPP1-2APP2-2APP3-1APP4-1APP3-2APP4-2APP1-1APP2-2業務單元2DB-PDB-3強從DB-4強從DB-PDB-3弱從DB-4弱從ProxyP5P6P7P8APPAPP5-
14、2APP6-2APP7-1APP8-1APP7-2APP8-2APP5-1APP6-1全局單元DB-PDB1主DB2強從DB-PDB1強從DB2主ProxyGP1GP2APPAPP-B-1APP-B-2APP-A-1APP-A-2APPAPP-B-1APP-B-2APP-A-1APP-A-2ProxyCP1DB-PDB主DB-PDB強從單元化架構落地是什么樣子的?21單元化改造點1.業務系統改造2.基礎組件SDK改造3.全局路由組件4.開發平臺改造5.批量開發框架改造6.分布式事務組件7.單元化相關規范貫標開發態運行態維護態1.微服務框架改造2.API網關改造3.交易轉發組件4.交易引擎改造5
15、.批量調度處理改造6.服務治理改造7.數據遷移/數據聚合1.運維平臺改造2.監控系統改造3.告警系統改造4.全鏈路監控系統5.全鏈路灰度發布6.多活容災切換22單元化落地步驟單元規劃技術選型組件改造數據遷移逐步上線規劃單元范圍,估算數據容量,確定單元劃分,設計分片規則,評估分片數量,制定路由方案。明確微服務框架,明確數據庫方案,明確分布式事務,明確分布式組件,明確高可用部署,明確兩地三中心。改造微服務框架,改造分布式組件,改造技術平臺,改造API網關,改造交易引擎,改造批量引擎。梳理遷移范圍,制定遷移方案,細化遷移步驟,演練遷移實施,驗證遷移數據,完成遷移目標。先行技術上線,業務試點運行,雙線
16、并行驗證,逐步遷移核心,外圍配套改造,全面實現升級。23單元化架構案例-銀行Y新一代核心系統Y行新一代個人業務核心系統采用單元化部署架構,采用開源+增強的自主可控研發模式,形成核心系統的快速彈性擴展支持能力。采用16單元64庫1024表拆分方式,兩地三中心部署。系統可用性超過99.99%,設計容量10億客戶,支持超過5萬TPS的交易峰值。24單元化架構案例-銀行Z新核心技術中臺Z行為實現軟件國產化,以及完成主機核心系統下遷,建設了一套微服務+單元化技術中臺用于承載原主機核心處理能力,實現一整套單元化架構。采用10單元+百庫千表拆分方式,四地八中心部署。設計容量支持15億用戶,10萬以上交易TPS。25單元化架構總結單元化架構在當前的銀行數字化轉型中如火如荼,也帶來了非常多意想不到的化學變化?;趩卧?,我們已經在當前的主流分布式架構在通過大量實踐解決了一系列技術和工程問題。同時,還有更多可以深入探討和持續研究的領域課題,等待著大家的挖掘,形成下一代的單元化架構。單元化+微服務單元化+分布式數據庫單元化+?單元化+技術平臺單元化+DevOps單元化+云原生26謝 謝 觀 看thanks27