互聯(lián)網(wǎng)金融架構(gòu)案例詳解(數(shù)字銀行的云原*架構(gòu)解密解析)
最近斷斷續(xù)續(xù)花了差不多2到3周的時(shí)間閱讀完由電子工業(yè)出版社出版的《金融級(jí)IT架構(gòu):數(shù)字銀行的云原生架構(gòu)解密》的這本書,作者是作者是網(wǎng)商銀行技術(shù)編委會(huì)。
本書契合了當(dāng)前銀行業(yè)分布式架構(gòu)轉(zhuǎn)型趨勢(shì),內(nèi)容是經(jīng)過實(shí)踐檢驗(yàn)的領(lǐng)先技術(shù)介紹了網(wǎng)商銀行IT技術(shù)架構(gòu)演進(jìn)路線,涵蓋了分布式、單元化、彈性混合云、云原生多個(gè)基礎(chǔ)架構(gòu)領(lǐng)域,同時(shí)介紹了技術(shù)風(fēng)險(xiǎn)、安全可信、業(yè)務(wù)架構(gòu)等多方面的技術(shù)實(shí)踐經(jīng)驗(yàn)。
對(duì)于這本書實(shí)際很早搜索云原生相關(guān)書籍的時(shí)候就搜索到,但是一看標(biāo)題是金融IT架構(gòu)方面的因此沒有引起太多的重視,后面由華章圖書贈(zèng)閱后才有幸閱讀到該書,讀完以后有一種相見恨晚的感覺。
對(duì)于網(wǎng)商銀行個(gè)人原來不熟悉,開始覺得奇怪為何網(wǎng)商銀行能夠?qū)懗鲈摃竺嫔暇W(wǎng)一搜索才了解到網(wǎng)商銀行是由螞蟻集團(tuán)作為大股東發(fā)起設(shè)立的中國(guó)第一家核心系統(tǒng)基于云計(jì)算架構(gòu)的商業(yè)銀行。它作為銀監(jiān)會(huì)批準(zhǔn)的中國(guó)首批5家民營(yíng)銀行之一,于2015年6月25日正式開業(yè)。所以網(wǎng)商銀行服務(wù)小微企業(yè)本身業(yè)務(wù)量也很大,同時(shí)由于螞蟻集團(tuán)是大股東,因此在整個(gè)IT基礎(chǔ)設(shè)施和技術(shù)架構(gòu)搭建中采用了阿里,螞蟻金服很大開源的技術(shù)組件和架構(gòu)。或者說網(wǎng)商銀行很大技術(shù)人員本身就是前阿里的技術(shù)專家。
因此網(wǎng)商銀行技術(shù)編委會(huì)能夠?qū)懗鲈摃簿筒黄婀至恕?/p>
但是為啥是整個(gè)編委會(huì)而非單個(gè)作者,這部分覆蓋的內(nèi)容相當(dāng)廣泛,從IT基礎(chǔ)設(shè)施架構(gòu),到云原生,到安全可信,到中臺(tái)等。每一個(gè)單獨(dú)的章節(jié)內(nèi)容都有足夠的深度,很難有一個(gè)人能夠都多有細(xì)分技術(shù)領(lǐng)域都掌握到如此程度。
而且基本上每個(gè)部分的內(nèi)容一看就是來源于IT架構(gòu)搭建的一線實(shí)踐所以,包括很多經(jīng)驗(yàn)點(diǎn)的分享也來源于大量實(shí)踐復(fù)盤,這就不是一般的技術(shù)書籍能夠所以到的點(diǎn)了。
根據(jù)該書的內(nèi)容簡(jiǎn)介我們也可以看到同樣的內(nèi)容說明。
介紹了網(wǎng)商銀行成立至今的IT技術(shù)架構(gòu)演進(jìn)路線,涵蓋了分布式、單元化、彈性混合云、云原生多個(gè)基礎(chǔ)架構(gòu)領(lǐng)域,同時(shí)介紹了技術(shù)風(fēng)險(xiǎn)、安全可信、業(yè)務(wù)架構(gòu)等多方面的技術(shù)實(shí)踐經(jīng)驗(yàn),我們希望和讀者分享網(wǎng)商銀行在金融級(jí)IT技術(shù)上做的獨(dú)特探索,跟大家探討數(shù)字化時(shí)代金融級(jí)IT架構(gòu)的發(fā)展方向。
本書作者是網(wǎng)商銀行核心架構(gòu)師,深度參與了相關(guān)技術(shù)方案從前期設(shè)計(jì)到后期投產(chǎn)的完整過程,內(nèi)容清晰且權(quán)威。本書以網(wǎng)商銀行自身技術(shù)實(shí)踐為主線展開,講述的內(nèi)容代表了領(lǐng)先的技術(shù)方向,相關(guān)技術(shù)經(jīng)過了真實(shí)的生產(chǎn)環(huán)境錘煉,包含了網(wǎng)商銀行技術(shù)團(tuán)隊(duì)獨(dú)到的實(shí)踐經(jīng)驗(yàn),書中闡述的核心技術(shù)榮獲中國(guó)人民銀行頒發(fā)的 “銀行科技發(fā)展獎(jiǎng)”二等獎(jiǎng)。
這本書不僅僅是適合金融行業(yè)IT從業(yè)人員閱讀,也同樣適用于需要構(gòu)建集團(tuán)型大的IT基礎(chǔ)設(shè)施和云原生架構(gòu)的人員閱讀。很多金融行業(yè)在分布式,高可用,彈性擴(kuò)展,安全等方面的架構(gòu)和實(shí)踐經(jīng)驗(yàn)積累完全適用于大型企業(yè)的數(shù)字化和云原生架構(gòu)轉(zhuǎn)型。
下面對(duì)本書的一些關(guān)鍵內(nèi)容做一些關(guān)鍵點(diǎn)的整理,本書的一些PPT配圖來源于本書撰寫作者之一蔣易民的公共技術(shù)分享。
網(wǎng)商銀行的三代架構(gòu)演進(jìn)過程
從這張圖來看,網(wǎng)商銀行主要經(jīng)歷了三代架構(gòu)的演進(jìn)。
第一階段主要是基于云平臺(tái)+分布式架構(gòu)建立起來的。整個(gè)的部署模式是同城雙活模式。到了2017-2018年的第二階段,在同城雙活的基礎(chǔ)上需要建設(shè)一個(gè)異地?cái)?shù)據(jù)中心,希望這個(gè)異地的數(shù)據(jù)中心在日常過程中能承載業(yè)務(wù)流量,能與杭州數(shù)據(jù)中心同時(shí)對(duì)外提供服務(wù)。在滿足異地災(zāi)備要求的同時(shí)考慮提升整個(gè)IT基礎(chǔ)設(shè)施的資產(chǎn)利用率,所以打造了單元化多活架構(gòu),它是一個(gè)三地五中心的部署結(jié)構(gòu)。從2019年,網(wǎng)商銀行開始關(guān)注云原生架構(gòu),包括開始引進(jìn)一些產(chǎn)品,設(shè)計(jì)建設(shè)相關(guān)能力。在這個(gè)過程中,我們也建設(shè)了混合云彈性架構(gòu),具備了在兩朵云之間調(diào)度資源的能力。
簡(jiǎn)單所以整個(gè)演進(jìn)路線關(guān)鍵技術(shù)點(diǎn)為:
數(shù)據(jù)垂直拆分,數(shù)據(jù)水平拆分,分布式架構(gòu)構(gòu)建,云計(jì)算平臺(tái)構(gòu)建,單元化多活架構(gòu),彈性架構(gòu),彈性架構(gòu)建設(shè),混合云架構(gòu)建設(shè),云原生可信架構(gòu)建設(shè)。
單元化架構(gòu)
在這本書里面提到一個(gè)重要概念,即單元化架構(gòu)。
每個(gè)單元是一個(gè)從流量層,應(yīng)用層到數(shù)據(jù)層的完整,自治,獨(dú)立的生態(tài)系統(tǒng),能夠?yàn)橛脩籼峁┙^大部分服務(wù),數(shù)據(jù)訪問都盡量封閉在獨(dú)立的單元內(nèi)完成。因此可以將一個(gè)單元部署到任何一個(gè)地域,同時(shí)單元和單元之前能夠互為備份。
大家看到這個(gè)的時(shí)候可能會(huì)聯(lián)系到分布式和微服務(wù)。
因?yàn)槲以谡勎⒎?wù)的時(shí)候也經(jīng)常在強(qiáng)調(diào)重點(diǎn)是單體到微服務(wù)的拆分,每一個(gè)微服務(wù)都實(shí)現(xiàn)從數(shù)據(jù)層,邏輯層到應(yīng)用層,從需求,設(shè)計(jì),開發(fā)構(gòu)建,編譯部署的獨(dú)立自治。但是這些都是在談軟件層面的單元化。
而單元化架構(gòu)目標(biāo)是實(shí)現(xiàn)軟件層面+硬件層面的共同單元化。有點(diǎn)類似多年前流行的一體機(jī)概念。軟硬一體化單元化更加方便了每個(gè)單元的跨地域,多數(shù)據(jù)中心移植能力,也進(jìn)一步增強(qiáng)了IT基礎(chǔ)設(shè)施層面的高可用性和冗余。
從彈性計(jì)算到云原生
在傳統(tǒng)PaaS平臺(tái)的時(shí)候也談彈性計(jì)算和資源動(dòng)態(tài)調(diào)度,但是傳統(tǒng)PaaS很難做到完全靈活,自動(dòng)化,完全自動(dòng)伸縮的彈性架構(gòu)能力。
彈性一方面是自動(dòng)化,一方面是要實(shí)現(xiàn)既可擴(kuò)展又可收縮。
網(wǎng)商銀行從誕生起,IT系統(tǒng)就構(gòu)建在私有云上,IaaS基于阿里云專有云底座建設(shè),PaaS基于螞蟻集團(tuán)的金融云構(gòu)建,天然擁有了分布式計(jì)算能力。并具備了金融級(jí)別的安全,高可靠,高可用能力。
云原生技術(shù)包括了微服務(wù),容器化,不可變基礎(chǔ)設(shè)施,聲明式API,服務(wù)網(wǎng)格等。云原生架構(gòu)是基于云原生技術(shù)的一組架構(gòu)原則和設(shè)計(jì)模式的集合,最關(guān)鍵的點(diǎn)就是把一些業(yè)務(wù)處理邏輯中非功能性的代碼剝離出來,從而讓云設(shè)施接管應(yīng)用中原有的大量非功能特性(如彈性、韌性、安全、可觀測(cè)性、灰度等)。
從上面圖可以看到,傳統(tǒng)架構(gòu)中任何一個(gè)代碼邏輯都包括了業(yè)務(wù)代碼,非功能性代碼和第三方依賴。而在云原生架構(gòu)下,希望的是業(yè)務(wù)和技術(shù)分離,業(yè)務(wù)功能開發(fā)人員只開發(fā)業(yè)務(wù)功能代碼,而平臺(tái)類開發(fā)人員負(fù)責(zé)各種非功能性需求和可觀測(cè)性的實(shí)現(xiàn)。
大量非功能的特性,包括彈性、容量、安全可觀測(cè)性、灰度等都會(huì)逐漸下沉到底層的基礎(chǔ)設(shè)施,特別像高可用能力、容災(zāi)能力、容量保障、安全特性,還有一些可運(yùn)維的特性,逐漸讓基礎(chǔ)設(shè)施去接管。這種情況下可以看出,在我們?cè)诓渴鹕蠒?huì)發(fā)生的一些變化。從圖的右下角看到,容器會(huì)進(jìn)行進(jìn)一步的拆分,拆成應(yīng)用一個(gè)進(jìn)程,邊車(sidecar)一個(gè)進(jìn)程。
在這本書讀完后給我的另外一個(gè)最大的感受就是。
在傳統(tǒng)IT架構(gòu)轉(zhuǎn)型,微服務(wù)化,和云原生技術(shù)發(fā)展過程中。為了實(shí)現(xiàn)彈性和靈活擴(kuò)展,實(shí)現(xiàn)分布式,實(shí)現(xiàn)去中心化,ServiceMesh服務(wù)網(wǎng)格應(yīng)用勢(shì)在必行。
特別是在通過容器云和Kurbernetes實(shí)現(xiàn)了容器資源的調(diào)度編排,不可變基礎(chǔ)設(shè)施后,為動(dòng)態(tài)的下發(fā)邊車代理,將Sidecar和業(yè)務(wù)容器打包到一個(gè)POD進(jìn)行管理成為了可能。這也大大地推進(jìn)了Mesh網(wǎng)格化技術(shù)的發(fā)展。
在徹底的網(wǎng)格化后你會(huì)看到了,除了南北流量還需要上層的負(fù)載均衡設(shè)備來解決外,其它問題都可以通過邊車代理和去中心化方式來解決流量分配和路由,對(duì)接口服務(wù)和流量的安全,日志,限流熔斷等各種治理能力。
網(wǎng)商銀行早期也經(jīng)歷過富容器,這種較重,包含了所有的應(yīng)用發(fā)布部署需要的依賴,不限于一些關(guān)鍵的RPC、消息、數(shù)據(jù)庫(kù)等SDK。最小的部署單元也是一個(gè)容器,在云原生里做進(jìn)一步劃分。
容器會(huì)區(qū)分為APP的容器,跟Sidecar 的容器。根據(jù)現(xiàn)在的實(shí)踐來看,主要是包含Service Mesh里面MOSN的容器,還有DBMesh的容器。這兩個(gè)容器解決的是 RPC、消息,還有數(shù)據(jù)庫(kù)跟緩存層面的轉(zhuǎn)發(fā)。
這種模式有一個(gè)最大的好處,就是MOSN跟DBMesh可以獨(dú)立演進(jìn),即可以不需要在上層業(yè)務(wù)容器配合的情況下,自己完成一些升級(jí)跟發(fā)布。
在Mesh化架構(gòu)里面,實(shí)際網(wǎng)速銀行分為了兩個(gè)不同的Sidecar,其一是解決東西流量和服務(wù)治理的MOSN,另外一個(gè)就是DBMesh代理。
DBMesh代理是很重要的一個(gè)思路。
簡(jiǎn)單來說就是在數(shù)據(jù)庫(kù)分布式,或數(shù)據(jù)庫(kù)進(jìn)行了水平和垂直拆分后,傳統(tǒng)的架構(gòu)邏輯思路是在拆分出來的各個(gè)單元上面在增加一個(gè)DaaS統(tǒng)一數(shù)據(jù)訪問層。但是DaaS層本身的部署又是集中化部署的,即所有的到底層數(shù)據(jù)庫(kù)的流量全部要經(jīng)過DaaS層的APP服務(wù)器,那么DaaS層本身又變成了一個(gè)中心化的節(jié)點(diǎn)。
因此最佳方案應(yīng)該是DaaS層的能力作為一個(gè)獨(dú)立容器Mesh化到各個(gè)POD組里面去。
流量隔離和流量調(diào)撥
云原生架構(gòu)的核心價(jià)值是可以實(shí)現(xiàn)流量的精細(xì)化隔離。
在整個(gè)架構(gòu)徹底Mesh化后,可以看到在Sidecar邊車代理處可以很好的處理對(duì)流量的路由,流量的隔離和精細(xì)化控制能力。
基于新的云原生能力,在流量轉(zhuǎn)發(fā)的過程,可以在流量通過MOSN邊車代理時(shí)進(jìn)行標(biāo)記,讓它路由到指定的一些容器上,就可以做到不同業(yè)務(wù)請(qǐng)求下,它會(huì)路由到不同的容器集群里,業(yè)務(wù)之間的相互影響就得到進(jìn)一步降低。
最典型的是生產(chǎn)遇到的熱點(diǎn)賬戶問題,很容易導(dǎo)致全行的交易抖動(dòng)。如果我們可以識(shí)別不同的業(yè)務(wù)所導(dǎo)致的熱點(diǎn),可以做到有效的隔離,發(fā)生熱點(diǎn)時(shí)不會(huì)影響到非產(chǎn)生熱點(diǎn)的其他業(yè)務(wù)場(chǎng)景。
在新的云原生架構(gòu)之下,基于mosn可以打造更細(xì)粒度流量調(diào)撥,從數(shù)據(jù)中心層面進(jìn)一步下沉到單個(gè)應(yīng)用級(jí)別。可以找一些不敏感的應(yīng)用服務(wù)先切流,避免影響到關(guān)鍵業(yè)務(wù)內(nèi)容。
在沒有進(jìn)行Mesh化前,如果僅僅是通過負(fù)載均衡設(shè)備或網(wǎng)關(guān)來做這么精細(xì)化的流量隔離往往很難實(shí)現(xiàn),這也是Mesh化帶來的一個(gè)另外一個(gè)關(guān)鍵能力。
從全鏈路壓測(cè)到混沌工程
對(duì)于云原生架構(gòu)的復(fù)雜性,引入混沌工程是一個(gè)必然趨勢(shì)。
2018年,混沌工程(Chaos Engineering)成為CNCF的一個(gè)新的技術(shù)領(lǐng)域。
對(duì)于混沌工程部分CNCF基金會(huì)將其納入到可觀測(cè)性部分。在2020年8月完成了可觀測(cè)性技術(shù)調(diào)查,最終用戶社區(qū)的成員被問及他們?cè)u(píng)估、試驗(yàn)并隨后采納了哪些可觀察性解決方案。對(duì)283個(gè)數(shù)據(jù)點(diǎn)進(jìn)行排序和復(fù)查,確定最終位置。
混沌工程的一些關(guān)鍵點(diǎn)。
其一就是混沌工程不是僅僅在測(cè)試環(huán)境做,而是在生產(chǎn)環(huán)境直接模擬。也就是說測(cè)試環(huán)境難以完全模擬生產(chǎn)環(huán)境,那么就需要在生產(chǎn)環(huán)境進(jìn)行節(jié)點(diǎn)故障模擬,也確認(rèn)整個(gè)IT架構(gòu)在生產(chǎn)環(huán)境的穩(wěn)定性。
其二就是真正融合了業(yè)務(wù)并發(fā)性能測(cè)試和可靠性測(cè)試兩方面的內(nèi)容。而在傳統(tǒng)測(cè)試中這兩者往往是分離的,很難在測(cè)試環(huán)境中完全模擬。
其三就是故障模擬本身的不確定性,第一就是故障本身產(chǎn)生的不確定性和隨機(jī)性,第二就是各種故障本身場(chǎng)景組合的不確定性。
云原生下的分布式架構(gòu)復(fù)雜度,引入混沌工程是一個(gè)必然趨勢(shì),就像我在前面談云原生和微服務(wù)的時(shí)候談到,引入ServiceMesh來進(jìn)行微服務(wù)治理也是必然趨勢(shì)。
混沌工程當(dāng)前是一個(gè)蓬勃發(fā)展的技術(shù)領(lǐng)域,也越來越受到重視。也是當(dāng)前應(yīng)對(duì)分布式架構(gòu)復(fù)雜度下提出的一套切實(shí)可行,嚴(yán)謹(jǐn)?shù)墓こ虒?shí)踐原則,方法和工具?;煦绻こ袒诜创嗳醯乃枷耄M故障只是手段,而核心目標(biāo)仍然是提升系統(tǒng)的穩(wěn)定性和可觀測(cè)性,及早地發(fā)現(xiàn)各種風(fēng)險(xiǎn),并進(jìn)行優(yōu)化解決。
任何一個(gè)生產(chǎn)的業(yè)務(wù)系統(tǒng),都不應(yīng)該是出現(xiàn)故障后的問題驅(qū)動(dòng),而應(yīng)該是主動(dòng)發(fā)現(xiàn),主動(dòng)防御的風(fēng)險(xiǎn)驅(qū)動(dòng)機(jī)制。這就是混沌工程在云原生架構(gòu)下的巨大價(jià)值和作用。
這本書對(duì)全鏈路壓測(cè)做了簡(jiǎn)單的介紹和方法實(shí)戰(zhàn),但是從全鏈路壓測(cè)逐步升級(jí)到混沌工程方法論,是應(yīng)對(duì)云原生架構(gòu)復(fù)雜性的一個(gè)必然轉(zhuǎn)變。
對(duì)于云原生架構(gòu),實(shí)際在原來的文章我也談了幾個(gè)關(guān)鍵的技術(shù)點(diǎn)能力值得深入研究,其中主要包括了如下內(nèi)容。
- 混沌工程和可觀測(cè)性
- ServiceMesh和去中心化服務(wù)治理
- 高度靈活自動(dòng)化的彈性擴(kuò)展架構(gòu)
- 分布式中間件和分布式事務(wù)
- 一體化研發(fā)運(yùn)維平臺(tái)和DevOps
- AIOps
- 流量治理
- 安全可信架構(gòu)
以上內(nèi)容將是云原生架構(gòu)和技術(shù)發(fā)展,并逐步走向成熟的關(guān)鍵內(nèi)容。
當(dāng)然這本書也有一些不足,由于本身是處于多個(gè)技術(shù)團(tuán)隊(duì),多人的作品,感覺每個(gè)章節(jié)講述的內(nèi)容之間的邏輯關(guān)聯(lián)關(guān)系存在不嚴(yán)謹(jǐn)?shù)那闆r,同時(shí)也會(huì)在不同的章節(jié)出現(xiàn)描述同樣內(nèi)容的情況。這是多人合著情況下經(jīng)常會(huì)遇到的問題。
但是還是要說明下本書和簡(jiǎn)單拼湊還是有差異,瑕不掩瑜,整體的框架內(nèi)容還是完整的,很多實(shí)踐的內(nèi)容和經(jīng)驗(yàn)分享都值得仔細(xì)學(xué)習(xí)并借鑒。再次推薦該書。特別是中大企業(yè)面對(duì)數(shù)字化轉(zhuǎn)型,云原生的IT技術(shù)總監(jiān)和架構(gòu)師閱讀。
作者:yunbaotang本文地址:http://www.ntlljf.com/bao/109609.html發(fā)布于 2024-03-01
文章轉(zhuǎn)載或復(fù)制請(qǐng)以超鏈接形式并注明出處孕寶堂

