主要挑戰
1 多主體的資源管理
邊緣計算資源分散在數據的傳輸路徑上,被不同的主體所管理和控制,比如用戶控制終端設備、網絡運營商控制通信基站、網絡基礎設施提供商控制路由器、應用服務供應商控制邊緣服務器與內容傳輸網絡。云計算中的資源都是集中式的管理,因此云計算的資源管理方式并不適用管理邊緣計算分散的資源,而目前關于邊緣計算的研究也主要集中在對單一主體資源的管理和控制,還未涉及多主體資源的管理.一種比較直觀的解決方式是各個主體對資源自我管理,然后通過中間服務(brokerservice)來進行資源供給.但這種方式只能提供基本的功能,如果要滿足使用者的特殊需求(如自動供給),中介層則需要自己實現部分
IaaS(infrastructureasaservice)平臺功能。這需要依賴各個主體提供的API,只要有1個主體提供的
API不夠靈活,就很難實現,因此實現靈活的多主體資源管理是一個十分富有挑戰性的問題。

2 應用的移動管理
應用的移動管理邊緣計算依靠資源在地理上廣泛分布的特點來支持應用的移動性,一個邊緣計算節點只服務周圍的用戶。應用的移動就會造成服務節點的切換。而云計算對應用移動性的支持則是“服務器位置固定,數據通過網絡傳輸到服務器”,所以在邊緣計算中應用的移動管理也是一種新模式,主要涉及以下2個問題:
1)資源發現。應用在移動的過程中需要快速發現周圍可以利用的資源,并選擇最合適的資源。當前雖然也有很多成熟的資源發現技術,在云監控(cloudmonitor)與云中介(servicebrokerage)中被廣泛運用,但邊緣計算的資源發現需要適應異構的資源環境,還需要保證資源發現的速度,才能使應用不間斷地為用戶提供服務。
2)資源切換。用戶移動時,移動應用使用的計算資源可能會在多個設備間切換,而資源切換要將服務程序的運行現場遷移。熱遷移技術可以解決這個問題,但是傳統熱遷移技術的目標是最小化停機時間,而資源切換需要最小化總遷移時間,因為在遷移的過程中用戶要忍受升高的延遲。另外,傳統的虛擬機遷移是在數據中心的內部進行,設備的計算能力與網絡帶寬比較固定,而邊緣計算資源的異構性與網絡的多樣性,需要遷移過程自適應設備計算能力與網絡帶寬的變化。所以,邊緣計算需要一套自適應的快速熱遷移方案,來滿足移動應用資源切換的需求。
3 虛擬化技術
為了方便資源的有效管理,邊緣計算需要虛擬化技術的支持,為系統選擇合適的虛擬化技術是邊緣計算的一個研究熱點。邊緣計算對虛擬化技術的要求體現在如下3個方面:
1)邊緣計算資源是一種基礎設施,要盡可能地保持通用性,所以虛擬化技術應該實現最小化對應用程序運行時環境的約束,不應強制應用使用特定的操作系統、函數庫等;
2)邊緣計算資源的能力有限,不能像計算中心一樣為應用提供充足的資源,虛擬化技術應最大化資源利用率,使有限的資源在同一時間內滿足更多的請求;
3)有些邊緣計算資源在處理用戶任務的同時還要對外提供其他服務,虛擬化技術應將不同的任務徹底隔離,一個應用的崩潰、內存溢出、高 CPU
占用不會對其他的任務造成影響。例如在移動邊緣計算中,基站能夠處理用戶的任務,但是這些任務不能影響基站最基本的無線接入功能。這3個方面可能會出現沖突,系統要根據自己的需求在這之間做出權衡。目前,新型的虛擬化技術層出不窮,其中有很多打破了虛擬機和容器的規則與界線,將兩者充分融合,同時具備兩者的優勢,如LXD,Hyper,RancherOS等。所以,不拘泥于虛擬化技術現有的規則與界線,設計適應邊緣計算特點的虛擬化技術也是一大挑戰。
4 數據分析
數據分析的數據量越大,往往提取出的價值信息就越多。但是收集數據需要時間,價值信息往往也具有時效性,沒有人會關注昨天的天氣預報。邊緣計算使數據可以在匯集的過程中被處理與分析,很多數據如果被過早地分析,可能會丟失很多有價值的信息,所以如何權衡提取信息的價值量與時效性是一個關鍵性問題。
邊緣計算利用的計算節點數量眾多,但節點的計算資源有限,很多都是單片機或片上系統,例如Intel小型蜂窩基站上配備 T3K
片上系統擁有4核ARM處理器和2GB
的內存;而目前流行的Hadoop,Spark等數據分析模型利用的計算資源特點卻是“數量相對較少,但資源十分豐富”,高效運行的Spark需要8核 CPU
與8GB內存的計算節點支持,因此 Hadoop,Spark等數據分析框架不適應邊緣計算的資源環境?,F有很多計算框架適用于資源有限的計算節點,如實時數據處理框架
ApacheEdgent,深度學習框架 TensorFlow
等,但仍不成熟,有很多問題需要解決。例如ApacheEdgent只支持類似過濾,聚集這樣的簡單操作,而
TensorFlow目前的版本只能用于單PC或單移動設備上的計算。
5 編程模型
邊緣計算資源動態、異構與分散的特性使應用程序的開發十分困難,為減少應用的開發難度,需要可以適應邊緣計算資源的編程模型。Hong等人提出了一個邊緣計算編程模型,針對地理空間分布的延遲敏感的大規模應用,該模型適應分散、異構的資源環境,并使程序可以根據負載動態伸縮。但是該模型假設資源之間的網絡拓撲必須是樹狀的,無法適應邊緣計算資源的動態性。Sajjad等人研究了流處理應用的編程模型,該模型利用空間上分散的計算資源處理數據,將任務區分為本地任務和全局任務,本地任務可以在更靠近數據源的計算節點上執行,從而減少應用在網絡上傳輸的數據量。