G行銀證業(yè)務(wù)云原生改造實(shí)踐
引言
隨著金融業(yè)務(wù)轉(zhuǎn)型步伐加快,業(yè)務(wù)連續(xù)性要求趨嚴(yán),對(duì)金融業(yè)信息系統(tǒng)運(yùn)行穩(wěn)定性要求日益提升。依據(jù)《銀行、證券跨行業(yè)信息系統(tǒng)突發(fā)事件應(yīng)急處置工作指引》的通知(銀監(jiān)發(fā)(2008)50號(hào)),影響銀證系統(tǒng)日間業(yè)務(wù)時(shí)間超過(guò)5分鐘(含),不足30分鐘的突發(fā)事件屬于Ⅲ級(jí)事件(一般事件),對(duì)三方存管系統(tǒng)的業(yè)務(wù)連續(xù)性提出更高要求。
G行三方存管系統(tǒng)用于承載銀行方三方存管銀證業(yè)務(wù),遵循“券商管證券,銀行管資金”原則,將投資者的證券賬戶與證券保證金賬戶嚴(yán)格進(jìn)行分離管理。本文以G行三方存管系統(tǒng)云原生改造為切入點(diǎn),從業(yè)務(wù)上云方案設(shè)計(jì)、業(yè)務(wù)上云風(fēng)險(xiǎn)評(píng)估、業(yè)務(wù)上云問(wèn)題發(fā)現(xiàn)、業(yè)務(wù)上云帶來(lái)的收益四個(gè)方面進(jìn)行總結(jié)。
image.png
一、業(yè)務(wù)上云方案設(shè)計(jì)--云原生架構(gòu)打基礎(chǔ)
在金融行業(yè)蓬勃發(fā)展和技術(shù)高速迭代的大背景下,傳統(tǒng)集中式架構(gòu)暴露出的短板愈發(fā)突出:1)擴(kuò)展性不足,難以靈活應(yīng)對(duì)業(yè)務(wù)規(guī)模的快速擴(kuò)張;2)容錯(cuò)能力欠佳,一旦關(guān)鍵節(jié)點(diǎn)出現(xiàn)故障,易引發(fā)系統(tǒng)性風(fēng)險(xiǎn);3)代碼耦合度過(guò)高,使得系統(tǒng)維護(hù)與功能升級(jí)變得異常復(fù)雜。
為緊跟技術(shù)發(fā)展潮流,積極賦能業(yè)務(wù)創(chuàng)新,自 2019 年起,G 行啟動(dòng)新一代三方存管系統(tǒng)上云項(xiàng)目建設(shè),該項(xiàng)目實(shí)現(xiàn)了容器化微服務(wù)改造和國(guó)產(chǎn)化分布式改造。下面從上云應(yīng)用架構(gòu)設(shè)計(jì)與上云業(yè)務(wù)遷移兩大核心維度展開(kāi),全面推動(dòng)系統(tǒng)的升級(jí)轉(zhuǎn)型。
1.1 上云應(yīng)用架構(gòu)設(shè)計(jì)
應(yīng)用上云的關(guān)鍵在于全面合理地架構(gòu)拆分,為后續(xù)業(yè)務(wù)遷移打好基礎(chǔ)。架構(gòu)拆分不能只追求數(shù)量,要結(jié)合系統(tǒng)實(shí)際業(yè)務(wù)場(chǎng)景和業(yè)務(wù)量變化綜合考量。G行三方存管系統(tǒng)架構(gòu)拆分時(shí),先按交易方向?qū)⒕W(wǎng)關(guān)層分為銀行方和證券方,保證交易獨(dú)立,減少干擾,提升穩(wěn)定性和效率;再根據(jù)交易重要程度,拆分銀行方與證券方的金融交易,實(shí)現(xiàn)資源分配和業(yè)務(wù)保障的差異化管理,保障關(guān)鍵交易;最后依據(jù)業(yè)務(wù)運(yùn)行特點(diǎn),對(duì)查詢、簽約等業(yè)務(wù)針對(duì)性拆分。其中,簽約業(yè)務(wù)因占比較低,基于 “非必要不拆分”原則,不做交易方向拆分,避免復(fù)雜性和成本增加,體現(xiàn)拆分策略的合理性。
1.2 上云業(yè)務(wù)遷移
為確保云上業(yè)務(wù)平穩(wěn)遷移,G行在三方存管系統(tǒng)業(yè)務(wù)遷移過(guò)程中采取一系列謹(jǐn)慎有序的遷移策略。首先按照應(yīng)用業(yè)務(wù)遷移,設(shè)計(jì)新老系統(tǒng)并行場(chǎng)景,優(yōu)先將銀行端全部查詢業(yè)務(wù)遷移至新系統(tǒng),讓新系統(tǒng)同時(shí)對(duì)接新、老數(shù)據(jù)庫(kù),實(shí)現(xiàn)最小風(fēng)險(xiǎn)下對(duì)查詢業(yè)務(wù)的最大化接入。待新系統(tǒng)穩(wěn)定后,再以合作機(jī)構(gòu)為業(yè)務(wù)對(duì)象,分批遷移重要業(yè)務(wù)。由于銀證業(yè)務(wù)合作機(jī)構(gòu)較多,一次性整體遷移風(fēng)險(xiǎn)較高,因此按照券商簽約客戶量維度,遵循先少后多的原則,逐步對(duì)接新系統(tǒng),完成云上容器化業(yè)務(wù)遷移。在國(guó)產(chǎn)化分布式架構(gòu)改造階段,基于前期容器化微服務(wù)底座,通過(guò)控制云上流量進(jìn)行業(yè)務(wù)遷移,可謂水到渠成。在保證業(yè)務(wù)平穩(wěn)運(yùn)行的前提下,按照5%、20%、50%、100%精控流量比例,最終實(shí)現(xiàn)無(wú)感化云上業(yè)務(wù)流量遷移。
二、業(yè)務(wù)上云風(fēng)險(xiǎn)評(píng)估--風(fēng)險(xiǎn)評(píng)估保平穩(wěn)
系統(tǒng)上云過(guò)程中風(fēng)險(xiǎn)貫穿始終,核心目標(biāo)是確保系統(tǒng)上云安全平穩(wěn)運(yùn)行。從架構(gòu)設(shè)計(jì)到上線,需全程做好風(fēng)險(xiǎn)評(píng)估,降低運(yùn)行隱患。以下是G行在上云過(guò)程中遇到的突出風(fēng)險(xiǎn)點(diǎn)及應(yīng)對(duì)方法:
批量并行運(yùn)行風(fēng)險(xiǎn):新老系統(tǒng)并行期的批量運(yùn)行風(fēng)險(xiǎn)控制依據(jù)架構(gòu)特性進(jìn)行優(yōu)化。傳統(tǒng)架構(gòu)向容器微服務(wù)化遷移時(shí),為保障合作機(jī)構(gòu)清算準(zhǔn)確唯一,避免資金風(fēng)險(xiǎn)與數(shù)據(jù)混亂,各合作機(jī)構(gòu)清算任務(wù)必須相互獨(dú)立、彼此隔離。從容器化向國(guó)產(chǎn)化分布式遷移時(shí),為合理利用資源、確保任務(wù)有序,批量?jī)H在一套環(huán)境運(yùn)行,通過(guò)為每個(gè)任務(wù)生成唯一標(biāo)識(shí)來(lái)監(jiān)控批量狀態(tài),防止重復(fù)執(zhí)行,避免數(shù)據(jù)不一致和資源浪費(fèi)。
云上業(yè)務(wù)引流風(fēng)險(xiǎn):在國(guó)產(chǎn)化分布式業(yè)務(wù)遷移階段,云上業(yè)務(wù)引流風(fēng)險(xiǎn)不容小覷,其中關(guān)鍵在于保證流量精準(zhǔn)控制。為達(dá)成這一目標(biāo),在架構(gòu)設(shè)計(jì)階段進(jìn)行埋點(diǎn),對(duì)網(wǎng)關(guān)層實(shí)施精簡(jiǎn)化和去狀態(tài)化處理,實(shí)現(xiàn)通過(guò)連接云上實(shí)例數(shù)比例精確控制接入流量,有效降低引流風(fēng)險(xiǎn),保障業(yè)務(wù)遷移的平穩(wěn)進(jìn)行。
流量回切風(fēng)險(xiǎn):流量回切的高效性是業(yè)務(wù)遷移無(wú)影響的最后一道防線。遷移前要充分考慮異常場(chǎng)景,制定快速回切策略。三方存管系統(tǒng)以快速恢復(fù)業(yè)務(wù)為原則,將回切流程拆分為關(guān)鍵和非關(guān)鍵步驟,優(yōu)化每步執(zhí)行邏輯,借助自動(dòng)化技術(shù)實(shí)現(xiàn)流程精簡(jiǎn)化、自動(dòng)化,確保業(yè)務(wù)異常時(shí)能迅速回切流量,減少業(yè)務(wù)中斷時(shí)間,降低對(duì)用戶和業(yè)務(wù)的影響。
系統(tǒng)容量風(fēng)險(xiǎn):系統(tǒng)容量風(fēng)險(xiǎn)涵蓋業(yè)務(wù)容量風(fēng)險(xiǎn)以及應(yīng)用與平臺(tái)支撐能力風(fēng)險(xiǎn)。新系統(tǒng)上線前評(píng)估需貼近生產(chǎn)實(shí)際,例如在新、老系統(tǒng)并行期,新系統(tǒng)訪問(wèn)老系統(tǒng)數(shù)據(jù)庫(kù)時(shí),老系統(tǒng)數(shù)據(jù)庫(kù)連接實(shí)例數(shù)的容量風(fēng)險(xiǎn)易被忽略。因此,非功能測(cè)試階段要克隆生產(chǎn)環(huán)境,保證一致性。同時(shí)管理員要長(zhǎng)期積累容量風(fēng)險(xiǎn)識(shí)別經(jīng)驗(yàn),上線前逐項(xiàng)評(píng)估系統(tǒng)容量風(fēng)險(xiǎn)。
數(shù)據(jù)遷移風(fēng)險(xiǎn):在分批業(yè)務(wù)轉(zhuǎn)移過(guò)程中,因新舊數(shù)據(jù)庫(kù)間的異構(gòu)性差異,面臨著顯著的風(fēng)險(xiǎn)挑戰(zhàn)。這些風(fēng)險(xiǎn)主要體現(xiàn)在以下三個(gè)方面:
1. 數(shù)據(jù)一致性與完整性風(fēng)險(xiǎn):遷移前后可能出現(xiàn)數(shù)據(jù)丟失、字段內(nèi)容被截?cái)?、字符集與編碼方式轉(zhuǎn)換引發(fā)的數(shù)值偏差、表結(jié)構(gòu)變動(dòng)以及索引丟失等問(wèn)題。為有效應(yīng)對(duì)此類風(fēng)險(xiǎn),關(guān)鍵在于構(gòu)建詳盡的數(shù)據(jù)與表結(jié)構(gòu)遷移前后的比對(duì)及校驗(yàn)機(jī)制,并開(kāi)發(fā)或采用專業(yè)的校驗(yàn)比對(duì)工具來(lái)確保數(shù)據(jù)的精確無(wú)誤。
2. 性能與穩(wěn)定性風(fēng)險(xiǎn):異構(gòu)數(shù)據(jù)庫(kù)間在性能和穩(wěn)定性方面存在顯著差異,且數(shù)據(jù)存儲(chǔ)與使用規(guī)則也各不相同。針對(duì)這一風(fēng)險(xiǎn),核心策略是在遷移前進(jìn)行廣泛而深入的測(cè)試,充分考慮各種可能的使用場(chǎng)景,以確保遷移后的系統(tǒng)能夠滿足性能需求并保持高度穩(wěn)定。
3. 臟數(shù)據(jù)風(fēng)險(xiǎn):在遷移過(guò)程中,若未對(duì)遷移數(shù)據(jù)進(jìn)行全面深入的分析,而盲目采用全量遷移的方式,可能會(huì)將非必要數(shù)據(jù)一并帶入新系統(tǒng),從而為后續(xù)系統(tǒng)運(yùn)行埋下隱患。為規(guī)避此類風(fēng)險(xiǎn),在制定數(shù)據(jù)遷移方案時(shí),必須對(duì)數(shù)據(jù)進(jìn)行全面系統(tǒng)的分析,嚴(yán)格遵循最小化遷移數(shù)據(jù)原則,并在遷移后仔細(xì)核查遷移數(shù)據(jù)的內(nèi)容,確保數(shù)據(jù)的純凈與有效性。
三、業(yè)務(wù)上云問(wèn)題發(fā)現(xiàn) --監(jiān)控靈敏排隱患
為保障三方存管業(yè)務(wù)上云后平穩(wěn)運(yùn)行,在容器微服務(wù)化云上業(yè)務(wù)遷移初期,通過(guò)細(xì)化監(jiān)控指標(biāo),利用智能監(jiān)控技術(shù),提升監(jiān)控靈敏度,及時(shí)捕捉潛在風(fēng)險(xiǎn)隱患。發(fā)現(xiàn)風(fēng)險(xiǎn)隱患后,迅速組織研發(fā)、運(yùn)維等各領(lǐng)域?qū)<医M成攻堅(jiān)組,通過(guò)數(shù)據(jù)分析、日志回溯、網(wǎng)絡(luò)抓包和模擬測(cè)試等手段排查問(wèn)題原因,制定有效解決方案,并建立長(zhǎng)效風(fēng)險(xiǎn)預(yù)警和應(yīng)對(duì)預(yù)案,為后續(xù)業(yè)務(wù)平穩(wěn)遷移及運(yùn)行筑牢基礎(chǔ)。
3.1 聯(lián)機(jī)交易響應(yīng)耗時(shí)長(zhǎng)
程序代碼處理機(jī)制引起交易偶發(fā)停頓:通過(guò)細(xì)化監(jiān)控策略,增設(shè)聯(lián)機(jī)交易響應(yīng)時(shí)間最大閾值策略,并將敏感度提高到單筆報(bào)警,發(fā)現(xiàn)存在偶發(fā)聯(lián)機(jī)交易響應(yīng)超時(shí)。經(jīng)排查各階段交易耗時(shí),問(wèn)題鎖定在網(wǎng)關(guān)層接收網(wǎng)絡(luò)報(bào)文到開(kāi)始處理之間。經(jīng)深入分析和測(cè)試環(huán)境復(fù)現(xiàn),確定網(wǎng)關(guān)層反向解析請(qǐng)求報(bào)文源地址時(shí),存在異常等待超時(shí),致使聯(lián)機(jī)交易偶發(fā)卡頓。
外圍系統(tǒng)引起應(yīng)用短時(shí)暫停:通過(guò)優(yōu)化聯(lián)機(jī)交易響應(yīng)時(shí)間基線波動(dòng)率監(jiān)控策略,成功捕捉到偶發(fā)響應(yīng)時(shí)間偏離場(chǎng)景。針對(duì)告警時(shí)間段內(nèi)的交易情況展開(kāi)全面排查與細(xì)致分析,發(fā)現(xiàn)存在交易異常暫?,F(xiàn)象。為深挖問(wèn)題根源,進(jìn)一步擴(kuò)展了排查范圍,發(fā)現(xiàn)輔助運(yùn)營(yíng)監(jiān)控平臺(tái)在進(jìn)行信息采集時(shí),引發(fā)應(yīng)用線程短時(shí)暫停,停止信息采集任務(wù)后,交易異常暫停現(xiàn)象消失。
3.2 系統(tǒng)資源消耗異常
外圍系統(tǒng)引起pod內(nèi)存消耗異常:通過(guò)對(duì)運(yùn)行服務(wù)巡檢發(fā)現(xiàn),某類對(duì)內(nèi)存要求高的服務(wù)pod存在內(nèi)存異常緩慢增長(zhǎng)。對(duì)內(nèi)存使用情況分析發(fā)現(xiàn)輔助運(yùn)營(yíng)的平臺(tái)進(jìn)行信息采集時(shí)存在內(nèi)存占用不釋放現(xiàn)象。
服務(wù)內(nèi)存配置不合理:在系統(tǒng)持續(xù)運(yùn)行一段時(shí)間后,我們觀察到批量服務(wù)出現(xiàn)內(nèi)存使用率高于閾值的情況。通過(guò)深入的內(nèi)存使用情況分析,并結(jié)合該服務(wù)功能的特性-批量頻繁讀取文件操作場(chǎng)景。經(jīng)綜合判斷,確定當(dāng)前內(nèi)存的增長(zhǎng)屬于正常業(yè)務(wù)范疇。當(dāng)內(nèi)存增長(zhǎng)至特定區(qū)間時(shí),系統(tǒng)會(huì)自動(dòng)進(jìn)行動(dòng)態(tài)內(nèi)存的釋放。由此可見(jiàn),內(nèi)存使用率過(guò)高是資源初始分配不合理導(dǎo)致。
四、業(yè)務(wù)上云帶來(lái)的收益
相較于傳統(tǒng)單體架構(gòu)應(yīng)用系統(tǒng),云上系統(tǒng)在業(yè)務(wù)連續(xù)性、應(yīng)用變更復(fù)雜度、生產(chǎn)環(huán)境一致性等方面展現(xiàn)出顯著優(yōu)勢(shì)。
業(yè)務(wù)連續(xù)性能力提升:多副本特性降低業(yè)務(wù)中斷概率,運(yùn)維關(guān)注重點(diǎn)轉(zhuǎn)向上下游系統(tǒng)可靠性。
投產(chǎn)流程復(fù)雜度降低:借助鏡像制品庫(kù),實(shí)現(xiàn)標(biāo)準(zhǔn)化拉取與部署,減少人為干預(yù)風(fēng)險(xiǎn)。
生產(chǎn)環(huán)境一致性提升:容器化部署依靠鏡像版本控制,確保多環(huán)境信息一致。
在金融行業(yè)蓬勃發(fā)展和技術(shù)高速迭代的大背景下,傳統(tǒng)集中式架構(gòu)暴露出的短板愈發(fā)突出:1)擴(kuò)展性不足,難以靈活應(yīng)對(duì)業(yè)務(wù)規(guī)模的快速擴(kuò)張;2)容錯(cuò)能力欠佳,一旦關(guān)鍵節(jié)點(diǎn)出現(xiàn)故障,易引發(fā)系統(tǒng)性風(fēng)險(xiǎn);3)代碼耦合度過(guò)高,使得系統(tǒng)維護(hù)與功能升級(jí)變得異常復(fù)雜。
為緊跟技術(shù)發(fā)展潮流,積極賦能業(yè)務(wù)創(chuàng)新,自 2019 年起,G 行啟動(dòng)新一代三方存管系統(tǒng)上云項(xiàng)目建設(shè),該項(xiàng)目實(shí)現(xiàn)了容器化微服務(wù)改造和國(guó)產(chǎn)化分布式改造。下面從上云應(yīng)用架構(gòu)設(shè)計(jì)與上云業(yè)務(wù)遷移兩大核心維度展開(kāi),全面推動(dòng)系統(tǒng)的升級(jí)轉(zhuǎn)型。
4.1 上云應(yīng)用架構(gòu)設(shè)計(jì)
應(yīng)用上云的關(guān)鍵在于全面合理地架構(gòu)拆分,為后續(xù)業(yè)務(wù)遷移打好基礎(chǔ)。架構(gòu)拆分不能只追求數(shù)量,要結(jié)合系統(tǒng)實(shí)際業(yè)務(wù)場(chǎng)景和業(yè)務(wù)量變化綜合考量。G 行三方存管系統(tǒng)架構(gòu)拆分時(shí),先按交易方向?qū)⒕W(wǎng)關(guān)層分為銀行方和證券方,保證交易獨(dú)立,減少干擾,提升穩(wěn)定性和效率;再根據(jù)交易重要程度,拆分銀行方與證券方的金融交易,實(shí)現(xiàn)資源分配和業(yè)務(wù)保障的差異化管理,保障關(guān)鍵交易;最后依據(jù)業(yè)務(wù)運(yùn)行特點(diǎn),對(duì)查詢、簽約等業(yè)務(wù)針對(duì)性拆分。其中,簽約業(yè)務(wù)因占比較低,基于 “非必要不拆分”原則,不做交易方向拆分,避免復(fù)雜性和成本增加,體現(xiàn)拆分策略的合理性。
4.2 上云業(yè)務(wù)遷移
為確保云上業(yè)務(wù)平穩(wěn)遷移,G 行在三方存管系統(tǒng)業(yè)務(wù)遷移過(guò)程中采取一系列謹(jǐn)慎有序的遷移策略。首先按照應(yīng)用業(yè)務(wù)遷移,設(shè)計(jì)新老系統(tǒng)并行場(chǎng)景,優(yōu)先將銀行端全部查詢業(yè)務(wù)遷移至新系統(tǒng),讓新系統(tǒng)同時(shí)對(duì)接新、老數(shù)據(jù)庫(kù),實(shí)現(xiàn)最小風(fēng)險(xiǎn)下對(duì)查詢業(yè)務(wù)的最大化接入。待新系統(tǒng)穩(wěn)定后,再以合作機(jī)構(gòu)為業(yè)務(wù)對(duì)象,分批遷移重要業(yè)務(wù)。由于銀證業(yè)務(wù)合作機(jī)構(gòu)較多,一次性整體遷移風(fēng)險(xiǎn)較高,因此按照券商簽約客戶量維度,遵循先少后多的原則,逐步對(duì)接新系統(tǒng),完成云上容器化業(yè)務(wù)遷移。在國(guó)產(chǎn)化分布式架構(gòu)改造階段,基于前期容器化微服務(wù)底座,通過(guò)控制云上流量進(jìn)行業(yè)務(wù)遷移,可謂水到渠成。在保證業(yè)務(wù)平穩(wěn)運(yùn)行的前提下,按照5%、20%、50%、100%精控流量比例,最終實(shí)現(xiàn)無(wú)感化云上業(yè)務(wù)流量遷移。
五、總結(jié)
通過(guò)云原生改造極大提升了對(duì)業(yè)務(wù)發(fā)展的支撐能力,但也給運(yùn)維帶來(lái)新挑戰(zhàn)。一方面,系統(tǒng)架構(gòu)變得更復(fù)雜,節(jié)點(diǎn)連接繁多,運(yùn)維難度增大,故障排查定位困難;另一方面,單 pod 故障概率高于傳統(tǒng)服務(wù)器,在途交易差錯(cuò)賬處理要求提高,而且運(yùn)維所涉獵技術(shù)領(lǐng)域更廣,對(duì)運(yùn)維人員技術(shù)能力要求更高。
未來(lái),我們將著力繼續(xù)探索在復(fù)雜服務(wù)中快速定位故障的方法,加強(qiáng)標(biāo)準(zhǔn)化建設(shè)持續(xù)提升可觀測(cè)水平,不斷提升智能運(yùn)維能力,保障系統(tǒng)平穩(wěn)運(yùn)行,賦能業(yè)務(wù)快速發(fā)展。
作者:郭紅斌
深耕金融科技安全運(yùn)營(yíng)領(lǐng)域多年,目前主要負(fù)責(zé)金融類存管系統(tǒng)的應(yīng)用運(yùn)維建設(shè)工作。面對(duì)萬(wàn)千技術(shù)的更新迭代,打造規(guī)范化、可視化、快速響應(yīng)的安全運(yùn)營(yíng)能力,是我們亙古不變的目標(biāo)。