本發(fā)明涉及邊緣計算環(huán)境中的微服務部署,具體地說,是一種面向邊緣計算環(huán)境設計的一種基于transformer的深度強化學習t-drl的微服務實例冗余備份部署方法。
背景技術:
1、近年來,云計算廣泛用于大數(shù)據(jù)處理,用戶僅需要將數(shù)據(jù)上傳至云端,利用云計算中心的超高效計算平臺,便可以集中處理計算請求。然而越來越多的終端通過網(wǎng)絡連接起來,如果將所有數(shù)據(jù)都上傳至云計算平臺進行處理,云計算平臺將面臨網(wǎng)絡時延高、擁塞、可靠性降低等問題。隨著自動駕駛和無人機巡檢等新興移動業(yè)務的迅速崛起,超低時延和超高可靠性逐漸成為這些業(yè)務場景中不可或缺的關鍵技術要求。
2、為了解決云計算無法滿足時延敏感業(yè)務的實時性需求,移動邊緣計算(mec)應運而生,作為一種在接入網(wǎng)中部署計算資源,將云數(shù)據(jù)中心的計算能力遷移至靠近用戶終端的邊緣節(jié)點的分布式計算架構,已成為應對現(xiàn)代網(wǎng)絡中海量數(shù)據(jù)處理需求的重要手段。mec通過在靠近用戶的邊緣節(jié)點進行數(shù)據(jù)處理和服務提供,大幅度減少了對核心網(wǎng)資源的占用,降低了數(shù)據(jù)傳輸時延,提升了系統(tǒng)的可靠性和用戶體驗,從而在時延和可靠性要求較高的應用場景中表現(xiàn)出明顯的優(yōu)勢。
3、與此同時,隨著網(wǎng)絡技術的不斷發(fā)展,互聯(lián)網(wǎng)應用和網(wǎng)絡規(guī)模呈現(xiàn)爆發(fā)式增長,傳統(tǒng)專用硬件提供用戶請求服務需要大量的專用設備,微服務架構逐漸代替單體應用架構。在傳統(tǒng)網(wǎng)絡架構中,大部分網(wǎng)絡功能都依賴于專用硬件設備,所有的功能模塊都集成在一個應用,將整個應用作為一個單一的部署單元進行部署。因此,為了保障服務可靠性,通常需要大量且昂貴的高性能專用設備。在虛擬化技術的驅(qū)動下,微服務架構大量運用,將每個單體應用分離為多個獨立的微服務,受益于松耦合架構,微服務可以靈活且彈性地部署到商用服務器上,即使某個微服務出現(xiàn)故障,其他微服務仍可以正常運行,提高了服務可靠性,降低了專用設備帶來的昂貴成本。
4、雖然微服務架構相比單體應用架構更可靠,但是微服務部署在服務器上會給用戶的服務質(zhì)量(時延,帶寬資源消耗等)帶來影響。特別在邊緣計算環(huán)境中,資源稀缺以及邊緣服務器高度分布,不合理的微服務實例部署不僅會浪費資源,甚至還無法達到服務等級協(xié)議(sla)的要求。在云計算環(huán)境中,現(xiàn)有的可靠性增強技術部署方案并未考慮時延對可靠性的影響且資源消耗大,在資源有限的邊緣計算環(huán)境中并不適用。
5、當前,檢查點技術和冗余備份技術是提高服務可靠性的常用技術。檢查點技術通過定期保存系統(tǒng)狀態(tài)作為鏡像,當出現(xiàn)故障時,可以回滾到之前的狀態(tài),減少恢復時間。但在邊緣計算環(huán)境中,檢查點技術來提高服務可靠性的方法效率很低。由于邊緣計算是去中心化的,邊緣節(jié)點是獨立運行的,微服務之間復雜的調(diào)用關系和級聯(lián)回滾的存在導致協(xié)調(diào)檢查點的同步開銷變得非常大,恢復時間長。而且,邊緣節(jié)點難維護,故障率高,很難同時滿足極致業(yè)務超低時延和超高可靠性的業(yè)務需求。
6、冗余備份技術確保主實例出現(xiàn)故障時,流量可以重定向至備份實例,備份實例能夠接管并繼續(xù)提供服務,在保障服務可靠性的同時有助于實現(xiàn)更小的延遲。因此,冗余備份技術更適合在邊緣計算環(huán)境下同時滿足極致業(yè)務超低時延和超高可靠性需求。通過容器編排工具(如kubernetes)可以自動化微服務的部署、管理、拓展和故障轉(zhuǎn)移,然而,現(xiàn)在的挑戰(zhàn)是如何確定每個微服務部署實例的個數(shù)以及部署位置,以此在保證業(yè)務時延和可靠性需求的條件下,減少資源消耗。
7、在云計算環(huán)境中,基于云計算中心擁有豐富的資源有許多冗余備份部署方法,但在邊緣計算環(huán)境中,邊緣資源是稀缺的,不能進行大量的微服務實例冗余備份部署。并且由于地理位置和商業(yè)利益的關系,不同邊緣云之間的信息是不共享的,微服務實例部署位置也是受限的。因此云計算中心的微服務實例冗余備份方法不能直接用于邊緣計算環(huán)境中。
8、針對邊緣計算環(huán)境中的微服務實例冗余備份部署問題,現(xiàn)有技術大多數(shù)通過啟發(fā)式和drl(deep?reinforcement?learning)方法去解決,但隨著業(yè)務場景的不斷復雜化和業(yè)務需求的多樣化,現(xiàn)有技術仍存在以下不足:
9、1、啟發(fā)式方法缺乏反饋和調(diào)整機制,會做出一次性決策,這種靜態(tài)開環(huán)的微服務實例部署方式無法應對動態(tài)到達的業(yè)務請求和動態(tài)變化的邊緣計算環(huán)境。
10、2、現(xiàn)有drl方法可以實現(xiàn)微服務實例從靜態(tài)開環(huán)部署向動態(tài)閉環(huán)部署的轉(zhuǎn)變,但是尚未考慮時延對微服務實例冗余備份的影響,時延與可靠性是強耦合的關系,并不是兩個分開的約束條件。對于動態(tài)變化的邊緣計算環(huán)境,還需考慮邊緣計算平臺中由工作負載變化導致的邊緣節(jié)點的可靠性波動。
11、3、在微服務實例冗余備份部署的過程中,服務提供商通常有著不同的目標,例如在保障服務的可靠性時,需要降低微服務實例部署的資源消耗,但是由于邊緣節(jié)點工作負載導致的可靠性波動,通常會將微服務實例放置在工作負載較小甚至空閑的邊緣節(jié)點上,以此減少冗余備份微服務實例個數(shù),降低資源消耗。雖然降低了微服務實例部署資源消耗,但是增加了運行的邊緣節(jié)點個數(shù),而邊緣節(jié)點是主要的能源消耗者,因此服務提供商也需要盡可能減少運行的邊緣節(jié)點個數(shù)。這一類問題尚未得到很好的解決。
技術實現(xiàn)思路
1、本發(fā)明的目的在于提供一種面向邊緣計算環(huán)境的微服務實例冗余備份部署方法。
2、實現(xiàn)本發(fā)明目的的技術解決方案為:一種面向邊緣計算環(huán)境的微服務實例冗余備份部署方法,包括以下步驟:
3、步驟1,用戶發(fā)出業(yè)務請求,接入到相應的邊緣云,與邊緣云服務提供商簽訂服務水平協(xié)議sla;
4、步驟2,邊緣云服務提供商獲取邊緣計算網(wǎng)絡拓撲信息,將其抽象為網(wǎng)絡無向圖;
5、步驟3,結(jié)合業(yè)務信息和邊緣計算網(wǎng)絡拓撲信息,建立考慮多個業(yè)務部署約束條件的多目標優(yōu)化數(shù)學模型;
6、步驟4,邊緣云服務提供商根據(jù)業(yè)務信息、邊緣計算網(wǎng)絡拓撲信息和多目標優(yōu)化數(shù)學模型來進行業(yè)務的冗余備份部署以滿足服務水平協(xié)議sla;其中采用基于transformer的深度強化學習t-drl來獲取微服務實例的冗余備份部署以及主實例的選擇;
7、步驟5,遍歷冗余備份部署以及主實例的選擇結(jié)果,檢查是否滿足服務水平協(xié)議sla,如果不滿足,執(zhí)行步驟6,如果滿足,則執(zhí)行步驟7;
8、步驟6,對于不滿足服務水平協(xié)議sla的業(yè)務,找出其不滿足時延的路徑,采用模擬退火的方法對路徑上微服務實例的切換優(yōu)先級進行降級,直到滿足服務水平協(xié)議sla;
9、步驟7,在滿足服務水平協(xié)議的條件下,采用剪枝算法,按照微服務實例去除的優(yōu)先級進行去除微服務實例,直到?jīng)]有微服務實例可以去除為止。
10、進一步地,所述步驟1中,業(yè)務由微服務線性組成,業(yè)務的第個微服務由元祖定義,其中代表微服務所屬的業(yè)務,分別表示所屬業(yè)務的可靠性需求、時延需求和業(yè)務包含微服務的個數(shù),是微服務的軟件可靠性,和分別是微服務所需的計算資源和帶寬資源。
11、進一步地,所述步驟2中,通過網(wǎng)絡建模的方法將邊緣計算環(huán)境建模為無向圖,表示n個邊緣節(jié)點組成的集合,是邊緣環(huán)境中鏈路集合,其中表示邊緣節(jié)點與之間的鏈路;邊緣節(jié)點由三元組組成,其中,,分別代表邊緣節(jié)點的硬件可靠性、所含的計算資源和單位計算資源成本;鏈路由三元組組成,其中,,分別代表鏈路的傳輸時延、所含的帶寬資源和單位帶寬資源成本。
12、進一步地,所述步驟3建立考慮多個業(yè)務部署約束條件的多目標優(yōu)化模型,包括最小化業(yè)務的部署成本,同時最小化活動的邊緣節(jié)點個數(shù),具體的目標函數(shù)如下:
13、3.1?目標函數(shù)1為最小化業(yè)務的部署成本
14、業(yè)務由微服務組成,微服務的部署成本之和即為業(yè)務部署成本,業(yè)務的部署成本為:
15、
16、式中,是0-1變量,表示微服務是否放置在邊緣節(jié)點上,是0-1變量,表示微服務的主實例是否通過鏈路;
17、目標函數(shù)1為:
18、
19、式中,代表所有業(yè)務集合;
20、3.2?目標函數(shù)2為最小化活動的邊緣節(jié)點個數(shù)
21、目標函數(shù)2為:
22、
23、式中,是0-1變量,如果為1,表示有微服務實例部署在邊緣節(jié)點上,為0則沒有。
24、進一步地,步驟3.1中業(yè)務部署成本需要進行歸一化,表示為:
25、業(yè)務部署成本的歸一化定義為:
26、
27、式中,表示業(yè)務的個數(shù),表示業(yè)務中部署成本最大的值;
28、步驟3.2中活動的邊緣節(jié)點個數(shù)需要進行歸一化,具體表示為:
29、活動的邊緣節(jié)點個數(shù)的歸一化定義為:
30、
31、式中,表示邊緣環(huán)境中邊緣節(jié)點的個數(shù)。
32、進一步地,所述步驟3.1和3.2需要考慮多個業(yè)務的約束條件實現(xiàn)多目標業(yè)務部署優(yōu)化模型,其約束條件如下:
33、1):業(yè)務的完整性
34、
35、式中,是業(yè)務的微服務集合,此約束保證每個業(yè)務的微服務至少都有一個微服務實例,保證業(yè)務可以運行;
36、2):主實例的限制
37、
38、式中,是0-1變量,表示業(yè)務的第個微服務是否將主實例放置在邊緣節(jié)點,業(yè)務主實例組成的主路徑負責流量的轉(zhuǎn)發(fā)與提供服務;當主實例出現(xiàn)故障時,會按照微服務實例切換優(yōu)先級切換到備份實例上,此約束保證每個微服務都有一個主實例,確保主路徑可以提供服務;
39、3):業(yè)務可靠性保證
40、業(yè)務第k條路徑的傳播時延計算如下:
41、
42、式中,為業(yè)務的所有微服務實例形成的路徑組合;
43、然后,找出不滿足時延需求的路徑,計算其對業(yè)務可靠性的增量,從而獲得實際的業(yè)務可靠性;
44、
45、式中,是不考慮時延條件下的業(yè)務可靠性,是不滿足時延需求的路徑集合,是路徑對業(yè)務可靠性增量。
46、實際的業(yè)務可靠性需要滿足業(yè)務的可靠性需求:
47、
48、4):容量的限制
49、①
50、②
51、約束條件①保證部署在邊緣節(jié)點上的微服務實例所需計算資源之和不超過其所含的計算資源,約束條件②保證鏈路上微服務實例所占的帶寬資源之和不超過鏈路帶寬資源。
52、進一步地,所述步驟4采用基于transformer的深度強化學習t-drl來獲取微服務實例的冗余備份部署以及主實例的選擇,具體為:
53、4.1?編碼器使用線性層將邊緣計算環(huán)境信息和業(yè)務信息分別嵌入到高維空間中,獲得初始嵌入信息,具體為:
54、
55、
56、
57、其中,表示第0層邊緣節(jié)點的嵌入,表示第0層鏈路的嵌入,表示第0層的微服務的嵌入,和是線性變化的參數(shù),[...,...]操作是將相同維度的信息連接到一起。
58、4.2?將獲得的初始嵌入信息,,輸入編碼器,經(jīng)過l個相同的層進行處理獲得最終嵌入信息,,,其中每個層包括多頭注意力層、殘差連接層、歸一化層和前饋網(wǎng)絡層;邊緣計算環(huán)境的邊緣節(jié)點信息為
59、,鏈路信息為,業(yè)務信息為;最后通過線性層將所有嵌入信息連接起來獲得全局信息;
60、。
61、4.3?在不考慮時延的情況下,確定業(yè)務k容錯部署的k值,業(yè)務的k值計算如下
62、
63、
64、式中,代表組成業(yè)務的微服務的最小軟件可靠性,代表邊緣環(huán)境中邊緣節(jié)點的最小硬件可靠性。
65、4.4解碼過程是將冗余備份部署問題建模成一個馬爾科夫決策過程,每個微服務被看成一個智能體,邊緣環(huán)境和業(yè)務信息作為狀態(tài)集合,動作集合為每個微服務選擇邊緣節(jié)點部署微服務實例。
66、解碼器利用來自編碼器上下文信息,智能體作為查詢向量,邊緣節(jié)點作為鍵向量和值向量,結(jié)合掩碼規(guī)則,生成每個微服務的實例部署在邊緣節(jié)點的概率向量;智能體在每個時間步根據(jù)drl模型的策略選擇下一個邊緣節(jié)點部署微服務實例,直到完成微服務的k容錯冗余備份部署。
67、4.5當微服務完成了k容錯部署,解碼器利用編碼器上下文信息和k容錯部署的情況,智能體作為查詢向量,邊緣節(jié)點作為鍵向量和值向量,結(jié)合掩碼規(guī)則,生成每個微服務的實例作為主實例的概率向量,智能體在每個時間步根據(jù)drl模型的策略選擇主實例,構建每個業(yè)務的主路徑。
68、4.6使用策略梯度法訓練神經(jīng)網(wǎng)絡參數(shù),用于更新drl模型的策略,優(yōu)化策略網(wǎng)絡,最大化預期累計獎勵;其中策略梯度法含有兩個網(wǎng)絡:策略網(wǎng)絡和基線網(wǎng)絡;策略網(wǎng)絡從概率向量中采用sampling的方法選擇動作,基線網(wǎng)絡從概率向量中采用貪婪策略選擇動作;通過計算下式損失函數(shù)的梯度來對神經(jīng)網(wǎng)絡參數(shù)進行優(yōu)化
69、
70、式中,b為批量大小,為策略網(wǎng)絡下的獎勵,為基線網(wǎng)絡下的獎勵。
71、進一步地,所述步驟4.6在每批訓練中,對兩個網(wǎng)絡進行配對t檢驗,如果在95%置信水平下顯著,則使用策略網(wǎng)絡的參數(shù)代替基線網(wǎng)絡的參數(shù)。
72、進一步地,步驟5中所述遍歷冗余備份部署以及主實例的選擇結(jié)果,檢查是否滿足服務水平協(xié)議sla,具體為:
73、首先對每個微服務計算其微服務實例的可靠性,微服務的實例部署在邊緣節(jié)點的可靠性計算如下:
74、
75、是0-1變量,代表邊緣節(jié)點的硬件可靠性,對每個微服務,根據(jù)微服務實例的可靠性,得到微服務實例切換優(yōu)先級;
76、然后,針對每個業(yè)務,找出不滿足業(yè)務時延需求的路徑,計算其對業(yè)務可靠性的增量,路徑對業(yè)務可靠性的增量如下:
77、
78、式中,代表路徑的可靠性,和分別代表路徑和主路徑的業(yè)務的第個微服務所放置的邊緣節(jié)點,代表微服務放置的邊緣節(jié)點集合;
79、最后,將業(yè)務可靠性減去不滿足時延需求路徑的可靠性增量,得到實際的業(yè)務可靠性,檢查其是否滿足服務水平協(xié)議sla。
80、進一步地,步驟7所述剪枝算法如下:
81、在滿足服務水平協(xié)議sla的條件下,需要根據(jù)微服務實例的剪枝優(yōu)先級來去除不必要的微服務實例,微服務實例的剪枝優(yōu)先級如下:
82、
83、式中,為目標函數(shù)1的權重,為目標函數(shù)2的權重,為邊緣節(jié)點的單位計算資源成本。
84、本發(fā)明與現(xiàn)有技術相比,其顯著優(yōu)點:(1)針對不同動態(tài)到達的混合業(yè)務請求,在資源稀缺的邊緣計算環(huán)境中采取冗余備份技術來增強服務可靠性,基于transformer的深度強化學習t-drl求解方法實現(xiàn)了微服務實例冗余備份部署從靜態(tài)開環(huán)向動態(tài)閉環(huán)的轉(zhuǎn)變且考慮了冗余備份過程中時延的影響和邊緣節(jié)點的可靠性波動。(2)在滿足業(yè)務可靠性和時延需求的條件下,采用模擬退火的方法對微服務實例的切換優(yōu)先級降級,增加業(yè)務接受率;采用剪枝算法,減少了冗余備份資源消耗。對比其他方法在業(yè)務接受率,微服務實例冗余備份個數(shù),運行邊緣節(jié)點個數(shù)以及算法收斂性上都體現(xiàn)出明顯的優(yōu)勢。