彭開來/PENG Kailai,王旭/WANG Xu,唐琴琴/TANG Qinqin
(1. 網絡通信與安全紫金山實驗室,中國 南京 211111;2. 北京郵電大學網絡與交換技術全國重點實驗室,中國 北京 100876 )
5G、物聯網等新型網絡技術的發展帶來了數字經濟的高速發展和數字應用場景的爆發式增加,隨之而來的是數據的海量增長與算力的高度需求。根據華為發布的《計算2030》預測,2030 年人類將進入堯字節(YB)數據時代,通用算力將是現有算力的10 倍。在全球數字經濟時代大背景下,算力相關技術及產業正成為國家推動經濟發展的強大動力。2021 年5 月,國家發展改革委、中央網信辦、工業和信息化部、國家能源局聯合印發了《全國一體化大數據中心協同創新體系算力樞紐實施方案》,實施推進“東數西算”工程,進一步推進中國數字經濟的發展。這對于搶占數字產業鏈制高點,推動建設數字強國有著極其重要的戰略意義[1]。在此背景下,本文對算力網絡的資源協同調度展開研究。
物聯網時代下,網絡中數據量呈爆發式增長,傳統的云計算模式在處理海量的數據和應對實時業務需求方面存在不少弊端。在云計算模式下,所有數據需要上傳到云計算中心進行處理,現有的云計算平臺的計算能力難以滿足日益增長的數據需求。同時,這種計算模式對終端的需求有一定的響應時間,難以滿足如無人駕駛等新型業務場景下實時性較強的業務需求[2]。因此,僅靠單一云端算力難以滿足所有業務需求。在此背景下,邊緣計算應運而生。邊緣計算通過引入邊緣側算力,使得網絡中的部分數據無須上傳至云計算中心,在網絡邊緣側就能完成數據的分析與計算。這不僅可以高效快速地反饋需求,還分擔了云計算中心的部分數據請求任務[3]。此外,隨著無線接入側能力的大幅提升,大量的終端設備逐漸接入網絡中,提供了大量的端側算力。因此,目前算力資源不再集中分布在云數據中心,而是廣泛分布在大量的邊緣節點及海量的終端設備上。算力資源正由集中式云計算轉向云邊端泛在分布,算力架構逐漸演變為云、邊、端三級架構形式[4]。
在這種演進的趨勢下,算力資源的協同是關鍵。這種情況下算力網絡應運而生。算力網絡能夠根據業務需求,在云、網、邊、端之間按需調度計算資源、存儲資源、網絡資源(包括但不限于節點的計算、網絡和存儲等),旨在實現分布式計算節點的互聯互通和統籌調度,通過對網絡架構和協議的改進,進而實現網絡和計算資源的優化和高效利用[5]。通過無處不在的網絡連接,算力網絡整合多級算力、存儲等,將地理位置較為分散的算力資源連接起來,統籌分配和調度計算任務,針對不同的業務需求,為行業提供最佳的資源分配方案,進而實現整網資源的按需最優分配使用。
算力網絡融合了多區域、多層級的算力資源。面向用戶差異化需求,如何實現全域大范圍多層次算力資源的彈性靈活調度,是算力網絡亟需解決的難點[6]。針對這一挑戰,本文設計了一個算力網絡資源協同調度平臺,對算力資源的協同調度開展了一些探索和實踐研究。
算力網絡資源協同調度平臺的總體技術架構如圖1 所示。該架構分為算力網絡資源調度系統和算力網絡動態擴縮容系統兩個子系統。其中,算力網絡資源調度系統由初始化模塊、應用需求匹配模塊、歷史策略匹配模塊、資源調度策略部署模塊組成,支持算網資源的統一調度:基于各種業務場景的關鍵需求指標(如網絡成本、能耗、帶寬等),依據云平臺所納管的云資源和網絡資源情況,形成滿足應用需求的多公有云與私有云之間的算力資源調度策略和算網資源協同調度策略,實現相應資源的自動化最優分配。算力網絡動態擴縮容系統由監控采集模塊、指標預測模塊、擴縮規劃模塊組成,實現對資源自動發現及自動納管,并基于新的資源池情況實現分配策略的自動調整和用戶無感業務擴縮容。

▲圖1 算網一體化調度平臺技術架構
算力網絡資源調度系統的核心是資源調度策略。系統根據不同的優化指標提供4種算力資源調度策略:成本感知調度策略、負載感知調度策略、能效感知調度策略以及服務層協議(SLA)感知調度策略。
1)成本感知調度策略。不同云商針對計算資源、網絡資源、內存資源等算力資源進行不同的定價。不同的業務場景在計算、網絡、內存、存儲等方面存在相應的算力需求。根據部署方式以及部署節點的不同,部署成本存在著很大的區別。成本感知調度策略以最優部署成本為優化目標,能夠完成網絡資源定價,借助算網資源池成本定價模式,設計綜合成本評估算網資源調度算法。
2)負載感知調度策略。負載感知調度策略以負載最優為優化目標,通過對算網資源池負載定義和計算方法進行研究,設計綜合負載評估算網資源調度算法。
3)能效感知調度策略。能效感知調度策略以實現業務所需能量代價最小為優化目標,通過對各云商算網力資源池能效進行調研,對算網資源調度方案能效計算模型進行研究,設計綜合能效評估算網資源調度算法。調度引擎依照能效感知調度策略將部署的容器集調度到物理機上運行,使容器可以與程序所需資源一起配置,在滿足資源需求的前提下,盡量降低數據中心能耗。
4)SLA 感知調度策略。SLA[7]是指提供服務的企業與客戶之間就服務的品質、水準等方面所達成的雙方共同認可的協議或契約,是解決Web 服務中這些問題的基石。SLA 有助于在網絡服務之間劃分責任和風險,從而使網絡服務更加有序。SLA 感知調度策略能夠對算網資源調度方案的網絡SLA的關鍵特征指標進行研究,感知并學習相關SLA計算模型,進而設計出綜合網絡SLA評估算網資源調度算法。
算力網絡資源調度系統根據算力和網絡的抽象資源指標特征,對本文提出的負載、成本、能效、SLA 4種調度策略進行模塊化組合使用,實現多目標優化。為了實現滿足大量差異化需求業務的調度策略,多目標優化的算力網絡資源調度系統提出了應用需求匹配算法和歷史策略匹配算法。系統能夠在請求到來時選擇最優的資源調度策略,滿足不同業務的應用需求,充分利用集群資源。圖2為算力網絡資源調度系統的架構圖。該系統分為微服務部署和用戶請求調度兩個部分。微服務是小規模、松散耦合的云應用程序,是系統部署和請求調度的獨立單元。云計算業務承載于微服務中[8]。

▲圖2 多目標優化算力資源調度系統架構圖
在用戶使用算力網絡資源調度系統部署微服務時,調度系統首先將用戶選擇的應用類型標簽與一段時間內已部署過并具有相同標簽的微服務進行匹配,之后將篩選與待部署微服務的算網需求相似的一個時間最近的微服務,并查詢此微服務在部署時使用的部署策略。資源調度系統將為待部署微服務調用與此微服務相同的部署算法。
在進行初始化部署時,多目標優化資源調度系統主要使用業務應用標簽匹配的方法。用戶在上傳應用時需要選擇應用標簽。標簽包括應用的類型和使用的開發技術。在本系統中,將根據應用類型標簽進行相似應用的匹配并決定部署算法調用的具體策略。系統可以按需靈活設置應用標簽種類。設置的標簽有電商大數據應用、交通大數據應用、AI 工地上崗應用等。
初始化完成后,應用需求匹配模塊將待部署的應用記為S0,并將選取的應用類型標簽記為L,以檢測該應用和其他應用的相似性,實現應用的匹配。具體做法是:對于待部署的應用S0,選取一段時間內(例如1d)已部署過且具有相同標簽L的應用,并按時間由近到遠的順序將其記為集合S={S1,S2,…,Sn},若S為空,則直接采取隨機策略進行部署;若S非空,則進行資源需求的匹配,以進一步實現部署策略的匹配。
集合S中的應用依次與S0進行算力資源需求和網絡資源需求的相似度分析。該過程僅選取關鍵算力指標和網絡指標進行匹配,而不必使用全部指標。
算力資源需求相似度α的計算公式為:
其中,第4項顯存容量的比較僅針對AI類業務。
實際上,上述公式中的具體指標可以根據應用類型的實際情況進行設計。比如,如果S0或S中參與對比的應用沒有對其中某項指標提出需求,則不進行該項指標的比較,也不計入總公式。另外,算力需求相似度計算指標可以根據具體需求擴展增加。在公式(1)—(4)中,若任何有效的αi值均在0.85~1.15 內,則判斷S0與Si算力資源需求相似。
與算力資源需求相似度α類似,網絡資源需求相似度β的計算公式為:
其中,如果S0或S中參與對比的應用沒有對其中某項指標提出需求,則不進行該項的比較,也不計入總公式。另外,網絡相似度計算指標可以根據應用類型的實際情況進行不同的選取和設計。在本公式中,若任何有效的βi值均在0.85~1.15內,則判斷S0與Si網絡資源需求相似。當S0與Si的算力資源需求和網絡資源需求都相似時,系統則認定S0與Si為相似業務。此時,對S中其他應用/請求的繼續比較將停止。
系統在日志/數據庫中查詢已部署過的Si部署策略,并統計用戶通過手動選擇的4種調度策略各自的總次數,之后為待部署微服務調用選擇次數最多的策略。對S0進行部署后,系統會調用相關算法輸出相應的部署參數(云、集群、副本數)。如果在標簽匹配步驟中沒有匹配到與待部署微服務具有相同標簽的已部署微服務,則直接隨機為待部署微服務調用一種部署策略。
若對S中的所有應用進行標簽匹配后,均未發現與S0的相似應用,則使用歷史策略匹配模塊進行調度。
對于集合S={S1,S2,…,Sn}中的所有應用,統計用戶通過手動選擇4種調度策略各自的次數(從日志/數據庫中獲知相應信息),之后使用選擇次數最多的策略對S0進行部署,并調用相關算法輸出相應的部署結果(云、集群、副本數)。如果未能確定調度策略,則隨機采取一種感知調度策略進行部署,并輸出部署結果。
歷史策略匹配模塊首先需要輸入集群對象列表、候選集群名稱列表、微服務對象、微服務標簽信息以及歷史微服務數據文件地址,然后再進行初始化操作,遍歷N個歷史微服務,初始化微服務的對象、場景標簽矩陣、開發技術標簽矩陣以及資源需求參數矩陣。遍歷操作會生成N個歷史微服務的對象、場景標簽向量、開發技術標簽向量以及資源需求參數向量,使待部署微服務也有3個向量。為了計算微服務之間的相似度,流程中使用了協同過濾算法。協同過濾算法的核心思想是:通過用戶的交互反饋行為,計算用戶或者物品之間的相似性。公式(9)可計算對應向量的相似度,公式(10)用于計算兩個微服務之間的相似度。若歷史微服務綜合相似度序列標準差小于1×10-4且相似度均小于0.5,則表面歷史微服務均不與待部署微服務相似。這時系統可隨機選擇成本、SLA、負載、能效感知等資源調度策略,否則選擇與待部署微服務綜合相似度最高的歷史微服務的部署算法。
微服務匹配篩選過程完成后,若找到了相似度較高的微服務,則按照匹配微服務使用的資源調度策略進行部署,否則隨機選擇一種資源調度策略部署。多目標優化的算力資源調度系統能夠組合多種不同的資源調度策略。多種策略算法可以描述為公式(11):
其中,rssi表示第i種資源調度策略,可以用一個函數來表示;server表示集群參數信息;service表示微服務請求信息,如SLA的請求參數、成本請求參數等;request為其他請求參數如輸出的集群數量等。
進行第i種資源調度策略下的部署時,系統首先輸入微服務信息(包括微服務請求的各項指標參數),輸入集群信息(包括集群靜態參數和不斷變化的實時參數);然后以第i種策略計算最優的集群如計算成本最優的集群、SLA最優的集群等策略;最后輸出部署結果。
在處理請求消息緩存隊列中的用戶請求時,算力網絡資源調度系統使用微服務部署時的算法類型為這些請求進行調度。系統調度算法輸出的調度結果有:云、集群、每個集群接收的請求。
資源策略部署模塊首先需要輸入應用請求信息及微服務歷史數據,根據微服務請求信息,構建應用請求模型;然后查找應用請求的微服務部署信息,根據微服務部署時使用的感知算法執行相同種類的應用請求調度算法。得到的輸出結果包括集群名稱、副本數。
使用的相同種類應用感知的應用請求調度算法過程與部署算法相似。不同的是,其輸出為集群調度的概率分布。系統依據概率選擇請求調度的集群。公式(12)表示:資源調度到集群1 的概率為0.3,調度到集群2 的概率為0.3,調度到集群3的概率為0.4。
算力網絡動態擴縮容系統是算力網絡協同調度中的核心模塊之一,對于算網應用的運行以及用戶服務的處理起著至關重要的作用[9]。如圖3 所示,平臺設計的動態擴縮容系統由監控采集模塊、指標預測模塊和擴縮規劃模塊3 部分組成。動態擴縮容系統依托這些組件通過異步工作的方式實現微服務的動態擴縮容過程(增加/減少微服務實例),以實現算力資源的彈性靈活調度。

▲圖3 算力網絡動態擴縮容系統總體架構圖
算網應用進行動態擴縮容操作時,需要綜合考慮內存使用、CPU使用情況、系統的磁盤利用率、系統網絡帶寬利用率等負載指標。這些負載指標所占的權重(權重的和是1)根據具體情況而定。定義系統的綜合負載為L,從算網資源狀況中獲取CPU的使用情況為C,內存使用情況為M,磁盤使用情況為D,網絡帶寬使用情況為B,它們的權重分別定義為ωC、ωM、ωD、ωB,其中C,M,D,B∈[0,1],則系統的綜合負載情況為:
監控采集模塊負責對整個算力網絡的狀態進行實時監控。本算法主要考慮兩類資源指標:一類是系統資源級別指標,另一類是自定義資源指標。其中,自定義指標是指引入三方監控提供“業務”指標類型。目前,三方監控主要有Prometheus、Microsoft Azure 和Datadog Cluster 等。指標適配器將指標聚合到Aggregator,由 Aggregator向指標預測模塊以及擴縮規劃模塊提供所需指標。
指標預測模塊一方面抓取上述監控采集模塊監控到的微服務副本集的歷史資源負載指標數據,并通過這些歷史監控數據和預測模型來對下一時刻的微服務副本集的資源負載值進行預測;另一方面將資源負載預測值輸出到擴縮規劃模塊,以指導后續微服務的彈性擴縮容工作。
隨著系統的運行,時序性的負載指標也就產生了。這些負載指標由當前運行的CPU、內存、磁盤利用率和帶寬占用情況共同組成。基于這些負載指標數據,系統可以預測出未來某段時間的系統負載情況,并根據預測的未來負載來進行資源的彈性伸縮。該問題可以看作一個時序預測問題。預測模塊的輸入為之前一段時間(擴縮容周期或自定義)綜合負載率組成的一組時序數據;預測模塊的輸出為短期的未來時序數據。
當采用灰色預測模型對算網應用微服務的系統負載進行預測時,指標預測模塊得到的結果為一個時序序列,它表示未來一段時間可能的資源使用量。預測序列中的最大值表示未來n秒內微服務可能達到的資源使用量的最大值,作為主要指標傳遞給擴縮規劃模塊,從而進行下一步規劃。
在算力網絡動態擴縮容系統中,擴縮規劃模塊擬采用階梯擴縮容的方式進行擴縮操作。該擴縮規劃模塊通過指標預測模塊對資源負載未來的趨勢進行分析,輸出系統綜合負載率預測序列最大值。如果該值大于擴容閾值,則擴縮規劃模塊計算副本數×擴容步長,并選取副本數×擴容步長與副本數最大值之間的較大值,執行擴容命令,使資源的副本數變多;如果小于縮容閾值,則計算副本數×縮容步長,選取副本數×縮容步長與副本數最小值之間的較小值,執行縮容命令,使資源的副本數變少。因此,算力網絡動態擴縮容系統可以提前做出擴容或縮容操作,以實現算力資源的彈性擴縮,便于算力網絡對算力資源進行靈活調度。
隨著算力網絡相關技術的發展,全國甚至全世界范圍內的云計算資源、邊緣計算資源以及終端設備計算資源將組成一張龐大的算力網絡。針對不同的業務需求,人們將隨時隨地享受到超大帶寬、超低時延、海量連接、多業務承載的高品質網絡服務。