劉鑫璐
摘要:隨著大型金融企業(yè)信息化建設(shè)的不斷推廣,信息化水平不斷提升,客戶及內(nèi)部各部門對lT的需求也持續(xù)增加,核心應(yīng)用系統(tǒng)承載的訪問量及交易量日益增加,合理、高效的應(yīng)用系統(tǒng)架構(gòu)顯得尤為重要。采用分層設(shè)計(jì)理念,將四個(gè)邏輯層分別架構(gòu)和選型設(shè)計(jì)并給出實(shí)際部署方案,形成了企業(yè)級(jí)高可用應(yīng)用系統(tǒng)架構(gòu)解決方案,從而達(dá)到加強(qiáng)系統(tǒng)的健壯性,減少重復(fù)性的錯(cuò)誤的效果,為應(yīng)用研發(fā)設(shè)計(jì)、測試管理、運(yùn)維管理等提供參考。
關(guān)鍵詞:應(yīng)用;架構(gòu)設(shè)計(jì);高可用性;運(yùn)維;IT選型
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)05-0074-04
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 背景
應(yīng)用系統(tǒng)構(gòu)架是對已確定的需求的技術(shù)實(shí)現(xiàn)構(gòu)架、做好規(guī)劃,運(yùn)用成套、完整的工具,在規(guī)劃的步驟下去完成任務(wù)。應(yīng)用系統(tǒng)架構(gòu)是應(yīng)用系統(tǒng)設(shè)計(jì)的核心,也是應(yīng)用系統(tǒng)的“靈魂”。應(yīng)用系統(tǒng)上線后運(yùn)行穩(wěn)定安全與否,取決于構(gòu)建之初的架構(gòu)選型和設(shè)計(jì),常常有“一年之計(jì)在于春,系統(tǒng)之初在于架構(gòu)”的說法。
當(dāng)今技術(shù)的發(fā)展日新月異,大型金融企業(yè)中的應(yīng)用系統(tǒng)設(shè)計(jì)逐漸更新優(yōu)化,逐漸演變?yōu)榧夯?、模板化的?biāo)準(zhǔn)架構(gòu)。大型金融企業(yè)盈利能力依靠的是優(yōu)秀的產(chǎn)品和服務(wù)、及時(shí)準(zhǔn)確的信息,而科技是提供創(chuàng)造、獲取、分析、管理信息的手段,因此必須保證信息的安全性、可靠性、準(zhǔn)確性、及時(shí)性。為應(yīng)對挑戰(zhàn),科技部門應(yīng)相互合作、同心協(xié)力,不斷提升信息服務(wù)水平,著重從基礎(chǔ)架構(gòu)和系統(tǒng)運(yùn)維兩個(gè)維度對開放平臺(tái)基礎(chǔ)架構(gòu)、產(chǎn)品和服務(wù)進(jìn)行深入分析,并總結(jié)了多年來的經(jīng)驗(yàn),形成了現(xiàn)有大型金融企業(yè)的企業(yè)級(jí)高可用應(yīng)用系統(tǒng)架構(gòu)解決方案。
2 典型架構(gòu)
結(jié)合大型金融企業(yè)信息系統(tǒng)的技術(shù)特點(diǎn)和業(yè)務(wù)需求,推薦典型的高可用基礎(chǔ)架構(gòu)模式如下。
2.1 總體架構(gòu)
大型金融企業(yè)應(yīng)用系統(tǒng)架構(gòu)包含接入層、應(yīng)用層、數(shù)據(jù)庫層及存儲(chǔ)層四個(gè)邏輯次,如圖1所示。
接入層接收前端訪問請求,并分發(fā)至應(yīng)用層進(jìn)行處理。對于日均聯(lián)機(jī)交易量百萬級(jí)以上的系統(tǒng),建議采用硬件負(fù)載均衡設(shè)備實(shí)現(xiàn)用戶訪問接入,軟件負(fù)載均衡產(chǎn)品通常用于并發(fā)數(shù)低于200的業(yè)務(wù)場景,硬件負(fù)載均衡設(shè)備則能夠承擔(dān)更大并發(fā)數(shù)及負(fù)載壓力的業(yè)務(wù)場景,并且可根據(jù)需求進(jìn)行橫向擴(kuò)展。
應(yīng)用層負(fù)責(zé)應(yīng)用程序的部署和運(yùn)行,實(shí)現(xiàn)業(yè)務(wù)處理邏輯。應(yīng)用層通常集群化部署,每臺(tái)應(yīng)用服務(wù)器“鏡像”化自己,于是一組系統(tǒng)配置相同、應(yīng)用部署相同的服務(wù)器構(gòu)成應(yīng)用處理組合,實(shí)現(xiàn)業(yè)務(wù)邏輯,并根據(jù)需求進(jìn)行橫向和縱向擴(kuò)充。
數(shù)據(jù)庫層負(fù)責(zé)提供數(shù)據(jù)管理服務(wù),數(shù)據(jù)管理一般采用成熟的廠商產(chǎn)品,處理聯(lián)機(jī)事務(wù)和聯(lián)機(jī)分析事務(wù),對于數(shù)據(jù)量、業(yè)務(wù)量較大的系統(tǒng),采用具有一定容錯(cuò)能力的數(shù)據(jù)庫集群,各個(gè)節(jié)點(diǎn)相互協(xié)同,同時(shí)對外提供服務(wù),大幅提高了數(shù)據(jù)庫的可用性;對于數(shù)據(jù)量、業(yè)務(wù)量不大的系統(tǒng),無須使用Multiplex集群,采用傳統(tǒng)的HA技術(shù)構(gòu)建一個(gè)Active-Standby模式的集群就能滿足需求。對于同時(shí)具有聯(lián)機(jī)事務(wù)處理和聯(lián)機(jī)分析處理需求的應(yīng)用,可結(jié)合實(shí)際情況采用混合架構(gòu)模式,對于混合架構(gòu)而言,需要應(yīng)用具有相應(yīng)時(shí)間窗口進(jìn)行數(shù)據(jù)庫之間的數(shù)據(jù)同步。
存儲(chǔ)層的高可用模式分為三個(gè)層面,一是利用存儲(chǔ)設(shè)備自身提供的磁盤冗余機(jī)制保障存儲(chǔ)設(shè)備的高可用性,二是利用操作系統(tǒng)邏輯卷管理(LVM,Logical Volume Manager)工具實(shí)現(xiàn)對兩臺(tái)存儲(chǔ)設(shè)備的同步讀寫,三是利用系統(tǒng)關(guān)聯(lián)機(jī)時(shí)間對上述兩臺(tái)存儲(chǔ)設(shè)備分別進(jìn)行存儲(chǔ)級(jí)鏡像,將數(shù)據(jù)備份到第三臺(tái)甚至第四臺(tái)存儲(chǔ)設(shè)備上,以此保障存儲(chǔ)層面的高可用及數(shù)據(jù)安全。
2.2 接入層
系統(tǒng)接人層作為業(yè)務(wù)系統(tǒng)的直接訪問入口,一般采用負(fù)載均衡技術(shù),分為軟件負(fù)載均衡和硬件負(fù)載均衡兩種方式。
通常,軟件負(fù)載均衡方式適用于并發(fā)訪問數(shù)較低、負(fù)載壓力較小且高可用性要求相對較低的應(yīng)用場景(日均業(yè)務(wù)量百萬以內(nèi)),優(yōu)勢是部署方便、成本較低,缺點(diǎn)是架構(gòu)難以擴(kuò)展、可靠性較低。硬件負(fù)載均衡方式具有承擔(dān)更高負(fù)載和更多并發(fā)訪問的能力,同時(shí)架構(gòu)靈活,具有很強(qiáng)的伸縮性[1]。
硬件負(fù)載均衡方式已成為系統(tǒng)接入層的首要選擇。下面重點(diǎn)介紹由硬件負(fù)載均衡構(gòu)成的三類集群。
2.2.1 高可用集群架構(gòu)
當(dāng)應(yīng)用的并發(fā)訪問壓力在一臺(tái)負(fù)載均衡設(shè)備的承載能力以內(nèi)時(shí),對于系統(tǒng)接入層,我們可采用高可用集群架構(gòu),即利用雙機(jī)容錯(cuò)技術(shù)將兩臺(tái)負(fù)載均衡設(shè)備組成“一主一備”的集群以保障系統(tǒng)接入層的高可用性,單臺(tái)設(shè)備發(fā)生故障,可以實(shí)現(xiàn)毫秒級(jí)的主備切換,對用戶體驗(yàn)幾乎透明。目前大型金融企業(yè)多數(shù)開放式系統(tǒng)的接入層均采用這種架構(gòu),如圖2所示。
2.2.2 多級(jí)負(fù)載均衡集群架構(gòu)
當(dāng)應(yīng)用的并發(fā)訪問壓力超過一臺(tái)負(fù)載均衡設(shè)備的承載能力時(shí),就需要進(jìn)行橫向擴(kuò)展,比如網(wǎng)上銀行系統(tǒng),利用多臺(tái)設(shè)備搭建一個(gè)多級(jí)負(fù)載均衡集群,如圖3所示,第一級(jí)由處于主備模式的兩臺(tái)鏈路負(fù)載均衡設(shè)備(簡稱LC)構(gòu)成,實(shí)現(xiàn)對下一級(jí)應(yīng)用負(fù)載均衡集群進(jìn)行鏈路層的負(fù)載、分發(fā);第二級(jí)根據(jù)業(yè)務(wù)壓力選用多臺(tái)應(yīng)用負(fù)載均衡(簡稱LTM)對后端的應(yīng)用服務(wù)器集群進(jìn)行負(fù)載、分發(fā),集群中每個(gè)節(jié)點(diǎn)的地位相同,共同承擔(dān)用戶訪問請求,當(dāng)一個(gè)或多個(gè)節(jié)點(diǎn)失效時(shí)不會(huì)影響系統(tǒng)接人層的可用性。
2.2.3 基于客戶端的高可用應(yīng)用系統(tǒng)架構(gòu)
對于客戶端/服務(wù)器(c/s)架構(gòu)的應(yīng)用系統(tǒng),可通過客戶端的可用性設(shè)計(jì)提高系統(tǒng)的整體可用性,而不需采用統(tǒng)一接入的集群式架構(gòu),由客戶端來選擇連接的應(yīng)用服務(wù)器,當(dāng)其中一套不可用時(shí),客戶端主動(dòng)地選擇其他正常工作的應(yīng)用系統(tǒng),依次保證系統(tǒng)的高可用,其中對于數(shù)據(jù)更新不敏感或者數(shù)據(jù)實(shí)時(shí)同步要求不高的系統(tǒng),后端數(shù)據(jù)庫也可部署多套,數(shù)據(jù)采取定期同步方式,如Notes郵件系統(tǒng)、QQ等均采用了該模式。由于各應(yīng)用系統(tǒng)完全對等,且對數(shù)據(jù)更新不敏感,因此可根據(jù)訪問量需求進(jìn)行動(dòng)態(tài)彈性擴(kuò)展,此類架構(gòu)具有一定的約束條件,但具有很好的可用性和可擴(kuò)展能力,對基礎(chǔ)架構(gòu)和資源投入相對也要求較低。