数字化转型下的银行云单元架构
01
為什么需要云單元架構(gòu)
云單元架構(gòu)是在微服務(wù)架構(gòu)上發(fā)展起來的解決 IT 系統(tǒng)擴(kuò)展性及業(yè)務(wù)連續(xù)性的技術(shù)架構(gòu),它并不是隨著微服務(wù)架構(gòu)一起誕生的,而是 IT 系統(tǒng)發(fā)展到一定規(guī)模且對業(yè)務(wù)連續(xù)性有高要求的情況下需要具備的技術(shù)能力。
從集中式架構(gòu)到分布式架構(gòu)
傳統(tǒng)的集中式 IT 系統(tǒng)架構(gòu)如下圖所示,由小型機(jī)(比如 IBM 的 P 系列等)、存儲設(shè)備(EMC 的 VNX 系列等)、硬件負(fù)載均衡設(shè)備(典型的比如 F5)等基礎(chǔ)設(shè)施構(gòu)成,這些硬件設(shè)備具備很強(qiáng)的穩(wěn)定性,因此在金融行業(yè)這些產(chǎn)品具有很高的市場占用率。
隨著金融行業(yè)新業(yè)務(wù)的不斷擴(kuò)展,集中式架構(gòu)的弊端逐漸顯現(xiàn)出來,比如小型機(jī)雖然性能足夠強(qiáng)大,但是面對突增的業(yè)務(wù),處理能力往往很難快速提升。F5這類硬件負(fù)載均衡設(shè)備,雖然單機(jī)處理能力足夠強(qiáng)大,但是成本高昂,無法進(jìn)行大規(guī)模冗余化配備以保障其可用能力。此外,類似 EMC 這樣的高端存儲設(shè)備,在面向海量數(shù)據(jù)的情況下,單位存儲成本巨大,在擴(kuò)展性上也無法與采用 PC 的分布式存儲相比。因此,在金融行業(yè)的一些新業(yè)務(wù)場景甚至部分非核心系統(tǒng)上,原有的架構(gòu)已經(jīng)開始嘗試向分布式架構(gòu)演進(jìn),如下圖所示。在分布式系統(tǒng)架構(gòu)下,普通的 PC 機(jī)取代了小型機(jī),用來部署應(yīng)用系統(tǒng),通過多機(jī)部署,應(yīng)用系統(tǒng)的冗余能力大幅提升,單機(jī)故障的影響也隨之大幅降低。在流量負(fù)載上,分布式架構(gòu)往往會引入軟負(fù)載能力,通過軟件實(shí)現(xiàn)流量的負(fù)載均衡,確保在流量路由層面也具備更好的冗余能力。在數(shù)據(jù)庫層面,隨著 MySQL 這類開源數(shù)據(jù)庫的廣泛使用,在金融行業(yè)分布式系統(tǒng)架構(gòu)演進(jìn)過程中,這種類型的數(shù)據(jù)庫也逐漸取代了一部分 Oracle 數(shù)據(jù)庫,成為應(yīng)用系統(tǒng)數(shù)據(jù)存儲的關(guān)鍵組件。
分布式系統(tǒng)架構(gòu)演進(jìn)
分布式系統(tǒng)架構(gòu)的演進(jìn)并不是一蹴而就的,根據(jù)業(yè)務(wù)在不同發(fā)展階段的需求,分布式系統(tǒng)的架構(gòu)需要根據(jù)實(shí)際情況做出相應(yīng)的變化。通常,一個分布式系統(tǒng)架構(gòu)的演進(jìn)往往會經(jīng)歷這些歷史階段:單體架構(gòu)、應(yīng)用與數(shù)據(jù)庫服務(wù)器拆分、緩存/搜索的能力引入、數(shù)據(jù)庫讀寫分離、數(shù)據(jù)庫水平/垂直拆分、應(yīng)用拆分、微服務(wù)化等。當(dāng)然,并不是所有的系統(tǒng)都會經(jīng)歷全部這些階段,一些較為核心的系統(tǒng)可能會跳過前面幾個階段,直接用已經(jīng)成熟的微服務(wù)架構(gòu)來搭建服務(wù)。
02
微服務(wù)架構(gòu)下的容災(zāi)和容量問題
容災(zāi)問題
分布式架構(gòu)在一定程度上將業(yè)務(wù)系統(tǒng)的計(jì)算能力和數(shù)據(jù)進(jìn)行拆分,并通過負(fù)載均衡系統(tǒng)將流量按照一定規(guī)則路由到不同的節(jié)點(diǎn)進(jìn)行處理,因此,在分布式架構(gòu)下系統(tǒng)的處理能力不再是“單點(diǎn)”的。隨著微服務(wù)架構(gòu)的升級,應(yīng)用變得更加輕量化,系統(tǒng)的單機(jī)“自愈”能力能夠得到充分的利用,應(yīng)用在出現(xiàn)一些單機(jī)問題時往往可以通過快速重啟等手段迅速恢復(fù)業(yè)務(wù)。但是,單機(jī)恢復(fù)能力并不一定在任何故障場景中都能適用,在出現(xiàn)城市級斷電或者網(wǎng)絡(luò)故障等極端場景中,應(yīng)用系統(tǒng)往往不是一臺機(jī)器出現(xiàn)問題,而是這個區(qū)域的所有服務(wù)都出現(xiàn)問題。這個時候,如果沒有一種災(zāi)備恢復(fù)機(jī)制,保障所有服務(wù)可快速切換到新的服務(wù)區(qū)域,業(yè)務(wù)系統(tǒng)的恢復(fù)時長將會變得非常不可控。因此,核心系統(tǒng)的同城/異地災(zāi)備能力建設(shè)顯得尤為重要。為了使業(yè)務(wù)系統(tǒng)具備更高的風(fēng)險抵抗能力,在進(jìn)行機(jī)房選址時,往往會選擇一個距離較遠(yuǎn)(超過 1000 千米)的機(jī)房作為其中的一個災(zāi)備機(jī)房,如下圖所示。當(dāng)發(fā)生城市級故障時,業(yè)務(wù)系統(tǒng)需要具備隨時可切換至城市二機(jī)房的能力。但現(xiàn)實(shí)情況是,由于城市二機(jī)房長時間沒有流量進(jìn)行常態(tài)化驗(yàn)證,業(yè)務(wù)流量切換過去以后并不能百分之百保障業(yè)務(wù)處理沒有問題,因此,這種情況下的容災(zāi)切換往往需要冒著較大的風(fēng)險。
容量問題
在分布式系統(tǒng)架構(gòu)下,應(yīng)用服務(wù)的服務(wù)器隨著用戶需求的增長不斷進(jìn)行橫向擴(kuò)展,單個應(yīng)用的機(jī)器數(shù)變得越來越多,由于用戶流量是通過負(fù)載均衡隨機(jī)分配給每臺機(jī)器的,因此這個應(yīng)用的每臺機(jī)器都會跟數(shù)據(jù)庫建立起一定數(shù)量的連接,這就導(dǎo)致隨著應(yīng)用容器的增長,終有一天應(yīng)用訪問會達(dá)到數(shù)據(jù)庫的連接數(shù)上限。如下圖所示,單個 DB 承載的連接數(shù)通常跟操作系統(tǒng)的線程數(shù)上限有一定關(guān)系,假設(shè)每臺機(jī)器增加 100 個連接,單個 DB 的連接總數(shù)總有一天會被占滿。
03
云單元架構(gòu)的誕生
云單元架構(gòu)是指在多機(jī)房部署架構(gòu)下,對業(yè)務(wù)處理能力進(jìn)行邏輯上的單元劃分,使業(yè)務(wù)流量按照一定規(guī)則分配到各個單元中,同時盡量確保用戶流量始終收斂在一個單元內(nèi)完成的架構(gòu)。在云單元架構(gòu)下,每個單元的流量會按照特定的規(guī)則分配到不同的應(yīng)用容器中,同時通過分庫分表規(guī)則路由到不同的數(shù)據(jù)庫分庫,如下圖所示。由于每個單元的容器數(shù)量有限,因此,單元內(nèi)的服務(wù)器擴(kuò)容不會導(dǎo)致數(shù)據(jù)庫達(dá)到連接數(shù)上限。同時,通過單元的新增,又可以保障系統(tǒng)容量可以進(jìn)行理論上的無限擴(kuò)展。
云單元架構(gòu)總覽
云單元架構(gòu)的核心是通過單元化部署使整體架構(gòu)具備異地多數(shù)據(jù)中心并行計(jì)算能力,同時基于金融級的分布式關(guān)系型數(shù)據(jù)庫,通過多機(jī)房部署實(shí)現(xiàn)城市級故障下數(shù)據(jù)無損容災(zāi)切換。通過云單元架構(gòu)擴(kuò)展能力,業(yè)務(wù)可以在不同地域的 IDC(Internet Data Center,互聯(lián)網(wǎng)數(shù)據(jù)中心)中部署多個 LDC(Logic Data Center,邏輯數(shù)據(jù)中心),且每個 LDC 單元都是“活”的,日常承接線上真實(shí)業(yè)務(wù)流量,以確保每個邏輯單元的穩(wěn)定性與業(yè)務(wù)正確性。當(dāng)故障發(fā)生時,可以進(jìn)行 LDC 單元之間的快速切換,一個 LDC 單元對應(yīng)的災(zāi)備 LDC 單元也是一個“活”的單元。為確保異地機(jī)房能日常承載業(yè)務(wù)流量,實(shí)現(xiàn)了跨機(jī)房的服務(wù)注冊與發(fā)現(xiàn)能力,提供了跨機(jī)房的服務(wù)調(diào)用路由邏輯,從入口流量到分布式服務(wù)、中間件和底層數(shù)據(jù)庫,全鏈路消除了單點(diǎn),使整體服務(wù)都具備了跨機(jī)房、跨地域的擴(kuò)展能力。網(wǎng)商銀行總體架構(gòu)如下圖所示。
04
云單元架構(gòu)目標(biāo)
云單元架構(gòu)的設(shè)計(jì)目標(biāo)主要包含以下幾個方面:(1)具備系統(tǒng)跨地域、快速彈性部署的能力;(2)具備流量可隨時動態(tài)調(diào)配的全業(yè)務(wù)“多地多活”的能力;(3)具備一體化研發(fā)運(yùn)維能力;(4)具備海量業(yè)務(wù)并行處理的能力。
跨地域彈性部署
在分布式服務(wù)設(shè)計(jì)領(lǐng)域,一個云單元就是滿足某個分區(qū)所有業(yè)務(wù)操作的自包含集合體。這個集合體可以按照用戶、地域、業(yè)務(wù)類型等不同維度進(jìn)行單元化的數(shù)據(jù)拆分和獨(dú)立部署?;谶@種單元化的部署能力,可以靈活地進(jìn)行多地、多數(shù)據(jù)中心的建設(shè),如下圖所示。
有了對邏輯單元的快速搭建和部署以及一鍵單元建站能力,在未來面臨大容量需求時,可以通過在云計(jì)算平臺上快速進(jìn)行資源調(diào)度,構(gòu)建新的處理單元來部署應(yīng)用與數(shù)據(jù)庫,然后將流量與數(shù)據(jù)“彈出”到新的單元,快速提升系統(tǒng)容量。當(dāng)流量消失后,再將流量與數(shù)據(jù)“彈回”,釋放云計(jì)算平臺上的資源,動態(tài)地擴(kuò)充單機(jī)房容量。當(dāng)單機(jī)房容量不夠時,通過增加新的異地 IDC 機(jī)房擴(kuò)充總體容量,總體容量不受距離、地域以及物理資源的限制,真正實(shí)現(xiàn)了彈性、單元化的部署能力。多機(jī)房流量分布如下圖所示。
全業(yè)務(wù)“多地多活”
云單元架構(gòu)的核心目標(biāo)之一是保障銀行在多個城市(不同城市之間距離超過1000 千米)的邏輯單元都具備處理全量業(yè)務(wù)的能力,只有這樣才能充分利用各城市的存儲、計(jì)算等資源,同時又能在出現(xiàn)城市級故障時,某個邏輯單元的用戶可以被其他城市的 IDC 所接管,繼續(xù)為用戶提供服務(wù)。
在形成單元化彈性部署的能力的基礎(chǔ)上,不同邏輯單元之間可以將分區(qū)對應(yīng)的流量根據(jù)邏輯單元資源的負(fù)載情況靈活調(diào)整,通過流量調(diào)撥,將不同用戶的請求分發(fā)到不同的數(shù)據(jù)中心進(jìn)行處理,所有數(shù)據(jù)中心同時承載業(yè)務(wù)流量,達(dá)到全業(yè)務(wù)“多地多活”服務(wù)模式。這種模式結(jié)合異地機(jī)房的資金清算專線鏈路的打通,可以保證任一機(jī)房級故障均不影響銀行業(yè)務(wù)的整體對外服務(wù)。全業(yè)務(wù)“異地多活”模式如下圖所示。
一體化研發(fā)運(yùn)維
在建設(shè)“多地多活”技術(shù)架構(gòu)體系的過程中,原有研發(fā)平臺已經(jīng)不能適應(yīng)新的架構(gòu)體系,需要建設(shè)新研發(fā)協(xié)作平臺來支持架構(gòu)升級,同時顯著提升需求迭代效率,以及質(zhì)量、風(fēng)險控制水平和產(chǎn)能。通過打造全新的一站式研發(fā)協(xié)作平臺,實(shí)現(xiàn)了端到端的全流程、全角色的持續(xù)交付管理,將需求迭代、代碼開發(fā)、發(fā)布管控等流程并行處理,并在關(guān)鍵節(jié)點(diǎn)上建立了同步機(jī)制,業(yè)務(wù)需求方、產(chǎn)品設(shè)計(jì)人員、項(xiàng)目管理人員、開發(fā)測試人員能夠統(tǒng)一在一個研發(fā)協(xié)作流程中,完成高效協(xié)同工作。研發(fā)人員在平臺上可以靈活地獲取測試需要的服務(wù)器資源,平臺提供一鍵部署研發(fā)服務(wù)器的能力,支持快速搭建項(xiàng)目環(huán)境,高效地在多個環(huán)境中完成基礎(chǔ)配置變更(主要是中間件的一些配置),在完成流程審批后,可以將該版本發(fā)布到多個環(huán)境中,從線下到線上全流程無縫對接,構(gòu)建一站式持續(xù)交付能力,減小“異地多活”技術(shù)架構(gòu)體系在配置修改、環(huán)境構(gòu)建和發(fā)布部署等方面帶來的復(fù)雜度。
海量交易處理能力
隨著 IoT(物聯(lián)網(wǎng))技術(shù)的迅猛發(fā)展,未來將從互聯(lián)網(wǎng)時代步入萬物互聯(lián)時代,無處不在的交易終端和無數(shù)新的交易場景,會繼續(xù)帶來金融交易量的指數(shù)級增長。什么樣的架構(gòu)與技術(shù)可以處理萬物互聯(lián)時代的海量交易,是需要未雨綢繆的。
云單元架構(gòu)要解決的一個核心問題是海量交易的處理能力問題,大多數(shù)業(yè)務(wù)并不是一誕生就具備海量用戶的,交易量是逐漸增長的,那么在架構(gòu)上我們既需要具備一定的前瞻性,又需要具備針對不同量級的業(yè)務(wù)進(jìn)行分級實(shí)施。比如在設(shè)計(jì)上要支持全行單日百億筆以上的處理量,實(shí)現(xiàn)上會支持 10 億筆處理量,部署上會支持 3 億~5 億筆處理量。
在數(shù)字化時代的當(dāng)下,金融需求出現(xiàn)了場景化、碎片化、多樣化、長尾化、普惠化的新特點(diǎn),百年未有的變化沖擊著傳統(tǒng)金融級IT架構(gòu)。
新金融級IT架構(gòu)應(yīng)該包含什么樣的新能力?
關(guān)鍵挑戰(zhàn)是什么?
如何進(jìn)行穩(wěn)妥升級轉(zhuǎn)型?
新興技術(shù)如何支撐金融級架構(gòu)演進(jìn)?
核心金融系統(tǒng)如何保證風(fēng)險可控?
業(yè)務(wù)架構(gòu)如何適應(yīng)數(shù)字化要求?
信息安全建設(shè)如何為業(yè)務(wù)和技術(shù)發(fā)展保駕護(hù)航?
為了幫助同行在了解浙江網(wǎng)商銀行(以下簡稱“網(wǎng)商銀行”)IT發(fā)展歷程的同時,也能獲得一些解答上述問題的啟發(fā),網(wǎng)商銀行技術(shù)編委會特地寫就了《金融級IT架構(gòu):數(shù)字銀行的云原生架構(gòu)解密》一書,期望能給同行帶來一些可參考、可借鑒、可落地的經(jīng)驗(yàn)。
如果你想了解更多金融級IT架構(gòu)的構(gòu)建細(xì)節(jié),本書一定不可錯過!
往期推薦
漫畫:據(jù)說很多搞軟件的羨慕硬件工程師
一線大廠的企業(yè)云原生成本優(yōu)化實(shí)踐指南
源三:聊聊注冊中心在螞蟻集團(tuán)的降本提效之路
聊聊技術(shù)人的“績效考核”
敏捷效能提升的五大要素與誤區(qū)
總結(jié)
以上是生活随笔為你收集整理的数字化转型下的银行云单元架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 2112 HDU Today 最
- 下一篇: NYOJ 20 吝啬的国度 (搜索)