韓丹
(中海油信息科技有限公司 北京市 100010)
信息化時(shí)代發(fā)展下,計(jì)算機(jī)信息技術(shù)滲透到社會(huì)各個(gè)領(lǐng)域中,并在技術(shù)發(fā)展下衍生出云計(jì)算理念,云平臺(tái)微服務(wù)架構(gòu)逐漸作為計(jì)算機(jī)中重要的軟件架構(gòu),微服務(wù)不受環(huán)境、時(shí)間、地點(diǎn)等因素限制,可以滿足人們個(gè)性化需求,因此,相關(guān)研究人員認(rèn)為有必要就基于DevOps的云平臺(tái)微服務(wù)架構(gòu)可靠性進(jìn)行分析,以期突破傳統(tǒng)云平臺(tái)微服務(wù)架構(gòu)模式。
網(wǎng)絡(luò)服務(wù)架構(gòu)服務(wù)模式主要體現(xiàn)在學(xué)校學(xué)生管理系統(tǒng)、企業(yè)人事系統(tǒng)、手機(jī)APP 應(yīng)用中,在網(wǎng)絡(luò)服務(wù)架構(gòu)支持下,為系統(tǒng)、APP后臺(tái)運(yùn)行提供服務(wù)。在軟件系統(tǒng)中,網(wǎng)絡(luò)服務(wù)架構(gòu)服務(wù)主要體現(xiàn)在支持軟件功能的應(yīng)用上,隨著網(wǎng)絡(luò)普及,網(wǎng)絡(luò)服務(wù)架構(gòu)服務(wù)已成為軟件后臺(tái)服務(wù)、軟件開發(fā)重要組成部分。
2.2.1 優(yōu)勢
傳統(tǒng)的應(yīng)用架構(gòu)在中小型項(xiàng)目轉(zhuǎn)換中難以控制,項(xiàng)目笨重;同時(shí),項(xiàng)目頻繁發(fā)布增加了應(yīng)用架構(gòu)負(fù)載,難以滿足項(xiàng)目實(shí)際發(fā)布需求。傳統(tǒng)的單體服務(wù)架構(gòu)、SOA 架構(gòu)在設(shè)計(jì)與實(shí)現(xiàn)中存在諸多的問題,影響開發(fā)技術(shù)的應(yīng)用與拓展。
微服務(wù)架構(gòu)在SOA 基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn),將微服務(wù)做到極致;微服務(wù)架構(gòu)在開發(fā)應(yīng)用中不斷補(bǔ)充開發(fā)、拓展開發(fā),加快促進(jìn)系統(tǒng)更迭。同時(shí),微服務(wù)架構(gòu),可在復(fù)雜的系統(tǒng)中劃分為不同的服務(wù)類型,各個(gè)服務(wù)之間是獨(dú)立存在的狀態(tài),支持在不同主機(jī)內(nèi)分布,并由容器統(tǒng)一控制管理[1]。突破傳統(tǒng)架構(gòu)設(shè)計(jì)局限,提升云平臺(tái)微服務(wù)架構(gòu)穩(wěn)定性,保證數(shù)據(jù)的安全性,有效感知所有數(shù)據(jù)傳輸路徑,發(fā)揮出云平臺(tái)微服務(wù)架優(yōu)勢作用。
2.2.2 特點(diǎn)
就微服務(wù)架構(gòu)特征看:架構(gòu)具有去中心化特征,每個(gè)服務(wù)單獨(dú)開發(fā),服務(wù)代碼量小、簡單,支持獨(dú)立運(yùn)行、測試和部署,沒有ESB,支持分布式部署,建立了屬于自己的數(shù)據(jù)庫,通過接口獲得服務(wù)數(shù)據(jù)信息。
云平臺(tái)微服務(wù)架構(gòu)中,包含了多種設(shè)計(jì)模式,為保證云平臺(tái)微服務(wù)傳輸數(shù)據(jù)安全、可靠,需要挑選一種合適的評(píng)估指標(biāo),快速感知數(shù)據(jù)傳輸情況,并對(duì)不同路徑數(shù)據(jù)進(jìn)行處理,微服務(wù)的云平臺(tái)設(shè)計(jì)到技術(shù)應(yīng)用如下:
2.3.1 容器技術(shù)
微服務(wù)系統(tǒng)開發(fā)了線上服務(wù),為保證新開發(fā)的線上系統(tǒng)不影響系統(tǒng)項(xiàng)目整體的運(yùn)行,保證現(xiàn)有系統(tǒng)技術(shù)的兼容性,相關(guān)開發(fā)設(shè)計(jì)人員應(yīng)用了容器技術(shù)搭建線上服務(wù)運(yùn)行環(huán)境[2]。容器虛擬化技術(shù)可提供多個(gè)隔離的系統(tǒng)環(huán)境,在共享本地主機(jī)操作系統(tǒng)支持下,得以實(shí)現(xiàn),相關(guān)企業(yè)云服務(wù)平臺(tái)容器技術(shù)的應(yīng)用尤為青睞,大批量的開發(fā)者將網(wǎng)絡(luò)服務(wù)部署在容器中,然而相關(guān)開發(fā)者仍需要就容器系統(tǒng)的容錯(cuò)性展開進(jìn)一步的探究,設(shè)計(jì)開發(fā)性能可靠的容器編排工具管理容器。
2.3.2 CaaS
CaaS 云服務(wù)是基于容器的PaaS 系統(tǒng),適用于微服務(wù)部署,基于微服務(wù)單獨(dú)部署在容器中,當(dāng)開發(fā)者部署其中一個(gè)服務(wù)時(shí),需要搭建鏡像,將服務(wù)部署在其中,進(jìn)而實(shí)現(xiàn)微服務(wù)在云平臺(tái)上的運(yùn)行。
2.3.3 BaaS
BaaS 可直接提供微服務(wù),服務(wù)對(duì)象是面向開發(fā)者的,在平臺(tái)系統(tǒng)中,提供了存儲(chǔ)、通訊、數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析、分享等諸多的服務(wù)功能,大大降低了開發(fā)難度,并在系統(tǒng)不斷開發(fā)過程中,進(jìn)行擴(kuò)充開發(fā)。
計(jì)算機(jī)技術(shù)快速發(fā)展下,開發(fā)者更加傾向于開發(fā)私有平臺(tái),逐步實(shí)現(xiàn)了云桌面、虛擬化等云平臺(tái)服務(wù)端服務(wù)。開發(fā)者就服務(wù)端功能性需求進(jìn)行分析,定義服務(wù)端角色,設(shè)定相關(guān)的權(quán)限,優(yōu)化云存儲(chǔ)空間配置等,有效整合了相關(guān)資源,實(shí)現(xiàn)云應(yīng)用管理、虛擬機(jī)管理,實(shí)時(shí)監(jiān)控云平臺(tái)資源使用情況,掌握相關(guān)信息[3]。用戶登錄云平臺(tái)系統(tǒng)后,瀏覽、查看、訂購信息,同時(shí)系統(tǒng)支持個(gè)人信息設(shè)置和上傳,在應(yīng)用使用過程中,云平臺(tái)提供訪問操作。
3.1.1 云平臺(tái)服務(wù)端整體架構(gòu)設(shè)計(jì)
云平臺(tái)服務(wù)端整體架構(gòu)設(shè)計(jì),各個(gè)管理層、服務(wù)層所提供的功能需求不同,就微服務(wù)治理層來說,其中包含了API 網(wǎng)關(guān)、熔斷服務(wù)、服務(wù)注冊(cè)與發(fā)現(xiàn)等多個(gè)微服務(wù)組件,強(qiáng)化了對(duì)云平臺(tái)服務(wù)端各個(gè)微服務(wù)的治理效果,保障服務(wù)端運(yùn)行的可靠性、高擴(kuò)展性。
3.1.2 服務(wù)端通信方式的設(shè)計(jì)
基于微服務(wù)架構(gòu)支持各個(gè)服務(wù)運(yùn)行在不同的服務(wù)器上,開發(fā)者為避免微服務(wù)之間出現(xiàn)相互調(diào)用的現(xiàn)象,進(jìn)一步設(shè)計(jì)平臺(tái)資源層與各個(gè)服務(wù)端之間的通信方式,確保微服務(wù)調(diào)用和數(shù)據(jù)傳輸格式的一致性。
3.1.3 云平臺(tái)服務(wù)端接口設(shè)計(jì)
開發(fā)者結(jié)合數(shù)據(jù)格式需要,充分考慮數(shù)據(jù)大小、數(shù)據(jù)編碼、數(shù)據(jù)復(fù)雜程度是否符合數(shù)據(jù)格式傳輸要求。開發(fā)者將純文本進(jìn)行編碼,大大減少了數(shù)據(jù)占用的寬帶,編碼傳輸效率較高;同時(shí),開發(fā)者降低了數(shù)據(jù)編碼復(fù)雜度,增強(qiáng)數(shù)據(jù)結(jié)構(gòu)的擴(kuò)展性,保證數(shù)據(jù)傳輸協(xié)議的通用性。
3.1.4 服務(wù)端核心功能模塊設(shè)計(jì)
開發(fā)者設(shè)計(jì)云平臺(tái)服務(wù)端微服務(wù)模塊過程中,通過代碼復(fù)用構(gòu)建了基礎(chǔ)功能服務(wù)群,設(shè)計(jì)了服務(wù)端核心功能模塊,包括云桌面、云應(yīng)用、云存儲(chǔ)模塊,并以此劃分了功能的子功能模塊;在云桌面設(shè)計(jì)中,為用戶提供云桌面使用功能,優(yōu)化了認(rèn)證鑒權(quán)子模塊設(shè)計(jì)、通用功能子模塊設(shè)計(jì)、系統(tǒng)公告子模塊設(shè)計(jì);在云應(yīng)用模塊設(shè)計(jì)中,為用戶提供了一系列的服務(wù)功能,實(shí)現(xiàn)了個(gè)人應(yīng)用管理子模塊設(shè)計(jì)、應(yīng)用使用子模塊設(shè)計(jì)、應(yīng)用恢復(fù)子模塊設(shè)計(jì);在云存儲(chǔ)模塊設(shè)計(jì)中,開發(fā)者依托為用戶提供了直接訪問網(wǎng)盤功能,用戶可根據(jù)實(shí)際需求操作服務(wù)端存儲(chǔ)的資源信息,進(jìn)一步優(yōu)化了網(wǎng)盤訪問子模塊設(shè)計(jì)、網(wǎng)盤掛載子模塊設(shè)計(jì)。
3.1.5 微服務(wù)治理設(shè)計(jì)
微服務(wù)架構(gòu)治理功能是通過各個(gè)核心組件相互配合實(shí)現(xiàn)的,其中限流熔斷功能設(shè)計(jì),在微服務(wù)故障發(fā)生時(shí),通過系統(tǒng)進(jìn)行隔離設(shè)置,實(shí)現(xiàn)故障轉(zhuǎn)移,避免系統(tǒng)出現(xiàn)“雪崩效應(yīng)”;微服務(wù)架構(gòu)中的服務(wù)注冊(cè)與發(fā)現(xiàn)功能,主要負(fù)責(zé)管理云平臺(tái)服務(wù)端的各個(gè)微服務(wù)模塊。
3.2.1 實(shí)現(xiàn)了微服務(wù)同步調(diào)用
云平臺(tái)服務(wù)端調(diào)用通過Spring Cloud Feign 組件得以實(shí)現(xiàn),簡化了服務(wù)調(diào)用方式,編程方式面向接口化。服務(wù)提供方和與調(diào)用方均在注冊(cè)中心進(jìn)行注冊(cè),并從測試中心獲取服務(wù)地址信息,繼續(xù)開展下一步的操作請(qǐng)求。針對(duì)遠(yuǎn)程服務(wù)的調(diào)用,開發(fā)者在微服務(wù)端注入了IFeign Seivice 接口類,依托生成的不同對(duì)象提供的方法實(shí)現(xiàn)遠(yuǎn)程服務(wù)調(diào)用。
3.2.2 云桌面模塊的實(shí)現(xiàn)
就云桌面模塊中認(rèn)證鑒權(quán)子模塊來說,利用API 網(wǎng)關(guān)攔截了用戶請(qǐng)求,自定義過濾攔截的請(qǐng)求信息,并對(duì)信息數(shù)據(jù)加以處理;同時(shí),認(rèn)證鑒權(quán)子模塊的實(shí)現(xiàn),是基于JWT 的生成、解析、驗(yàn)證,對(duì)已經(jīng)攔截過濾的用戶請(qǐng)求實(shí)施認(rèn)證鑒權(quán)。認(rèn)證鑒權(quán)子模塊的實(shí)現(xiàn),充分考慮了用戶請(qǐng)求過程中會(huì)寫到JWT 進(jìn)行身份標(biāo)識(shí)展示,存在JWT 安全隱患,開發(fā)者基于安全角度考慮,在服務(wù)端增加了refreshJWT 字段,重新生成了JWT,并將refreshJWT 過期時(shí)間設(shè)定為3d。
3.2.3 云應(yīng)用模塊的實(shí)現(xiàn)
在云應(yīng)用模塊中的個(gè)人應(yīng)用管理子模塊,實(shí)現(xiàn)了應(yīng)用查找、查看應(yīng)用詳情、訂購或者推定應(yīng)用的功能;應(yīng)用使用子模塊,為用戶提供了打開云應(yīng)用以及關(guān)閉云應(yīng)用的功能,整個(gè)實(shí)現(xiàn)過程的核心,是對(duì)計(jì)算機(jī)資源池主機(jī)優(yōu)化配置,在關(guān)閉云應(yīng)用過程中,將分配主機(jī)資源回收。
3.2.4 云存儲(chǔ)模塊的實(shí)現(xiàn)
云存儲(chǔ)模塊設(shè)計(jì)與實(shí)現(xiàn),用戶可直接通過云平臺(tái)入口對(duì)Owncloud 進(jìn)行訪問,服務(wù)端為用戶提供了網(wǎng)盤掛載和卸載功能;網(wǎng)盤訪問功能調(diào)用主要過程涉及到認(rèn)證用戶網(wǎng)盤權(quán)限,檢測用戶網(wǎng)盤功能、獲取網(wǎng)盤登錄信息等。
開發(fā)者在計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)支持下,搭建了云平臺(tái)微服務(wù)架構(gòu)可靠性模型進(jìn)行分析,提出了三種假設(shè)條件:
一是:節(jié)點(diǎn)與鏈路具備正常運(yùn)行能力;
二是:節(jié)點(diǎn)與鏈路存在失效、正常兩種情況;
三是:節(jié)點(diǎn)與鏈路之間是相互獨(dú)立的。
開發(fā)者在模型分析過程中,采用G=(V、E)表示云平臺(tái)微服務(wù)架構(gòu),V 表示架構(gòu)中節(jié)點(diǎn)的集合、E 表示節(jié)點(diǎn)鏈路集合[4]。開發(fā)者主要依據(jù)圖的連通向量對(duì)云平臺(tái)微服務(wù)架構(gòu)可靠性進(jìn)行評(píng)估分析,運(yùn)用狀態(tài)枚舉法、不交織和法、因子分解法等方法進(jìn)行評(píng)估:
4.1.1 狀態(tài)枚舉法
開發(fā)者根據(jù)云平臺(tái)微服務(wù)架構(gòu)獲取到的可靠度用公式可表示為:
4.1.2 因子分解法
針對(duì)規(guī)模較大的云平臺(tái)服務(wù),根據(jù)因子分解法計(jì)算得到:
4.1.3 容斥法
開發(fā)者利用容斥法計(jì)算出云平臺(tái)微服務(wù)架構(gòu)中的最小路基,用公式可表示為:
相關(guān)研究人員為保證精準(zhǔn)化分析基于DevOps的云平臺(tái)微服務(wù)架構(gòu)具有一定的可靠性,明確了評(píng)估指標(biāo),采用多元化計(jì)算方法,計(jì)算敏感數(shù)據(jù)輸送、輸出路徑,以及傳送端緩沖區(qū)數(shù)據(jù)計(jì)算效率,可快速感知每一種數(shù)據(jù)傳輸路徑實(shí)際的傳輸情況,進(jìn)而全面分析輸送路徑數(shù)據(jù)處理能力,加強(qiáng)對(duì)敏感數(shù)據(jù)流量動(dòng)態(tài)的匹配,切實(shí)保證數(shù)據(jù)傳輸?shù)陌踩浴i_發(fā)者通過實(shí)驗(yàn)反復(fù)驗(yàn)證,通過計(jì)算數(shù)值,全面分析和總結(jié)基于DevOps的云平臺(tái)微服務(wù)架構(gòu)的可靠性,加強(qiáng)對(duì)影響評(píng)估結(jié)果因素的分析,在仿真模型構(gòu)建下開展實(shí)驗(yàn)操作。當(dāng)云平臺(tái)服務(wù)架構(gòu)處于正常運(yùn)行狀態(tài)下,通過擬定的傳輸數(shù)據(jù)變量分析,可得出基于DevOps的云平臺(tái)微服務(wù)架構(gòu)實(shí)際應(yīng)用的可靠度。
4.2.1 測試環(huán)境
相關(guān)人員根據(jù)云平臺(tái)微服務(wù)架構(gòu)測試環(huán)境需要,增設(shè)了12 臺(tái)虛擬機(jī)包括三臺(tái)虛擬機(jī)組成的微服務(wù)治理集群,用于提供相應(yīng)的應(yīng)用服務(wù);包括兩臺(tái)MySQL 數(shù)據(jù)庫、一臺(tái)Redis 緩存數(shù)據(jù)庫等。
4.2.2 核心模塊功能測試
在核心模塊功能測試環(huán)節(jié),主要測試云桌面模塊、云應(yīng)用模塊和云存儲(chǔ)模塊;云桌面模塊功能測試環(huán)節(jié)中,用戶在云桌面系統(tǒng)輸入用戶名、密碼,通過審核驗(yàn)證后完成登錄,隨即進(jìn)入云平臺(tái)主界面,可靈活應(yīng)用主界面中的通用功能,進(jìn)行個(gè)人信息管理,反饋意見,就云平臺(tái)使用過程中出現(xiàn)的漏洞提出意見信息,上傳日志等;同時(shí),云平臺(tái)主界面中可查看公告列表,管理員可發(fā)布公告、啟用公告、編輯或者刪除公告,普通用戶則被限制公告查看權(quán)限。
4.2.3 云應(yīng)用模塊功能測試
云平臺(tái)中,實(shí)現(xiàn)了用戶對(duì)云應(yīng)用管理和使用,用戶在系統(tǒng)中搜索關(guān)鍵字或者根據(jù)應(yīng)用類別進(jìn)行搜索,可批量訂閱,隨時(shí)可查看應(yīng)用詳情;為用戶云應(yīng)用的使用提供便利。在測試中,模擬客戶端異常情況,并探尋具有針對(duì)性的解決措施,測試者重新登錄云平臺(tái)后查看待恢復(fù)應(yīng)用記錄,選擇記錄恢復(fù)前的應(yīng)用場景,實(shí)現(xiàn)客戶端正常運(yùn)行。
4.2.4 云存儲(chǔ)模塊功能測試
云平臺(tái)提供了訪問入口,用戶可由入口進(jìn)入云存儲(chǔ)空間中,訪問個(gè)人相關(guān)的文檔,并對(duì)文件進(jìn)行管理,操作靈活,包括新建、上傳、下載、刪除等,同時(shí),云平臺(tái)支持通過應(yīng)用打開文件,增強(qiáng)了用戶體驗(yàn)。用戶打開應(yīng)用后,可查看用戶個(gè)人網(wǎng)盤以及所屬部門的網(wǎng)盤,并將文件保存到對(duì)應(yīng)的網(wǎng)盤中,用戶可靈活進(jìn)行網(wǎng)盤的掛載和卸載。
開發(fā)者通過對(duì)云平臺(tái)微服務(wù)架構(gòu)運(yùn)行性能和可靠性測試,認(rèn)定基于DevOps的云平臺(tái)微服務(wù)架構(gòu)較比傳統(tǒng)應(yīng)用架構(gòu)優(yōu)勢顯著,平臺(tái)系統(tǒng)可提供正常的服務(wù),滿足最初的設(shè)計(jì)要求。
綜上所述,基于DevOps的云平臺(tái)微服務(wù)架構(gòu)建設(shè),解決了傳統(tǒng)云平臺(tái)微服務(wù)可靠性差的問題,開發(fā)設(shè)計(jì)了基于DevOps的云平臺(tái)微服務(wù)架構(gòu),通過構(gòu)建可靠性模型分析評(píng)估分析,發(fā)現(xiàn)云平臺(tái)的微服務(wù)架構(gòu)具有實(shí)際應(yīng)用的可行性;特別是是容器技術(shù)將發(fā)展為服務(wù)器上重要的虛擬化技術(shù)。相關(guān)開發(fā)者要不斷研究探索,結(jié)合云平臺(tái)微服務(wù)特點(diǎn),切實(shí)研究云平臺(tái)的微服務(wù)架構(gòu)可靠性,在開發(fā)層面,加大先進(jìn)技術(shù)應(yīng)用力度,深入挖掘基于DevOps的云平臺(tái)微服務(wù)架構(gòu)的價(jià)值。