- 快捷搜索
- 全站搜索
" />
全球IT市場(chǎng)正發(fā)生巨大的變化,云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能等新技術(shù)正在改寫游戲規(guī)則。主機(jī)一直以其高可用性、高吞吐率而備受大型銀行的青睞,但隨著分布式架構(gòu)的崛起,主機(jī)面臨著日益嚴(yán)峻的挑戰(zhàn)。為此,各家銀行都在積極探索“主機(jī)下移”的解決方案。主機(jī)下移不等于完全棄用,而是通過(guò)優(yōu)化系統(tǒng)架構(gòu),將部分應(yīng)用從集中式部署向分布式部署轉(zhuǎn)變,構(gòu)建多平臺(tái)多技術(shù)融合的架構(gòu)。主機(jī)下移旨在減少對(duì)主機(jī)的單方面依賴,實(shí)現(xiàn)自主可控,降低安全風(fēng)險(xiǎn)和成本。

中國(guó)建設(shè)銀行信息技術(shù)管理部總經(jīng)理 金磐石
本文對(duì)主機(jī)集中式架構(gòu)與分布式架構(gòu)進(jìn)行對(duì)比分析,提出“集中式+分布式”的融合架構(gòu),分享建設(shè)銀行新一代系統(tǒng)建設(shè)中,實(shí)踐多種主機(jī)下移方案的關(guān)鍵技術(shù)設(shè)計(jì)要點(diǎn),為央行推動(dòng)數(shù)字化架構(gòu)轉(zhuǎn)型提供實(shí)踐參考。
選擇主機(jī)下移需要撥開(kāi)迷霧看清方向
針對(duì)主機(jī)集中式架構(gòu)、開(kāi)放集中式架構(gòu)、分布式架構(gòu),我們從七個(gè)方面進(jìn)行了對(duì)比分析。
可擴(kuò)展性。主機(jī)集中式架構(gòu):應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)緊耦合,應(yīng)用系統(tǒng)運(yùn)行在同一套主機(jī)服務(wù)器集群中,擴(kuò)展性主要依賴主機(jī)系統(tǒng)平臺(tái),具有很強(qiáng)的縱向擴(kuò)展能力,不支持跨主機(jī)集群的橫向擴(kuò)展。分布式架構(gòu):應(yīng)用服務(wù)和數(shù)據(jù)庫(kù)服務(wù)松耦合,應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分別運(yùn)行在不同的服務(wù)器集群中,擴(kuò)展性主要依賴應(yīng)用平臺(tái),由于采用分庫(kù)分表技術(shù)及X86服務(wù)器,因此應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器均具有很強(qiáng)的橫向擴(kuò)展能力。開(kāi)放集中式架構(gòu):應(yīng)用服務(wù)和數(shù)據(jù)庫(kù)服務(wù)松耦合,擴(kuò)展性主要依賴于數(shù)據(jù)庫(kù)服務(wù)器縱向擴(kuò)展能力,如果采用小型機(jī),縱向擴(kuò)展能力略高于X86服務(wù)器。
高可用性。主機(jī)集中式架構(gòu)因并行架構(gòu)和硬件的高可靠性,可用性可達(dá)到99.999%。分布式架構(gòu)采用X86服務(wù)器,硬件的可靠性不如主機(jī),但是因采用分庫(kù)分表等技術(shù),系統(tǒng)整體可用性也可達(dá)到99.999%,并可避免因集中式架構(gòu)的數(shù)據(jù)庫(kù)不可用引起全局性故障的風(fēng)險(xiǎn)。開(kāi)放集中式架構(gòu)采用的小型機(jī)或X86服務(wù)器硬件可靠性低于主機(jī),整體系統(tǒng)可用性只能達(dá)到99.99%。
ACID模型和CAP理論。ACID模型是指數(shù)據(jù)庫(kù)事務(wù)正確執(zhí)行的四個(gè)基本要素的縮寫,包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。該模型主要適用于集中式數(shù)據(jù)庫(kù)系統(tǒng)。由于集中式數(shù)據(jù)庫(kù)系統(tǒng)共享存儲(chǔ),不存在將數(shù)據(jù)分片存放到多個(gè)數(shù)據(jù)庫(kù)的情況,因此只需支持ACID特性就能夠滿足強(qiáng)一致性事務(wù)處理要求,主機(jī)數(shù)據(jù)庫(kù)和開(kāi)放集中式數(shù)據(jù)庫(kù)是典型支持ACID模型的系統(tǒng)。
CAP理論是指一致性(Consistency)、可用性(Availability)、分區(qū)容忍性(Partition tolerance)三個(gè)要素最多只能同時(shí)實(shí)現(xiàn)兩點(diǎn),不可能三者兼顧。因此在進(jìn)行分布式架構(gòu)設(shè)計(jì)時(shí),必須做出取舍。對(duì)于分布式系統(tǒng),分區(qū)容忍性是基本要求,否則就失去分布式的價(jià)值,設(shè)計(jì)分布式系統(tǒng),就是在一致性和可用性之間進(jìn)行取舍。目前大多數(shù)分布式系統(tǒng)選用最終一致性代替強(qiáng)一致性,換取高可用性,屬于CAP理論中AP系統(tǒng)的范疇。CAP理論同樣適用于集中式數(shù)據(jù)庫(kù)系統(tǒng),事務(wù)ACID屬性實(shí)際包含在CAP理論“C”的內(nèi)容中,主機(jī)數(shù)據(jù)庫(kù)和開(kāi)放集中式數(shù)據(jù)庫(kù)因?yàn)闆](méi)有分區(qū)特性,屬于CAP理論中CA系統(tǒng)的范疇。
交易一致性是銀行核心業(yè)務(wù)系統(tǒng)的基本要求,遠(yuǎn)高于電商平臺(tái)和其他互聯(lián)網(wǎng)應(yīng)用。銀行的分布式架構(gòu)需要在滿足A P特性的基本要求下,針對(duì)銀行核心業(yè)務(wù)特點(diǎn)提升最終一致性的“一致性”保障,避免賬務(wù)風(fēng)險(xiǎn)。
系統(tǒng)復(fù)雜度。對(duì)于系統(tǒng)的擴(kuò)展性、可用性、一致性等特征,主機(jī)集中式架構(gòu)依賴主機(jī)系統(tǒng)平臺(tái)和數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn);開(kāi)放集中式架構(gòu)依賴開(kāi)放系統(tǒng)平臺(tái)和數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn);分布式架構(gòu)更多依賴應(yīng)用軟件平臺(tái)和應(yīng)用系統(tǒng)實(shí)現(xiàn)。因此采用分布式架構(gòu)的系統(tǒng)復(fù)雜度高于主機(jī)集中式系統(tǒng)和開(kāi)放集中式系統(tǒng),系統(tǒng)全生命周期的設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、運(yùn)維等工作的難度都有所增加。
敏捷性。主機(jī)集中式架構(gòu)和開(kāi)放集中式架構(gòu),系統(tǒng)緊耦合,單一系統(tǒng)規(guī)模龐大、功能繁雜,開(kāi)發(fā)和變更周期較長(zhǎng)。分布式架構(gòu)采用服務(wù)化、單元化設(shè)計(jì)思想和分庫(kù)分表技術(shù),將系統(tǒng)拆分為若干較小規(guī)模的獨(dú)立單元,每個(gè)單元獨(dú)立開(kāi)發(fā)部署,相比集中式架構(gòu)更易支持快速迭代開(kāi)發(fā)和灰度發(fā)布。
總體擁有成本?傮w成本不但需要考慮硬件、軟件、網(wǎng)絡(luò)及災(zāi)備建設(shè)等成本,還要考慮機(jī)房場(chǎng)地環(huán)境、能源成本,以及開(kāi)發(fā)成本、運(yùn)維管理和人力資源等成本。在給定的目標(biāo)可用性和一致性條件下,根據(jù)統(tǒng)計(jì)和匡算,分布式架構(gòu)(X86)的成本是集中式主機(jī)成本的1/10。
企業(yè)性質(zhì)。銀行等金融機(jī)構(gòu)更關(guān)注的是7×24小時(shí)不間斷地提供優(yōu)質(zhì)的服務(wù)以及良好的企業(yè)形象。所以我們認(rèn)為主機(jī)下移只是手段,信息安全、自主可控、架構(gòu)優(yōu)化、成本控制才是目的。
通過(guò)上述對(duì)比分析發(fā)現(xiàn),分布式架構(gòu)并非完美無(wú)缺,完全替代主機(jī)集中式架構(gòu)的條件還不成熟。銀行應(yīng)按照應(yīng)用的一致性、可用性、性能、開(kāi)發(fā)效率、成本等約束條件,合理選擇相應(yīng)架構(gòu)。我們?cè)谥鳈C(jī)下移的實(shí)踐中采用“集中式+分布式”的應(yīng)用架構(gòu)。將交易量大、可用性和一致性要求高、需求變動(dòng)不頻繁的關(guān)鍵應(yīng)用保留在主機(jī)上,也就是“好鋼用在刀刃上”。將交易量大、可用性要求高但一致性要求略低的重要應(yīng)用部署在開(kāi)放集中式和分布式平臺(tái)上。
目前權(quán)衡了應(yīng)用特點(diǎn)、安全性、成本等因素,主機(jī)下移的方案主要有三種。一是基于分布式架構(gòu)重構(gòu)應(yīng)用的整體下移方案,完全脫離主機(jī)平臺(tái);二是基于數(shù)據(jù)復(fù)制技術(shù)的查詢交易下移方案;三是基于數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)技術(shù)與數(shù)據(jù)同步技術(shù)的應(yīng)用層下移方案。
主機(jī)下移在建行新一代系統(tǒng)中的實(shí)踐
下面具體闡述三種下移方案的設(shè)計(jì)和技術(shù)要點(diǎn)。
1.基于分布式架構(gòu)的整體下移方案
核心思想:應(yīng)用層與數(shù)據(jù)服務(wù)層整體下移到分布式平臺(tái)。以X86和云計(jì)算為基礎(chǔ)、以數(shù)據(jù)切分、讀寫分離為特征。采用橫向擴(kuò)展的方式,通過(guò)增加服務(wù)器的數(shù)量,提升系統(tǒng)的處理能力,每個(gè)節(jié)點(diǎn)形成一個(gè)可獨(dú)立運(yùn)行的單元,保證系統(tǒng)整體的可用性。
建設(shè)銀行貸記卡管理系統(tǒng)是分布式架構(gòu)實(shí)現(xiàn)主機(jī)下移的典型應(yīng)用之一。將原主機(jī)平臺(tái)的賬單、報(bào)表、備忘錄等功能剝離到分布式平臺(tái)實(shí)現(xiàn),降低了主機(jī)資源消耗。
分布式架構(gòu)的核心在于并行拆分與一致性保證,下面介紹分布式架構(gòu)關(guān)鍵技術(shù)要點(diǎn)(如圖1所示)。

圖1 分布式架構(gòu)技術(shù)要點(diǎn)
(1)高并發(fā)處理機(jī)制。分庫(kù)分表:使用SBF數(shù)據(jù)分布模型解決分庫(kù)分表的問(wèn)題(即Sharding Key分區(qū)鍵-Data Bucket數(shù)據(jù)桶-Table Family表族)。其核心思想是應(yīng)用數(shù)據(jù)邏輯態(tài)與物理態(tài)的隔離,從請(qǐng)求數(shù)據(jù)識(shí)別出分區(qū)鍵,然后應(yīng)用算法確定數(shù)據(jù)桶的編號(hào),相同編號(hào)的數(shù)據(jù)桶形成一個(gè)表族。將數(shù)據(jù)桶映射為物理數(shù)據(jù)庫(kù)的表,根據(jù)數(shù)據(jù)庫(kù)的數(shù)量,將所有的表族均勻分布到各物理數(shù)據(jù)庫(kù)中。分布式緩存:對(duì)于讀多寫少的公共數(shù)據(jù),可采用分布式緩存技術(shù)實(shí)現(xiàn)數(shù)據(jù)共享,優(yōu)化訪問(wèn)性能。
(2)高可用機(jī)制。故障隔離:數(shù)據(jù)庫(kù)分庫(kù)分表后,在大幅提升系統(tǒng)處理性能的同時(shí),規(guī)避了大型單一集中式數(shù)據(jù)庫(kù)的運(yùn)行風(fēng)險(xiǎn)。通過(guò)“SBF”數(shù)據(jù)分布模型,準(zhǔn)確識(shí)別數(shù)據(jù)桶編號(hào)與物理數(shù)據(jù)庫(kù)的對(duì)應(yīng)關(guān)系,快速改變物理數(shù)據(jù)庫(kù)可用性的標(biāo)識(shí),實(shí)現(xiàn)故障隔離。集群架構(gòu):每個(gè)分庫(kù)仍然應(yīng)該保持集群架構(gòu),這種橫向擴(kuò)展的部署架構(gòu)具有無(wú)限性能擴(kuò)展和高可用性。
(3)一致性保證。日間一致性:日間對(duì)于調(diào)用外部組件的失敗交易,支持交易重發(fā)或沖正機(jī)制,保證交易事中一致性。為避免頻繁的沖正和重發(fā)影響正常交易,對(duì)于沖正和重發(fā)失敗次數(shù)達(dá)到指定閾值的交易,不再進(jìn)行沖正和重發(fā)處理,轉(zhuǎn)由日終核對(duì)機(jī)制處理。日終一致性:對(duì)于日間經(jīng)多次重發(fā)或沖正失敗的交易,采用日終批量方式與關(guān)聯(lián)方進(jìn)行核對(duì),確保一致性。
2.基于數(shù)據(jù)復(fù)制技術(shù)的查詢下移方案
核心思想:采用數(shù)據(jù)復(fù)制工具將主機(jī)數(shù)據(jù)以準(zhǔn)實(shí)時(shí)的方式復(fù)制到開(kāi)放集中式數(shù)據(jù)庫(kù),查詢交易所需信息直接從開(kāi)放集中式數(shù)據(jù)庫(kù)中獲取,不再訪問(wèn)主機(jī)數(shù)據(jù)庫(kù)。
建設(shè)銀行對(duì)公存貸款系統(tǒng)是采用基于數(shù)據(jù)同步技術(shù)實(shí)現(xiàn)主機(jī)查詢下移的。該方案遵循讀寫分離的原則,將涉及客戶合約、賬戶、介質(zhì)的維護(hù)類交易及賬務(wù)類交易保留在主機(jī)平臺(tái),將交易明細(xì)的查詢類交易遷移到開(kāi)放平臺(tái),主機(jī)和開(kāi)放平臺(tái)之間采用準(zhǔn)實(shí)時(shí)方式同步,保證賬戶信息及流水信息的時(shí)效性。
數(shù)據(jù)復(fù)制下移方案的關(guān)鍵在于控制數(shù)據(jù)延遲和高可用保障機(jī)制。由于采用異步復(fù)制技術(shù),開(kāi)放平臺(tái)的副本數(shù)據(jù)與主機(jī)平臺(tái)的主本數(shù)據(jù)存在延遲,如果延遲時(shí)間過(guò)長(zhǎng)就會(huì)影響用戶體驗(yàn)?刂茢(shù)據(jù)延遲的時(shí)間,就是保障不影響用戶體驗(yàn)的前提下將盡可能多的查詢交易下移到開(kāi)放平臺(tái),節(jié)省主機(jī)資源。對(duì)公存款查詢系統(tǒng)通過(guò)優(yōu)化數(shù)據(jù)復(fù)制策略、使用高性能X86服務(wù)器、數(shù)據(jù)庫(kù)優(yōu)化等手段,保障把數(shù)據(jù)延遲時(shí)間控制在一定范圍內(nèi)。
高可用保障機(jī)制:利用企業(yè)服務(wù)總線的訪問(wèn)控制機(jī)制控制前端接入渠道或組件,建立第一重保障機(jī)制,實(shí)現(xiàn)外圍組件訪問(wèn)對(duì)公存款系統(tǒng)的查詢交易切換到開(kāi)放平臺(tái)。對(duì)公存款查詢系統(tǒng)建立第二重保障機(jī)制,當(dāng)數(shù)據(jù)延遲比較高時(shí),以服務(wù)方式穿透訪問(wèn)主機(jī)數(shù)據(jù),確保結(jié)息日等數(shù)據(jù)延遲比較大的特殊時(shí)點(diǎn)服務(wù)也能夠正常運(yùn)行。建立根據(jù)不同數(shù)據(jù)延遲容忍度的不同具體使用場(chǎng)景采用不同的數(shù)據(jù)訪問(wèn)策略的第三重保障機(jī)制,對(duì)于數(shù)據(jù)實(shí)時(shí)性要求極高的場(chǎng)景以服務(wù)方式穿透訪問(wèn)主機(jī)數(shù)據(jù),確保“新開(kāi)戶并聯(lián)動(dòng)簽約”、“招投標(biāo)”等對(duì)實(shí)時(shí)性要求極高的場(chǎng)景也能夠正常運(yùn)行。
3.基于數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)的應(yīng)用層查詢下移方案
核心思想:將數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)技術(shù)與數(shù)據(jù)同步技術(shù)融合。一方面,基于數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)技術(shù)(SQLJ)將數(shù)據(jù)服務(wù)層保留在主機(jī)平臺(tái),應(yīng)用邏輯下移至分布式平臺(tái)。另一方面,融合數(shù)據(jù)同步技術(shù),將部分?jǐn)?shù)據(jù)落地到分布式平臺(tái),進(jìn)一步減少對(duì)主機(jī)的訪問(wèn)量。
客戶信息系統(tǒng)的查詢類交易按照應(yīng)用層下移的方案進(jìn)行了改造。下文中圖2展示了傳統(tǒng)的應(yīng)用架構(gòu);圖3展示了基于SQLJ改造后的中間架構(gòu);圖4展示了創(chuàng)新應(yīng)用層下移架構(gòu)。

圖2 傳統(tǒng)應(yīng)用架構(gòu)

圖3 基于SQLJ 改造后中間架構(gòu)

圖4 創(chuàng)新的應(yīng)用層下移架構(gòu)
(1)數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)(SQLJ)。傳統(tǒng)的客戶信息交易從Web界面發(fā)起,經(jīng)過(guò)企業(yè)總線路由到主機(jī)平臺(tái),在主機(jī)平臺(tái)調(diào)起交易,并在主機(jī)平臺(tái)數(shù)據(jù)庫(kù)中完成數(shù)據(jù)查詢,將結(jié)果按原交易路徑返回。在交易全路徑中,邏輯服務(wù)層與數(shù)據(jù)服務(wù)層均部署在主機(jī)平臺(tái)。經(jīng)過(guò)SQLJ改造后的客戶信息系統(tǒng),交易仍然通過(guò)Web界面發(fā)起,但不再經(jīng)過(guò)企業(yè)總線路由,而是Web端緩存交易注冊(cè)表副本,直接調(diào)用部署在分布式平臺(tái)的應(yīng)用,通過(guò)SQLJ技術(shù)遠(yuǎn)程訪問(wèn)主機(jī)平臺(tái)DB2數(shù)據(jù)庫(kù)。由此,應(yīng)用邏輯層由主機(jī)平臺(tái)的中間件下移到分布式平臺(tái)應(yīng)用服務(wù)器。
(2)SQLJ技術(shù)與數(shù)據(jù)同步技術(shù)融合。通過(guò)SQLJ技術(shù)實(shí)現(xiàn)新一代客戶信息系統(tǒng)查詢交易下移后,基于現(xiàn)有架構(gòu)又進(jìn)行了二次優(yōu)化。在主機(jī)日終批處理時(shí),通過(guò)批量的方式將變化的數(shù)據(jù)同步到分布式平臺(tái)。在聯(lián)機(jī)時(shí)段,當(dāng)主機(jī)平臺(tái)完成客戶信息修改時(shí),通過(guò)EDA的方式向分布式平臺(tái)發(fā)送數(shù)據(jù)變更信號(hào),當(dāng)分布式平臺(tái)接收到變更信號(hào)后,會(huì)立即觸發(fā)起一筆數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)請(qǐng)求(即基于SQJ的交易),將主機(jī)平臺(tái)修改后的數(shù)據(jù)同步到分布式平臺(tái)數(shù)據(jù)庫(kù)中,同時(shí)修改分布式平臺(tái)的變更登記表,標(biāo)識(shí)此條記錄已經(jīng)同步。在聯(lián)機(jī)時(shí)段,當(dāng)分布式平臺(tái)執(zhí)行查詢請(qǐng)求時(shí),首先會(huì)查詢數(shù)據(jù)變更登記表,如果所查詢記錄已為同步狀態(tài),則會(huì)在本地ORALE數(shù)據(jù)庫(kù)完成查詢并返回。如果如查詢記錄為未同步狀態(tài)或分布式平臺(tái)查詢無(wú)此數(shù)據(jù),則發(fā)起數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)請(qǐng)求,遠(yuǎn)程訪問(wèn)主機(jī)平臺(tái)數(shù)據(jù)庫(kù)完成查詢交易。
(3)協(xié)處理器。主機(jī)配置的協(xié)處理器(ZIIP),可以分擔(dān)數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)中所產(chǎn)生的CPU消耗,而協(xié)處理器的價(jià)格僅是普通處理器的2.67%。
結(jié)語(yǔ)
相比集中式處理架構(gòu),分布式架構(gòu)具有高性能、易擴(kuò)展、低成本等優(yōu)勢(shì)。但在銀行的一些關(guān)鍵應(yīng)用領(lǐng)域,集中式架構(gòu)在穩(wěn)定性、一致性方面依然具有一定優(yōu)勢(shì)。目前來(lái)看,“集中式+分布式”的融合架構(gòu)是一種適合銀行業(yè)務(wù)特點(diǎn)的架構(gòu)方案,該架構(gòu)融合互聯(lián)網(wǎng)和銀行傳統(tǒng)IT技術(shù),各有優(yōu)勢(shì),互為補(bǔ)充;“集中式+分布式”強(qiáng)調(diào)整體上采用分布式架構(gòu),一些關(guān)鍵應(yīng)用上采用集中式架構(gòu),這將是銀行IT架構(gòu)未來(lái)發(fā)展趨勢(shì)?傮w來(lái)說(shuō),銀行業(yè)未來(lái)IT系統(tǒng)架構(gòu)需要在保持傳統(tǒng)金融行業(yè)對(duì)于“高可用、高標(biāo)準(zhǔn)和低風(fēng)險(xiǎn)”的特性的同時(shí),滿足“高性能、高彈性和低成本”的要求。
在架構(gòu)轉(zhuǎn)型過(guò)程中,不能簡(jiǎn)單照搬互聯(lián)網(wǎng)金融公司經(jīng)驗(yàn),而要根據(jù)銀行自身業(yè)務(wù)特點(diǎn)和不同應(yīng)用場(chǎng)景,結(jié)合現(xiàn)有的技術(shù)資源,做好IT架構(gòu)研究。建設(shè)銀行的主機(jī)下移實(shí)踐,愿為“加快架構(gòu)轉(zhuǎn)型,建設(shè)數(shù)字央行”提供經(jīng)驗(yàn)分享。
(文章來(lái)源:金融電子化雜志)
掃碼即可手機(jī)
閱讀轉(zhuǎn)發(fā)此文
ITIL是一套方法論,能為IT服務(wù)提供良好的指導(dǎo)思想,將工作中習(xí)慣的以技術(shù)為
在日切雙附加檔追溯法的基礎(chǔ)上進(jìn)行時(shí)點(diǎn)的控制,可以減少附加檔中的數(shù)據(jù)量,