羅歡,陳仁澤,劉明偉,徐律冠
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣州 510000)
在互聯(lián)網(wǎng)與計(jì)算機(jī)逐漸擴(kuò)展應(yīng)用之后,人類就進(jìn)入了信息化的時(shí)代,在信息社會(huì)里,計(jì)算機(jī)系統(tǒng)逐漸進(jìn)入到生活與生產(chǎn)的每一個(gè)角落,大到探索宇宙的飛船,小到生活中的家用電器,都含有計(jì)算機(jī)系統(tǒng)與芯片,特別是隨著近年來出現(xiàn)的云計(jì)算理念,已經(jīng)成為了生活中的普遍資源。其中云平臺(tái)微服務(wù)架構(gòu)更是計(jì)算機(jī)里較為重要的軟件架構(gòu),而在微信息環(huán)境下出現(xiàn)的微服務(wù),其大致模式更是個(gè)性化與差異化的,同時(shí)也可作為一種新興的媒體服務(wù)。微服務(wù)能夠提供隨身、隨地、隨時(shí)的服務(wù),其服務(wù)的方式會(huì)因?yàn)槿说牧鲃?dòng)而改變。但是云平臺(tái)微服務(wù)架構(gòu)也存在一些固有的弊端,因此需要對(duì)其進(jìn)行可靠性研究。
文獻(xiàn)[1]對(duì)微服務(wù)之間的復(fù)雜依賴關(guān)聯(lián)進(jìn)行建模,從而得到含有有向無(wú)環(huán)圖描述的微服務(wù)調(diào)用關(guān)聯(lián)模型,通過該模型對(duì)所有微服務(wù)請(qǐng)求的頻率進(jìn)行估算,同時(shí)根據(jù)排隊(duì)論中的隊(duì)列擬定微服務(wù)的處理流程,從而擬定出一種以微服務(wù)等級(jí)協(xié)議滿足度為評(píng)估指標(biāo)的服務(wù)收益函數(shù),最后使用擁塞博弈模型擬定資源利用關(guān)系,通過對(duì)比資源利用關(guān)系與收益指標(biāo)函數(shù)來完成對(duì)云平臺(tái)微服務(wù)架構(gòu)的可靠性研究。但是該方法只通過收益指標(biāo)來度量架構(gòu)的可靠性,無(wú)法有效地分析出云平臺(tái)微服務(wù)架構(gòu)整體的可靠性。
文獻(xiàn)[2]依據(jù)在失效可恢復(fù)的狀態(tài)中,能夠清晰觀察資源失效規(guī)律的動(dòng)態(tài)轉(zhuǎn)變?cè)?,并融入失效恢?fù)機(jī)制,利用兩參數(shù)將其放置在不同的時(shí)段資源節(jié)點(diǎn)與傳輸鏈路中進(jìn)行描述,再憑借并行任務(wù)之間含有的交互關(guān)系,擬定出資源可靠性評(píng)估模型,最后把該模型融入到粒子群算法中,通過粒子群算法對(duì)該模型樣本進(jìn)行分析,進(jìn)而完成對(duì)云平臺(tái)微服務(wù)架構(gòu)可靠性的研究。但是該方法只是使用樣本模型來進(jìn)行可靠性研究,但是在現(xiàn)實(shí)情況中還會(huì)存在一些其他因素的影響,這就導(dǎo)致該方法在現(xiàn)實(shí)環(huán)境中會(huì)出現(xiàn)研究可靠性不精準(zhǔn)的問題。
上述方法中均存在分析結(jié)果不精準(zhǔn)的問題,對(duì)云平臺(tái)微服務(wù)架構(gòu)可靠性研究造成一些不必要的影響,為此提出一種基于DevOps的云平臺(tái)微服務(wù)架構(gòu)可靠性研究方法,該方法夠準(zhǔn)確、有效分析出云平臺(tái)微服務(wù)架構(gòu)的可靠性。
傳統(tǒng)的Web應(yīng)用在完成開發(fā)后,打包為War包,并放置在Web容器里發(fā)布運(yùn)行。傳統(tǒng)應(yīng)用架構(gòu)的整體結(jié)構(gòu)如圖1所示。
圖1 傳統(tǒng)應(yīng)用架構(gòu)整體結(jié)構(gòu)
傳統(tǒng)應(yīng)用架構(gòu)有多種有點(diǎn),例如能夠在開發(fā)環(huán)境中完成本地測(cè)試、代碼集的完成度較高、有利于團(tuán)隊(duì)的協(xié)同開發(fā)、項(xiàng)目容易打包等。但是傳統(tǒng)應(yīng)用架構(gòu)也存在多種缺點(diǎn),這種傳統(tǒng)應(yīng)用架構(gòu)較為適用于中小型項(xiàng)目,在項(xiàng)目轉(zhuǎn)換較為復(fù)雜時(shí)會(huì)出現(xiàn)難以控制的問題,其主要的表現(xiàn)為:隨著業(yè)務(wù)復(fù)雜化與業(yè)務(wù)難度的提升,項(xiàng)目就會(huì)變得較為笨重,需要修改局部并重新測(cè)試相關(guān)的業(yè)務(wù)數(shù)據(jù),傳統(tǒng)應(yīng)用架構(gòu)的更新變得非常困難,項(xiàng)目整體[3]頻繁發(fā)布,傳統(tǒng)應(yīng)用架構(gòu)的負(fù)載程度有限,難以滿足頻繁發(fā)布的需求。
微服務(wù)架構(gòu)是將一種復(fù)雜系統(tǒng)里較為獨(dú)立的應(yīng)用劃分為不同的服務(wù),所有的服務(wù)都獨(dú)立放置[4],服務(wù)與服務(wù)之間保持相互獨(dú)立的狀態(tài)。所有服務(wù)能夠放置在一種物理服務(wù)器中,也能夠單獨(dú)的分布在不同主機(jī)內(nèi),所有服務(wù)由容器進(jìn)行統(tǒng)一的管理控制,云平臺(tái)微服務(wù)架構(gòu)的結(jié)構(gòu)圖如圖2所示。
圖2 云平臺(tái)微服務(wù)架構(gòu)整體結(jié)構(gòu)
云平臺(tái)微服務(wù)架構(gòu)的優(yōu)點(diǎn)有:?jiǎn)我环?wù)高內(nèi)聚、代碼[5]容易理解、開發(fā)的速度快、服務(wù)之間能夠獨(dú)立放置,單獨(dú)的服務(wù)調(diào)試不會(huì)干擾到整體項(xiàng)目的運(yùn)行、每一種服務(wù)能夠憑借開發(fā)者的需求放置到適合的服務(wù)器中、容錯(cuò)率較高、個(gè)別服務(wù)bug不干擾整體系統(tǒng)等。但是,云平臺(tái)微服務(wù)架構(gòu)也含有不能回避的問題,即服務(wù)管理成本上升、復(fù)雜性增加、需要管理容器里多種不同的服務(wù)實(shí)例。但隨著一些應(yīng)用架構(gòu)的開發(fā),這些問題也得到了較好的解決。
云平臺(tái)微服務(wù)架構(gòu)在具體使用時(shí)包含多種設(shè)計(jì)模式,這些模式中最為常見的模式是代理微服務(wù)[6]設(shè)計(jì)模式與鏈?zhǔn)轿⒎?wù)設(shè)計(jì)模式,這兩種設(shè)計(jì)模式分別如圖3(a)、(b)所示。在代理微服務(wù)設(shè)計(jì)模式中,客戶端并不會(huì)聚合數(shù)據(jù),代理接口憑借業(yè)務(wù)需求差別調(diào)用不同的微服務(wù),同時(shí)把數(shù)據(jù)反饋至客戶端,代理接口在此過程中需要完成請(qǐng)求委派與數(shù)據(jù)轉(zhuǎn)換的工作。在鏈?zhǔn)轿⒎?wù)設(shè)計(jì)模式中,服務(wù)A收到請(qǐng)求后會(huì)和服務(wù)B進(jìn)行通信,相似的,服務(wù)n-1會(huì)和服務(wù)n進(jìn)行通信,在通信流程中傳遞全部的服務(wù)利用同步信息。在整體鏈?zhǔn)秸{(diào)用結(jié)束前,客戶端需長(zhǎng)時(shí)間等待。除了上述兩種經(jīng)典的微服務(wù)設(shè)計(jì)模式外,根據(jù)具體的設(shè)計(jì)要求還會(huì)出現(xiàn)更多的設(shè)計(jì)模式,比如聚合微服務(wù)設(shè)計(jì)模式。
圖3 兩種微服務(wù)設(shè)計(jì)模式
云平臺(tái)微服務(wù)架構(gòu)的可靠性模型,是由網(wǎng)絡(luò)可靠性模型擴(kuò)展得到的,以圖論域[7]幾率論作為研究工具。融合云平臺(tái)微服務(wù)架構(gòu)的特點(diǎn),存在以下三種基本的假設(shè)條件:
第一,節(jié)點(diǎn)與鏈路都含有物理意義,都含有能夠正常運(yùn)作的幾率;
第二,節(jié)點(diǎn)與鏈路只存在兩種情況,即失效與正常;第三,節(jié)點(diǎn)與鏈路之間的幾率統(tǒng)計(jì)都是相互獨(dú)立的。因此,云平臺(tái)微服務(wù)架構(gòu)可以用G=(V,E)表示,V表示云平臺(tái)微服務(wù)架構(gòu)中節(jié)點(diǎn)的集合,E表示云平臺(tái)節(jié)點(diǎn)之間的鏈路集合。
已經(jīng)提出的模型大部分都是憑借圖的連通向量來評(píng)估云平臺(tái)微服務(wù)架構(gòu)的可靠性。憑借連通向量的可靠性模型研究?jī)?nèi)容為圖的連通幾率,分析角度共有三種,分別是:
1)兩終端可靠性:在圖G里,特定源節(jié)點(diǎn)s和任務(wù)節(jié)點(diǎn)t之間最少要含有一條路徑連通的幾率,擬作R1(G)。
2)k終端可靠性:在圖G里,通過k種節(jié)點(diǎn)構(gòu)建頂點(diǎn)子集,其中,隨機(jī)兩種節(jié)點(diǎn)都可以連通的幾率,擬定成Rk(G)。
3)全終端可靠性:在圖G里,每一種節(jié)點(diǎn)之間都連通的幾率,擬定成RA(G)。
典型憑借連通向量的可靠性估算方式有,狀態(tài)枚舉法、不交織和法、容斥原理法與因子分解法,四種方法的原理如下。
1)狀態(tài)枚舉法
擬定出云平臺(tái)微服務(wù)架構(gòu)可靠的全部狀態(tài),獲得的可靠度是:
2)容斥原理法
容斥原理法通過組合數(shù)字中的容斥原理[8]公式估算可靠度,其中最為典型的就是小路集法。一種路集對(duì)應(yīng)云平臺(tái)網(wǎng)絡(luò)的一種正常狀態(tài),如果網(wǎng)絡(luò)G中含有m種最小路集,Ai代表第i種最小路集,那么最少含有一種最小路集就能夠確保網(wǎng)絡(luò)處于正常情況。擬定網(wǎng)絡(luò)正常事件是S,則可靠度的計(jì)算公式為:
3)不交織和法
不交織和法是容斥原理的一種改進(jìn),通過不交織公式,計(jì)算云平臺(tái)微服務(wù)架構(gòu)中所有最小路集[9]的和,計(jì)算表達(dá)式為:
4)因子分解法
針對(duì)規(guī)模較大的云平臺(tái)微服務(wù),因式分解法通過式(4)將其劃分為若干種簡(jiǎn)單網(wǎng)絡(luò)[10],一直持續(xù)至不能夠在劃分為止。
在圖G中,G*e為圖G將邊e縮小后獲得的新圖,G-e代表圖G剔除邊e獲得的新圖,Pe代表邊正常工作的幾率。
因?yàn)樵破脚_(tái)微服務(wù)架構(gòu)的使用范圍、資源有限,為了將感知區(qū)域至少被k種不同節(jié)點(diǎn)同時(shí)覆蓋,需要放置大量的節(jié)點(diǎn),進(jìn)而確保信息可以被可靠的傳輸至Sink節(jié)點(diǎn)。和傳統(tǒng)的應(yīng)用架構(gòu)可靠模型相比,云平臺(tái)微服務(wù)架構(gòu)可靠模型不僅考慮節(jié)點(diǎn)之間的連通性,還要考慮網(wǎng)絡(luò)的覆蓋性。
為了能夠準(zhǔn)確分析云平臺(tái)微服務(wù)架構(gòu)的可靠性,通過云平臺(tái)微服務(wù)傳輸?shù)臄?shù)據(jù)安全性進(jìn)行評(píng)估。首先挑選一種合適的評(píng)估指標(biāo),計(jì)算每一種敏感數(shù)據(jù)輸送路徑輸入和輸出傳送端緩沖區(qū)的數(shù)據(jù)計(jì)算效率,快速的感知每一種數(shù)據(jù)輸送路徑當(dāng)前的輸送狀況,并且測(cè)評(píng)每一種數(shù)據(jù)輸送路徑的數(shù)據(jù)處理能力,根據(jù)不同輸送路徑對(duì)數(shù)據(jù)的處理能力進(jìn)行敏感數(shù)據(jù)流量動(dòng)態(tài)匹配,從而安全的傳輸數(shù)據(jù)。
依據(jù)路徑當(dāng)前的數(shù)據(jù)輸送能力,為每一種敏感數(shù)據(jù)輸送路徑匹配各不相同的緩沖區(qū)空間尺寸,利用以下方程估算數(shù)據(jù)輸送路徑的質(zhì)量:
式中:
Tfi—敏感數(shù)據(jù)中路徑i的輸送端緩沖區(qū)時(shí)間;
ilT—敏感數(shù)據(jù)內(nèi)最后一種數(shù)據(jù)離開路徑i的傳送段緩沖區(qū)時(shí)間;
Mi—路徑i的輸送端緩沖區(qū)尺寸;
Qi—路徑i輸送端緩沖區(qū)的數(shù)據(jù)處理速度。
采集一種不存在敏感數(shù)據(jù)包損失[11]的時(shí)間間隔作為原始樣本,并與歷史區(qū)間樣本進(jìn)行組合,能夠估算出敏感數(shù)據(jù)傳輸所有路徑的置信區(qū)間,代表一條輸送路徑的時(shí)間間隔樣本,利用以下公式估算敏感數(shù)據(jù)輸送時(shí)間間隔樣本的均衡值:
式中:
ix—時(shí)間樣本里沒有發(fā)現(xiàn)確實(shí)敏感數(shù)據(jù)包的成功輸送區(qū)間;
N—樣本的總量;
XN—平均時(shí)間間隔的均衡值。為了能夠剔除敏感數(shù)據(jù)輸送端儲(chǔ)存的收集樣本[12],依靠下列方程估算敏感數(shù)據(jù)輸送路徑的時(shí)間迭代均衡值。
其中:
SN—表所有樣本的指標(biāo)差。
可以利用迭代法估算標(biāo)準(zhǔn)差,進(jìn)而刪除敏感數(shù)據(jù)在輸送端存儲(chǔ)的樣本:
通過式(7)與式(9)內(nèi)獲得的均衡值與標(biāo)準(zhǔn)差后,融合估算敏感數(shù)據(jù)成功輸送的變異系數(shù)Z1?a/2,完成中心極限定理估算出置信范圍:
式中:
1?a—置信標(biāo)準(zhǔn);
u—置信區(qū)間;
S、X—每一種樣本的均衡值和指標(biāo)差。
進(jìn)而得到置信范圍,并將其作為進(jìn)一步測(cè)評(píng)的根據(jù),更新敏感數(shù)據(jù)預(yù)測(cè)趨勢(shì)并提高輸送路徑質(zhì)量。
上述評(píng)估是通過簡(jiǎn)易的計(jì)算數(shù)值來進(jìn)行平臺(tái)可靠性評(píng)估,但在現(xiàn)實(shí)環(huán)境中還會(huì)出現(xiàn)一些其他的影響因素,為此進(jìn)行仿真實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為Intel(R) Core (TM)i5-3470 CPU,3.20 GHz,8 GB內(nèi) 存 的PC化,通 過MATLAB7.6編程實(shí)現(xiàn),LIBSVM為支持向量機(jī)軟件。
當(dāng)云平臺(tái)微服務(wù)架構(gòu)處于運(yùn)行狀態(tài)時(shí),因?yàn)楦鞣N優(yōu)先級(jí)數(shù)據(jù)傳輸占用總線時(shí)間與所研究數(shù)據(jù)占用總線時(shí)間的影響,任何數(shù)據(jù)的時(shí)間參數(shù)均是一種隨機(jī)的變量向量。擬定云平臺(tái)微服務(wù)架構(gòu)里某三種實(shí)時(shí)數(shù)據(jù)的每種時(shí)間參數(shù),如表1所示。
表1 數(shù)據(jù)傳輸時(shí)間參數(shù)
為了方便對(duì)比驗(yàn)證可靠度的估算結(jié)果,通過Matlab編制程序進(jìn)行10次Monte-Carlo模擬,獲得數(shù)據(jù)(a)的傳輸可靠度R=0.888 8。
如圖4(a)里時(shí)間余量零線以上的*代表傳輸失敗的微服務(wù)數(shù)據(jù),時(shí)間余量零線以下的·代表傳輸成功的微服務(wù)數(shù)據(jù)。進(jìn)過Monte-Cralo模擬對(duì)比,能夠發(fā)現(xiàn)估算結(jié)果和Monte-Cralo實(shí)驗(yàn)結(jié)果完全吻合。
同理憑借式(7)與式(8)能夠進(jìn)一步的獲得數(shù)據(jù)(b)的云平臺(tái)微服務(wù)可靠度R=0.888 2,同理使用Matlab擬定的程序進(jìn)行Monte-Cralo實(shí)驗(yàn)?zāi)M,獲得的可靠度R=0.888 3,比對(duì)發(fā)現(xiàn)他們之間的誤差很小。
數(shù)據(jù)(c)傳輸?shù)目煽慷韧ㄟ^估算查表獲得R=0.885 1,通過Monte-Cralo模擬實(shí)驗(yàn),獲得可靠度R=0.884 6,結(jié)果完全吻合。
通過圖4三組云平臺(tái)微服務(wù)數(shù)據(jù)傳輸可靠度估算和實(shí)驗(yàn)?zāi)M結(jié)果可以看出,通過式(7)與式(8)估算得到的云平臺(tái)微服務(wù)數(shù)架構(gòu)可靠度,與使用Matlab編程進(jìn)行實(shí)驗(yàn)?zāi)M獲得的可靠度結(jié)果非常吻合,相對(duì)的誤差較小,表明本文推導(dǎo)估算結(jié)果的正確性。經(jīng)過對(duì)比上述三組實(shí)驗(yàn)可靠度可以得出,數(shù)據(jù)Ⅲ的可靠度相對(duì)較低,而數(shù)據(jù)Ⅰ、Ⅱ的可靠度較高。這就要求在以后的研究中,要重點(diǎn)研究數(shù)據(jù)Ⅲ的可靠度成功率,經(jīng)過分析擬定提升云平臺(tái)微服務(wù)架構(gòu)的可靠度。以上實(shí)驗(yàn)考慮了云平臺(tái)微服務(wù)架構(gòu)中三種實(shí)時(shí)性數(shù)據(jù),而現(xiàn)實(shí)的云平臺(tái)微服務(wù)架構(gòu)中需要傳輸?shù)臄?shù)據(jù)種類非常多,同樣能夠使用該方法對(duì)平臺(tái)中所有數(shù)據(jù)的可靠度進(jìn)行依次估算,從而獲得整體的云平臺(tái)微服務(wù)可靠度。
針對(duì)傳統(tǒng)云平臺(tái)微服務(wù)可靠性差的問題,提出一種基于DevOps的云平臺(tái)微服務(wù)架構(gòu)可靠性研究方法,對(duì)傳統(tǒng)的應(yīng)用架構(gòu)和微服務(wù)架構(gòu)進(jìn)行對(duì)比分析,構(gòu)建可靠性評(píng)估模型,利用圖論域幾率論分析云平臺(tái)微服務(wù)架構(gòu)的特點(diǎn),實(shí)現(xiàn)云平臺(tái)微服務(wù)架構(gòu)可靠性的研究。為了能夠進(jìn)一步評(píng)價(jià)云平臺(tái)微服務(wù)架構(gòu)的可靠性,設(shè)計(jì)對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,所提方法能夠有效的分析出云平臺(tái)微服務(wù)架構(gòu)的可靠性,具有較高的實(shí)際應(yīng)用價(jià)值。
圖4 云平臺(tái)微服務(wù)可靠度Monte-Cralo實(shí)驗(yàn)?zāi)M