邊緣計算將計算資源放置在網際網路邊緣,接近設備與信息源頭。類似CPU中的緩存,邊緣計算能夠為應用提高帶寬、減少延遲,但潛在的代價是可靠性和容量。這是因為邊緣設備通常不如集中式伺服器和雲計算資源,在維護性、可靠性、功能和穩定性方面仍面臨挑戰。
就邊緣設備的地理分布而言,本文對邊緣的定義包含臨近部署的少量邊緣設備、城市內蜂窩基站的設備,及全市範圍的部署。當本地處理不充分、成本高昂或者計算依賴於非本地信息時,本地設備計算將卸載到附近的邊緣計算設備(霧、雲等)上。例如,手機中過長的語音片段可以卸載到電池塔上處理,而不是在本地設備(移動邊緣計算)上處理,這既可節省電池,又可減少處理速度差異導致的端到端延遲。
與傳統高度集中的雲計算相比,邊緣計算設備充當了分布式計算的基礎結構,提供更高的帶寬和更低的延遲,但與中央雲相比,卻存在資源有限的短板。
邊緣範式支持大規模的物聯網(IoT)設備,物聯網設備與本地環境的交互生成實時數據,從而分擔雲上繁重的處理和分析任務。此結構是增強現實(AR)和家庭自動化等應用的主幹,它們通過複雜的信息處理來分析本地環境以支持決策。在物聯網領域,功能輸入和輸出與地理分布的傳感器和執行器是物理綁定的。如果這些數據集中在中心位置處理,則「最後一英裡」網絡將面臨巨大壓力,雲基的物聯網部署方案將變得不切實際。
如果沒有大幅度的網絡提升(這在中短期似乎不太可能實現),那麼邊緣計算將會成為物聯網的基石。由於兩個方面的原因,本地計算和邊緣計算的範圍發生了變化:一是更多苛刻應用的出現(從聲音處理到視頻處理再到增強現實);二是本地可用資源的增加,包括處理、存儲、網絡等。前者將一些處理推向邊緣,並進一步推向雲,而後者則驅使處理更靠近本地。
受益於邊緣計算的應用通常具有低延遲的需求並且會產生高帶寬的數據流。物聯網設備和增強現實應用是兩個典型例子。本文將以此為例,考察邊緣計算應用帶來的彈性挑戰。
當前,邊緣計算應用還處於起步階段,許多設計決策在小規模場景下似乎是合理的。但是,隨著邊緣應用程式規模的擴大,無論是在客戶端設備的數量還是在生成的數據量方面,都會出現許多實際挑戰。在低成本無線電子產品和易於集成的特點的推動下,物聯網正在快速地增加可尋址計算機的數量以及對應的需要傳輸的環境數據量。共享計算工具(尤其是網絡資源)會因數據密集型應用的橫向擴展而迅速飽和,當端點數量的算法複雜度呈現超線性增長時,協議可能無法及時返回結果。
網絡影響:隨著新設備的投入使用,雲基的計算可通過向計算環境中逐漸增加資源來支持拓展性。實際上,集中式數據中心較容易實現這樣的拓展,例如只要安置新伺服器並將其連接到現有基礎架構中即可。但是隨著物聯網規模的不斷擴大,如果網絡運營商仍然依靠平均容量做部署規劃,而網絡技術無法跟上數據的持續增長,那麼將所有數據處理轉移到數據中心顯然是不可行。如果固定視頻傳感器全天候生成6Mbps的視頻,每月就會產生近2TB的數據,從消費者連接的商業管理來講,這將是無法維持的。如果使用廣泛部署的有線網際網路技術DOCSIS3.0,當今美國的大多數有線系統在500個家庭中最多總共支持81Mbps,平均每個家庭僅支持0.16Mbps。如果12個用戶在該地區進行AR交互,網絡就將飽和。而如果使用邊緣計算,500個家庭可以同時處於活躍狀態,但需要些彈性成本:如果每個家庭有4個活躍的AR用戶,那麼由於最後一英裡網絡的限制,500臺邊緣計算機中僅僅容許有3臺可以同時出現故障並返回到雲中處理。
缺少故障轉移:第一個彈性挑戰是如何在發生故障時進行故障轉移。在雲計算中,同一本地網絡存在熱備份,因此每個獨立資源的可用性並不是很重要。在邊緣環境中,熱備份就顯得不切實際。常見的部署方案非常精簡,只使用一個邊緣設備,如一個WiFi路由器即提供了一個家庭中所有的邊緣服務。對此的替代解決方案是協商基於對等點的故障轉移或資源的社區聚合(類似於微電網)在這種情況下,社區帶寬仍將限制故障轉移的能力。如果沒有額外的網絡基礎架構支持,即使在同一本地社區內進行對等點的故障轉移,500個家庭也只能支持12個未在本地處理數據的AR用戶。除非增加帶寬,額外的冗餘邊緣計算才能變得可行,但這需要既昂貴又部署緩慢的最後一英裡網絡的支持。
邊緣計算的低延遲特性吸引了具有軟實時要求應用的部署。例如,AR應用需要保持低於16毫秒的端到端延遲,以保持60幀/秒的無縫交互。這種延遲在本地設備上很容易實現,但讓所有客戶端設備都具備AR應用必要的計算能力卻是不可行的。邊緣計算提供了一個經濟可行的辦法,尤其是當邊緣設備大部分時間處於空閒狀態時(如商店收銀機中的「計算機」)。這促使實時應用選擇在邊緣計算機上運行而非在客戶端設備上。在邊緣計算設備內部,存在少量的CPU、RAM、GPU/APU和網絡支持。每個實時應用都需要一部分資源的支持以便在規定的時間內執行任務。受限環境中的實時調度(通常採用截止時間優先)可能會因以下因素而複雜化:不同應用程式的延遲容忍級別,不可預測的用戶交互、邊緣設備和客戶端設備之間不可預測的網絡行為以及同一普通邊緣設備服務的多客戶端設備的時鐘漂移。在邊緣計算網絡具備足夠的所需能力之前,設備可能會一直等待。例如,邊緣設備正在分析來自AR設備的視頻流,而此時恆溫器卻急需視頻流的分析結果來識別屋內人數,進而設定溫度。如果邊緣設備無法同時支持這兩項任務的執行,那麼就需要調度算法來安排它們的執行順序。如果邊緣計算範式得到普及,邊緣設備上的競爭將不可避免,並且當今許多應用對資源及時可用的需求將導致許多實時服務無法得到及時響應。針對此類問題的一種解決方案是使用雲作為故障備份,用來延遲容錯應用。此外,如果應用是有狀態的,但是鑑於某些邊緣設備的無常性。這些狀態也需要存儲在客戶端、雲上或兼而有之。