文/韓道岐
銀行現(xiàn)有的IT架構(gòu)已經(jīng)不能滿足互聯(lián)網(wǎng)秒殺、低成本高用戶群覆蓋、技術(shù)自主可控等要求。銀行的傳統(tǒng)IT架構(gòu)面臨下列問(wèn)題(圖1):
應(yīng)用系統(tǒng)投產(chǎn)后的運(yùn)營(yíng)過(guò)程中,業(yè)務(wù)并發(fā)和數(shù)據(jù)量迅速成倍增長(zhǎng),數(shù)據(jù)庫(kù)運(yùn)維壓力越來(lái)越大。業(yè)務(wù)監(jiān)管、業(yè)務(wù)創(chuàng)新等需求,導(dǎo)致系統(tǒng)變更頻繁,需要進(jìn)一步縮短新業(yè)務(wù)上線和系統(tǒng)變更維護(hù)的計(jì)劃停機(jī)時(shí)間。新老系統(tǒng)切換需要更穩(wěn)健的升級(jí)方案。
反觀大型互聯(lián)網(wǎng)企業(yè)的系統(tǒng),高峰并發(fā)能達(dá)到百萬(wàn)級(jí)別,大量使用廉價(jià)X86平臺(tái)構(gòu)建分布式云計(jì)算處理系統(tǒng),自主研究和引入成熟開源技術(shù),構(gòu)建自主可控的各層平臺(tái)軟件,面向服務(wù)方式構(gòu)建可擴(kuò)展多層次架構(gòu)。通過(guò)分而治之的策略,化解了大用戶量、大業(yè)務(wù)量的問(wèn)題。
而很多銀行的新一代核心系統(tǒng)規(guī)劃,進(jìn)行讀寫分離、業(yè)務(wù)分庫(kù)表的優(yōu)化,賬戶和產(chǎn)品分離、支付和產(chǎn)品分離、核算和產(chǎn)品分離,使用不同技術(shù)構(gòu)建混合平臺(tái)模式的私有云,也提高了整個(gè)系統(tǒng)的并發(fā)能力。一些關(guān)鍵業(yè)務(wù)不再依托特定的軟硬件平臺(tái),使用開放技術(shù)構(gòu)建。
在某大行實(shí)施了更自主可控、低成本的軟件定義的服務(wù)目錄技術(shù),在單數(shù)據(jù)中心內(nèi)部服務(wù)調(diào)度能力也可達(dá)到20萬(wàn)/秒,并可很好的支持多數(shù)據(jù)中心并行服務(wù)、兩地三中心災(zāi)備的大規(guī)模分布式部署要求,尋址和故障切換對(duì)應(yīng)用透明。
表1:兩種云化技術(shù)的功能對(duì)比
圖1:傳統(tǒng)IT架構(gòu)面臨的問(wèn)題
2013年,容器技術(shù)被Docker的橫空出世再一次引爆,其核心價(jià)值在于隔離性、封裝性與跨平臺(tái)部署。這就使得在微服務(wù)架構(gòu)下的企業(yè)IT,可在開發(fā)、測(cè)試、運(yùn)維過(guò)程中更加快速敏捷。企業(yè)在面臨應(yīng)用的快速迭代壓力下,開始思考基于docker容器技術(shù)的下一代云變革,基于docker完善的工具鏈,逐層堆積組件集,按需構(gòu)建應(yīng)用,迭代各類精益調(diào)整的參數(shù)、配置文件、腳本,如圖2所示。
使用虛擬化技術(shù)實(shí)現(xiàn)IAAS層的自動(dòng)化、大規(guī)模部署。使用openstack等開源技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)、存儲(chǔ)、計(jì)算節(jié)點(diǎn)的虛擬化創(chuàng)建,提供云的資源管理、應(yīng)用自動(dòng)調(diào)度、監(jiān)控、日常運(yùn)維工具,使用docker技術(shù)固化系統(tǒng)和應(yīng)用的安裝鏡像,如表1所示。
使用分布式隊(duì)列、異步可靠消息、面向服務(wù)的封裝技術(shù),實(shí)施PAAS層功能的服務(wù)化。提供一個(gè)更好的支撐分布式應(yīng)用開發(fā)、運(yùn)行、測(cè)試的框架平臺(tái)。
針對(duì)金融應(yīng)用,提供固化的模型應(yīng)用框架,快速開發(fā)調(diào)整。多租戶的SAAS服務(wù)模式,可互聯(lián)網(wǎng)方式運(yùn)營(yíng)應(yīng)用服務(wù),集中建設(shè)服務(wù)長(zhǎng)尾。
根據(jù)上述需求,設(shè)計(jì)系統(tǒng)的整體軟件邏輯架構(gòu)如下四層:
(1)容器平臺(tái)服務(wù):輕量級(jí)容器技術(shù),更高的性能、更快的部署速度應(yīng)用+運(yùn)行環(huán)境整體打包,一次構(gòu)建,重復(fù)部署。
(2)平臺(tái)軟件服務(wù):開源和廠商的各類中間件的集成,如:Tomcat、WAS、RDS(Oracle、mysql)、MQ(ActiveMQ、Kafka)、SLB(nginx、HA-proxy),構(gòu)建云化基線版本。
(3)支撐開發(fā)測(cè)試流水線DevOps,云上開發(fā)環(huán)境,云上測(cè)試環(huán)境服務(wù)化及部署。構(gòu)建編譯、打包、鏡像制作、部署的全流程自動(dòng)化。
(4)分布式微服務(wù)框架,海量服務(wù)自動(dòng)注冊(cè)、發(fā)現(xiàn)、路由、調(diào)用鏈跟蹤與日志實(shí)時(shí)處理分析。高性能與擴(kuò)展性,提供服務(wù)開發(fā)框架和微服務(wù)管理體系。使用統(tǒng)一的IDE工具集成開發(fā)、測(cè)試、服務(wù)框架、微服務(wù)管理功能,具有一體化、提高復(fù)用性、大規(guī)模團(tuán)隊(duì)分工協(xié)作等優(yōu)點(diǎn)。
研究的創(chuàng)新點(diǎn)在于:提供高效尋址緩存和分布式服務(wù)注冊(cè)中心機(jī)制,把上述三層的云服務(wù)統(tǒng)一管理、發(fā)布,通過(guò)管理臺(tái),隨時(shí)隨地可以獲得各類資源狀態(tài)、容錯(cuò)調(diào)用。重點(diǎn)解決分布式的準(zhǔn)實(shí)時(shí)一致性、上億用戶并發(fā)的響應(yīng)性能問(wèn)題、實(shí)時(shí)容錯(cuò)能力三方面難題。
新一代最主要的特點(diǎn)為分布式、使用廉價(jià)的X86集群、虛擬化管理和擴(kuò)展。
新架構(gòu)可以橫向擴(kuò)展,容量和并發(fā)不再受限,系統(tǒng)容錯(cuò)和可維護(hù)性強(qiáng)。
需要平臺(tái)化一些設(shè)計(jì)特征,提供安全可靠的服務(wù)容器,避免復(fù)雜的應(yīng)用處理邏輯;針對(duì)公共需求固化公共組件,服務(wù)方式訪問(wèn)組件,避免組件耦合,最終減少每個(gè)應(yīng)用系統(tǒng)的開發(fā)工作。
新的分布式架構(gòu),需要實(shí)現(xiàn)數(shù)據(jù)庫(kù)、應(yīng)用、存儲(chǔ)、網(wǎng)絡(luò)、計(jì)算節(jié)點(diǎn)的多節(jié)點(diǎn)并行計(jì)算,水平可在線動(dòng)態(tài)擴(kuò)展,垂直可分層分類隔離。通過(guò)全局的服務(wù)總線,松散耦合服務(wù)提供者和服務(wù)消費(fèi)者;通過(guò)數(shù)據(jù)復(fù)制防丟失,數(shù)據(jù)多副本后,可提供不同服務(wù),可水平擴(kuò)展服務(wù)訪問(wèn)能力。
提供統(tǒng)一的分布式服務(wù)容器平臺(tái),支持各類技術(shù)組件、業(yè)務(wù)組件的部署和運(yùn)行。相關(guān)服務(wù)規(guī)范,由平臺(tái)統(tǒng)一實(shí)現(xiàn),組件建設(shè)項(xiàng)目組只需關(guān)注組件功能目標(biāo)。
分布式部署后,各系統(tǒng)間須使用標(biāo)準(zhǔn)化的服務(wù)方式訪問(wèn),接口清晰易用、易調(diào)試,服務(wù)發(fā)布和服務(wù)訪問(wèn)由服務(wù)容器平臺(tái)配置化實(shí)現(xiàn),提供流程和各步驟訪問(wèn)關(guān)系視圖、一致的調(diào)試日志視圖,方便理解和維護(hù)。
平臺(tái)使用插件機(jī)制,固化服務(wù)代理、服務(wù)組裝、服務(wù)發(fā)布三類插件,都可以配置化部署在不同的計(jì)算節(jié)點(diǎn)上。通過(guò)DRQ分布式實(shí)時(shí)處理隊(duì)列進(jìn)行消息可靠傳輸處理,提供消息排隊(duì)和優(yōu)先級(jí)調(diào)度機(jī)制,根據(jù)服務(wù)接口字段配置化路由,分發(fā)給內(nèi)部不同插件服務(wù)、分發(fā)給外部不同服務(wù)節(jié)點(diǎn)。DRQ提供數(shù)據(jù)緩存池機(jī)制,使用HASH內(nèi)存池的方式高效率處理,KEY/VALUE方式簡(jiǎn)潔訪問(wèn),自動(dòng)的編解碼數(shù)據(jù),通過(guò)網(wǎng)絡(luò)方式、本地DRQ隊(duì)列方法高效傳輸數(shù)據(jù)。DRQ提供了同步消息傳輸、異步消息傳輸、響應(yīng)消息的自動(dòng)匹配、消息唯一性、生命周期登記和清理等機(jī)制,基于DRQ的這些機(jī)制,實(shí)現(xiàn)上層的各種服務(wù)模型會(huì)簡(jiǎn)化、可靠。
平臺(tái)提供集群部署和管理服務(wù),避免單點(diǎn)故障;無(wú)需一次性投入,可以根據(jù)業(yè)務(wù)的發(fā)展,增加機(jī)器;可以將不同類型機(jī)器組成集群部署(比如AIX、HP-UX、Linux等)
針對(duì)運(yùn)行節(jié)點(diǎn)、插件、服務(wù)、應(yīng)用模塊、配置項(xiàng)資源,提供了動(dòng)態(tài)安裝、啟動(dòng)、停止、更新和刪除機(jī)制。多版本并存,更新時(shí),不影響當(dāng)前版本,可預(yù)約新版本生效時(shí)間點(diǎn),集群內(nèi)部的同時(shí)更新生效。
圖2:Docker的C/S服務(wù)架構(gòu)
提供故障身份ID的識(shí)別和自動(dòng)隔離機(jī)制,周邊服務(wù)系統(tǒng)的故障會(huì)被服務(wù)容器快速識(shí)別和隔離,不影響其他服務(wù)的正常處理。
提供服務(wù)降級(jí)機(jī)制,控制服務(wù)并發(fā)量??蓪?duì)服務(wù)、目的方、客戶化應(yīng)用條目,設(shè)置流量控制策略,并可以根據(jù)歷史的成功率情況動(dòng)態(tài)調(diào)整目的方并發(fā)數(shù)閾值。
服務(wù)的訪問(wèn)通過(guò)標(biāo)準(zhǔn)化和服務(wù)容器平臺(tái)固化后,應(yīng)用調(diào)用服務(wù)處理變得簡(jiǎn)單、高效。
應(yīng)用可以透明、動(dòng)態(tài)、高效的找到目的服務(wù)方,服務(wù)方可以靈活的水平拆分、不影響消費(fèi)者的調(diào)用,是新架構(gòu)第二個(gè)要解決的問(wèn)題。
大量的服務(wù)地址,可以通過(guò)總線平臺(tái)的服務(wù)代理插件配置,固化在總線平臺(tái)中。缺點(diǎn)是當(dāng)服務(wù)提供者發(fā)生擴(kuò)容、服務(wù)地址切換、新服務(wù)投產(chǎn)等事件時(shí),總線平臺(tái)必須進(jìn)行手工調(diào)整。總線平臺(tái)的擴(kuò)展和容錯(cuò),還要依托負(fù)載均衡設(shè)備。
新架構(gòu)設(shè)計(jì)了尋址組件和服務(wù)目錄組件,實(shí)現(xiàn)軟件方式的本地動(dòng)態(tài)尋址,這樣大量的內(nèi)部尋址需求,可以避免依賴負(fù)載均衡設(shè)備和手工管理切換。通過(guò)AGENT隔離和授權(quán)、訪問(wèn)ACL、黑白名單、流量控制等機(jī)制,保障服務(wù)體系的安全可控。架構(gòu)建議應(yīng)用調(diào)用服務(wù)時(shí),至少兩次尋址容錯(cuò)、并保證使用唯一的全局流水號(hào),提高成功率、避免服務(wù)重復(fù)處理,發(fā)生不一致時(shí),可以根據(jù)全局流水號(hào)跟蹤異常。
優(yōu)勢(shì)在于:服務(wù)的狀態(tài)是動(dòng)態(tài)注冊(cè)進(jìn)入服務(wù)目錄的,實(shí)時(shí)在整個(gè)數(shù)據(jù)中心內(nèi)部同步,服務(wù)消費(fèi)者在本地發(fā)現(xiàn)服務(wù),直接訪問(wèn)服務(wù),取消了對(duì)負(fù)載均衡設(shè)備、總線平臺(tái)的依賴。服務(wù)控制、負(fù)載均衡、資源節(jié)能調(diào)度或擴(kuò)容、故障隔離、災(zāi)備切換、靈活路由等功能,都統(tǒng)一封裝在尋址組件中,更一體化、自動(dòng)化。
難點(diǎn)在于:服務(wù)訪問(wèn)需要標(biāo)準(zhǔn)化,消費(fèi)者不再關(guān)心提供者的服務(wù)協(xié)議。需要規(guī)范各系統(tǒng)的服務(wù)訪問(wèn)實(shí)現(xiàn),尋址、服務(wù)控制、監(jiān)控登記,需要改造調(diào)用尋址組件的API。服務(wù)容量大幅提高后,給日志備份和分析、實(shí)時(shí)監(jiān)控、指標(biāo)統(tǒng)計(jì)、高效故障切換等實(shí)現(xiàn)帶來(lái)數(shù)據(jù)量的壓力,相關(guān)系統(tǒng)也必須使用分布式技術(shù)改造。
服務(wù)總線可以先完成尋址改造,一些服務(wù)組合和條件路由還是依托總線平臺(tái)實(shí)現(xiàn),不能下沉給服務(wù)消費(fèi)者。
假設(shè)使用用戶ID作為分段,水平切分服務(wù)時(shí),消費(fèi)者需使用該ID做應(yīng)用尋址條件字段,訪問(wèn)服務(wù)方??缍鄠€(gè)用戶的整合事務(wù)服務(wù),需要獨(dú)立建設(shè)系統(tǒng),記錄和保障分段的多個(gè)事務(wù)的一致性。
為消除應(yīng)用服務(wù)對(duì)數(shù)據(jù)集中訪問(wèn)的依賴,需要根據(jù)其變化頻率和生效要求,定性出固定參數(shù)、非實(shí)時(shí)變更、動(dòng)態(tài)數(shù)據(jù)、強(qiáng)一致性要求的賬務(wù)數(shù)據(jù)。對(duì)不需要實(shí)時(shí)串行保持一致性的數(shù)據(jù),采用復(fù)制和緩存技術(shù),提高訪問(wèn)效率。通過(guò)緩存機(jī)制訂閱關(guān)注的數(shù)據(jù)變更,減少網(wǎng)絡(luò)的廣播數(shù)據(jù)量。
平臺(tái)級(jí)所有的資源配置都通過(guò)XML文件,部署到運(yùn)行環(huán)境中,提供多版本的緩存裝載、生效機(jī)制,運(yùn)行引擎通過(guò)緩存訪問(wèn)最新版本配置項(xiàng)。
為應(yīng)用級(jí)的靜態(tài)參數(shù),如:技術(shù)參數(shù)、業(yè)務(wù)參數(shù)、客戶化表達(dá)式處理,提供KEY/VALUE形式配置和緩存裝載,可以按需動(dòng)態(tài)加載新版本后,應(yīng)用使用統(tǒng)一API訪問(wèn)最新版本的配置。
針對(duì)動(dòng)態(tài)數(shù)據(jù),提供可讀寫的緩存機(jī)制,在服務(wù)處理過(guò)程中,根據(jù)需要?jiǎng)討B(tài)登記緩存,按記錄多版本管理數(shù)據(jù)。固化實(shí)現(xiàn)動(dòng)態(tài)裝載數(shù)據(jù)庫(kù)表、動(dòng)態(tài)裝載數(shù)據(jù)文件的處理程序,在相關(guān)資源發(fā)生變化時(shí),根據(jù)配置文件定義,自動(dòng)完成裝載緩存處理。作為備份服務(wù)器的緩存,需要能實(shí)時(shí)備份數(shù)據(jù)到文件系統(tǒng)中,保證消息類緩存的可靠性和可恢復(fù)。建議一次寫提交、少量或無(wú)數(shù)據(jù)變更、大量讀查詢、能夠忍受1秒變更信息延誤的業(yè)務(wù)場(chǎng)景下,使用緩存機(jī)制。而頻繁更新、需要高可靠一致性的數(shù)據(jù)修改處理,不能使用緩存。
分布部署時(shí),文件服務(wù)也可以使用動(dòng)態(tài)緩存機(jī)制,把文件直接放入緩存并從緩存中讀取文件,對(duì)應(yīng)用透明化文件的存放位置。保存文件時(shí),需要先注冊(cè)文件目錄所在的動(dòng)態(tài)緩存服務(wù)器,然后寫入動(dòng)態(tài)緩存服務(wù)器。讀取文件時(shí),需要先尋址文件目錄存放地址后,再?gòu)膶?duì)應(yīng)的緩存服務(wù)器讀出文件。支持分塊傳輸和異步斷點(diǎn)續(xù)傳客戶端。
文件服務(wù)也需要通過(guò)注冊(cè)方式登記到服務(wù)目錄中,應(yīng)用可使用尋址方式獲得文件服務(wù)器地址,使用標(biāo)準(zhǔn)發(fā)送、接收文件API完成可靠的文件傳輸,也可以交給客戶端異步任務(wù)方式完成可靠的文件傳輸。傳輸API根據(jù)配置選擇使用異步還是同步的方式寫入備份服務(wù)器,通過(guò)配置兩次寫文件,讀失敗再通過(guò)備份服務(wù)器嘗試讀一次,提高文件的讀寫可靠性。
分布式哈希表DHT,是目前主要的大規(guī)模分布式存儲(chǔ)方式,可不需要服務(wù)器方式,組織松散的P2P網(wǎng)絡(luò)結(jié)構(gòu),利用各類資源組成大規(guī)模的數(shù)據(jù)共享服務(wù)。對(duì)于動(dòng)態(tài)數(shù)據(jù)緩存和文件數(shù)據(jù)緩存,使用其中比較成熟的一致性HASH算法和KAD算法。
一致性哈希算法(Consistent Hashing)最早在論文《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web》中被提出,可以很好實(shí)現(xiàn)資源的均勻分布和快速按線索搜索。簡(jiǎn)單來(lái)說(shuō),一致性哈希將整個(gè)哈希值空間組織成一個(gè)虛擬的圓環(huán),如假設(shè)某哈希函數(shù)H的值空間為0-2^32-1(即哈希值是一個(gè)32位無(wú)符號(hào)整形),整個(gè)哈??臻g環(huán)按順時(shí)針?lè)较蚪M織。0和232-1在零點(diǎn)中方向重合。各個(gè)服務(wù)器使用Hash進(jìn)行一個(gè)哈希,具體可以選擇服務(wù)器的ip或主機(jī)名作為關(guān)鍵字進(jìn)行哈希,這樣每臺(tái)機(jī)器就能確定其在哈希環(huán)上的位置。數(shù)據(jù)key使用相同的函數(shù)Hash計(jì)算出哈希值,并確定此數(shù)據(jù)在環(huán)上的位置,從此位置沿環(huán)順時(shí)針“行走”,第一臺(tái)遇到的服務(wù)器就是其應(yīng)該定位到的服務(wù)器。
KAD(Kademlia)算法,由于其簡(jiǎn)單性、靈活性、安全性成為主流的實(shí)現(xiàn)方式。KAD無(wú)需服務(wù)器,通過(guò)ID異或機(jī)制劃分距離空間,幾次近鄰詢問(wèn)跳轉(zhuǎn),就可查詢網(wǎng)絡(luò)中的鄰居節(jié)點(diǎn)、關(guān)鍵字字典、文件種子、文件索引字典等信息。每個(gè)路由節(jié)點(diǎn)中使用隊(duì)列保存多個(gè)節(jié)點(diǎn),使得節(jié)點(diǎn)查詢更迅速、命中概率更高,隊(duì)列中根據(jù)活躍時(shí)間進(jìn)行換入換出,更有利于在p2p這種節(jié)點(diǎn)變更頻繁的網(wǎng)絡(luò)中快速找到有效的節(jié)點(diǎn)。
在軟硬件故障率大幅下降的情況下,交易出現(xiàn)最終不一致的概率會(huì)大大降低。通過(guò)各環(huán)節(jié)的設(shè)備冗余,服務(wù)調(diào)用的2次容錯(cuò)嘗試,也可以降低故障影響。
通過(guò)監(jiān)控系統(tǒng)的吞吐情況,在超過(guò)警戒線時(shí),及時(shí)增加相關(guān)資源,保證各環(huán)節(jié)沒(méi)有堵塞消息、可橫向擴(kuò)展、在最小的時(shí)間范圍內(nèi)完成處理,也會(huì)增加最終一致性的比率。
當(dāng)多個(gè)分布處理步驟場(chǎng)景下,某個(gè)步驟出現(xiàn)業(yè)務(wù)錯(cuò)誤時(shí),通過(guò)自動(dòng)沖正機(jī)制,實(shí)現(xiàn)異步的多次回滾各個(gè)成功步驟,解決不一致性的問(wèn)題。有一致性問(wèn)題后,應(yīng)及時(shí)提示客服人員,對(duì)當(dāng)前超過(guò)一定時(shí)間沒(méi)有完成回滾的交易,進(jìn)行人工核對(duì)和手工回滾。日終進(jìn)行多系統(tǒng)流水?dāng)?shù)據(jù)的自動(dòng)化核對(duì),發(fā)現(xiàn)不一致情況,批量調(diào)整。
針對(duì)賬務(wù)類和關(guān)鍵類服務(wù),還可以提供統(tǒng)一的差錯(cuò)接收服務(wù),各系統(tǒng)在發(fā)送異常時(shí)推送差錯(cuò)消息。通過(guò)全局業(yè)務(wù)流水號(hào),可展示各服務(wù)的完整性處理過(guò)程,方便集中處理中心的人員及時(shí)發(fā)現(xiàn)問(wèn)題、分析問(wèn)題,手工處理。
分布式架構(gòu)下,過(guò)程的不一致會(huì)在短暫時(shí)間內(nèi)產(chǎn)生的,因此業(yè)務(wù)流程設(shè)計(jì)時(shí),必須保證每個(gè)步驟執(zhí)行后,產(chǎn)生的信息或資金不一致狀態(tài)情況,不會(huì)出現(xiàn)業(yè)務(wù)風(fēng)險(xiǎn)。如先扣款保證資金安全、不會(huì)重復(fù)入賬處理,然后可以通過(guò)客服和事后調(diào)整解決問(wèn)題。
在廉價(jià)的X86上,可以提供大量的虛擬化計(jì)算節(jié)點(diǎn),分布式部署后,系統(tǒng)的安裝、啟停、更新、監(jiān)控、調(diào)度、日志和異常分析,不再是簡(jiǎn)單登錄到一個(gè)節(jié)點(diǎn)控制臺(tái)即可完成的任務(wù)。需要一個(gè)完善的分布式部署、采集和管理框架,批量化完成大量節(jié)點(diǎn)的管理,自動(dòng)化完成采集、分析、展現(xiàn)、調(diào)度資源、屏蔽故障的處理。
首先是服務(wù)容器和應(yīng)用系統(tǒng),提供穩(wěn)定的版本包,制作到docker或kvm的虛擬化安裝鏡像中,IAAS平臺(tái)創(chuàng)建完相關(guān)虛擬化設(shè)備資源后,就可以直接安裝鏡像。然后是提供一鍵化安裝腳本,根據(jù)虛擬化結(jié)果的物理環(huán)境,自動(dòng)調(diào)整操作系統(tǒng)、平臺(tái)、應(yīng)用的設(shè)置,裝載一些標(biāo)準(zhǔn)化的參數(shù)數(shù)據(jù)。
對(duì)經(jīng)常需要更新的應(yīng)用、代理、第三方軟件包等擴(kuò)展程序,能夠使用鏡像倉(cāng)庫(kù)樹型結(jié)構(gòu)集中管理,登記相關(guān)版本包和依賴包、更新信息、差異比對(duì)情況、交付時(shí)間、驗(yàn)證測(cè)試時(shí)間、上線時(shí)間、各階段責(zé)任人。在集群中,并行的命令方式執(zhí)行下面的任務(wù):出庫(kù)版本并上傳,部署新版本(解包、復(fù)制到部署目錄)、啟動(dòng)、停止、重啟、平滑刷新新版本、回退指定版本。
提供agent完成受控端的命令式處理(啟停、實(shí)時(shí)查詢等),預(yù)警、日志、狀態(tài)定時(shí)采集處理。異常及相關(guān)錯(cuò)誤信息的實(shí)時(shí)推送到展現(xiàn)端。
注冊(cè)中心支持多租戶的定義,集中控制所有服務(wù)的注冊(cè)和尋址,可以方便的擴(kuò)展各類安全控制策略。需要管理相關(guān)用戶口令,訪問(wèn)的令牌,各類密鑰。
服務(wù)消費(fèi)者和提供者,都必須先自助在線上管理系統(tǒng)完成參與者定義,申請(qǐng)需要訪問(wèn)的服務(wù)、由提供方系統(tǒng)管理員授權(quán),在線上管理系統(tǒng)獲得用戶、口令、APP KEY、證書、AGENT包,才能在生產(chǎn)環(huán)境中訪問(wèn)注冊(cè)中心、注冊(cè)服務(wù)、尋址服務(wù)。AGENT定時(shí)與注冊(cè)中心認(rèn)證、動(dòng)態(tài)請(qǐng)求維護(hù)accessKey。消費(fèi)者尋址成功后,AGENT提供一次性訪問(wèn)安全上下文(由服務(wù)、地址、用戶名、accessKey、時(shí)間戳組成串,簽名獲得),在訪問(wèn)服務(wù)時(shí)必須提供安全上下文;服務(wù)方需驗(yàn)證簽名,確認(rèn)消費(fèi)者身份后,完成授權(quán)檢查。對(duì)服務(wù)方返回的結(jié)果數(shù)據(jù),同樣需要服務(wù)方簽名,消費(fèi)者驗(yàn)證簽名,確認(rèn)服務(wù)方身份后,進(jìn)行后續(xù)處理。
在參與者調(diào)用API時(shí),登記服務(wù)審計(jì)記錄,保存現(xiàn)場(chǎng)信息、耗時(shí)信息。通過(guò)AGENT定時(shí)收集審計(jì)記錄,匯總到注冊(cè)中心,在注冊(cè)中心統(tǒng)計(jì)、查詢。
通過(guò)分析行業(yè)現(xiàn)狀,提出了服務(wù)總線平臺(tái)建設(shè)要求和關(guān)鍵技術(shù)方案。結(jié)合多個(gè)銀行總線項(xiàng)目的落地實(shí)踐過(guò)程,建議切實(shí)可行的目標(biāo)平臺(tái)應(yīng)用架構(gòu)。
服務(wù)平臺(tái)還需要加強(qiáng)網(wǎng)絡(luò)安全的4個(gè)領(lǐng)域功能:保密、認(rèn)證、不可否認(rèn)和完整性。由下列內(nèi)容組成:各類加解密算法,保密的密鑰,安全認(rèn)證和認(rèn)證保持,信任憑證的保持和遷移。
在平臺(tái)上應(yīng)用相關(guān)安全技術(shù),可響應(yīng)目前國(guó)家倡導(dǎo)的安全、自主可控方針,將關(guān)鍵的銀行業(yè)務(wù)系統(tǒng),安全、平穩(wěn)的過(guò)渡到分布式的SOA架構(gòu)中。