邊緣計算(霧計算)——AI+IoT的熱詞
霧計算是思科創造的一個術語,由OpenFog Consortium支援,該聯盟由Arm、思科、戴爾、英特爾、微軟和普林斯頓大學邊緣實驗室於2015年成立。其使命宣言(部分)內容如下:
我們的工作將定義分散式計算、網路、儲存、控制和資源的架構,以支援物聯網邊緣的智慧,包括自我感知的機器、物體、裝置和智慧物件。OpenFog成員還將識別和開發新的運營模式。最終,我們的工作將有助於實現和推動下一代物聯網。
邊緣計算由EdgeX Foundry推動,這是一個由Linux基金會託管的開源專案。EdgeX Foundry的目標包括:構建和推廣EdgeX作為統一物聯網邊緣計算的通用平臺; 認證EdgeX元件以確保互操作性和相容性;提供快速建立基於EdgeX的物聯網邊緣解決方案的工具,並與相關的開源專案、標準組織和行業聯盟合作。
根據EdgeX Foundry的說法,“該專案的最佳點是邊緣節點,如嵌入式PC、集線器、閘道器、路由器和本地伺服器,以解決分散式物聯網霧中'東西南北'相互作用的關鍵互操作性挑戰建築。”
EdgeX Foundry的技術指導委員會包括來自IOTech、ADI、Mainflux、戴爾、Linux基金會、三星電子、VMWare和Canonical的代表。
該領域還有另外兩個行業機構:日本專注的EdgeCross聯盟,由Omron Corporation、Advantech、NEC、IBM Japan、Oracle Japan和Mitsubishi Electric於2017年11月成立;工業網際網路聯盟,由AT&T、思科、通用電氣、英特爾和IBM於2014年成立。
物聯網技術的快速發展和雲服務的推動使得雲端計算模型已經不能很好的解決現在的問題,於是,這裡給出一種新型的計算模型,邊緣計算(霧計算)。邊緣計算指的是在網路的邊緣來處理資料,這樣能夠減少請求響應時間、提升電池續航能力、減少網路頻寬同時保證資料的安全性和私密性。這篇文章會通過一些案例來介紹邊緣計算的相關概念,內容包括雲解除安裝、智慧家居、智慧城市和協同邊緣節點實現邊緣計算。希望這篇文章能夠給你一些啟發並讓更多的人投入邊緣計算的研究中來。
什麼是邊緣計算
在網路邊緣產生的資料正在逐步增加,如果我們能夠在網路的邊緣結點去處理、分析資料,那麼這種計算模型會更高效。許多新的計算模型正在不斷的提出,因為我們發現隨著物聯網的發展,雲端計算並不總是那麼高效的。接下來文章中將會列出一些原因來證明為什麼邊緣計算能夠比雲端計算更高效,更優秀。
我們拿人做一個比喻……
我們首先大腦裡勾畫一張圖,就是一張人類大腦神經網路圖,如果你還想不到,那直接看下圖
把雲端計算看作是大腦,那麼邊緣計算就像是大腦輸出的神經觸角,這些觸角連線到各個終端執行各種動作。
如果還覺得抽象,那我們再打個不太精準的比方吧。
再用你的雲大腦想象出一隻章魚,就是可以當刺身來吃的那種八爪魚
作為自然界中智商最高的無脊椎動物,擁有“概念思維”能力,與他兩個強大的記憶系統分不開。一個是大腦記憶系統,大腦具有5億個神經元,另一個是八個爪子上的吸盤。也就是說,章魚的八條腿可以思考並解決問題。
腦子真是個好東西,章魚就有好幾個!
話說回來,雲端計算就像是天上的雲,看得見摸不著,像章魚的大腦,邊緣計算就類似於八爪魚的那些小爪子,一個爪子就是一個小型的機房,靠近具體的實物。邊緣計算更靠近裝置端,更靠近使用者。
這麼說吧,雲端計算是把握整體,那麼邊緣計算就更專注於區域性。那麼邊緣計算的優勢就顯而易見。
邊緣計算的優點
1、計算處理的實時性更好
邊緣計算分散式以及靠近裝置端的特性註定它實時處理的優勢,所以它能夠更好的支撐本地業務實時處理與執行。
2、效率高
家門口的事情就不麻煩遠在天邊的雲計算了,邊緣計算直接對終端裝置的資料進行過濾和分析,節能省時效率還高。
3、省流量、小頻寬
邊緣計算減緩資料爆炸和網路流量的壓力,用過邊緣節點進行資料處理,減少從裝置到雲端的資料流量。
4、智慧更節能
AI+邊緣計算組合的邊緣計算不止於計算,智慧化特點明顯,另外雲端計算+邊緣計算組合出擊,成本只有單獨使用雲端計算的39%。
在人臉識別領域,響應時間由900ms減少為169ms
把部分計算任務從雲端解除安裝到邊緣之後,整個系統對能源的消耗減少了30%-40%。
資料在整合、遷移等方面可以減少20倍的時間。
5、私密性
現存的提供服務的方法是手機終端使用者的資料並上傳到雲端,然後利用雲端強大的處理能力去處理任務,在資料上傳的過程中,資料很容易被別有用心的人收集到。為了保證資料的私密性,我們可以從以下這些方面入手。
1,在網路的邊緣處理使用者資料,這樣資料就只會在本地被儲存、分析和處理。
2,對於不同的應用設定許可權,對私密資料的訪問加以限制。
3,邊緣的網路是高度動態化的網路,需要有效的工具保護資料在網路中的傳輸。
邊緣計算的應用
雲解除安裝
在傳統的內容分發網路中,資料都會快取到邊緣結點,隨著物聯網的發展,資料的生產和消費都是在邊緣結點,也就是說邊緣結點也需要承擔一定的計算任務。把雲中心的計算任務解除安裝到邊緣結點這個過程叫做雲解除安裝。
舉個例子,移動網際網路的發展,讓我們得以在移動端流暢的購物,我們的購物車以及相關操作(商品的增刪改查)都是依靠將資料上傳到雲中心才能得以實現的。如果將購物車的相關資料和操作都下放到邊緣結點進行,那麼將會極大提高響應速度,增強使用者體驗。通過減少延遲來提高人與系統的互動質量。
視訊分析
隨著移動裝置的增加,以及城市中攝像頭布控的增加,利用視訊來達成某種目的成為一種合適的手段,但是雲端計算這種模型已經不適合用於這種視訊處理,因為大量資料在網路中的傳輸可能會導致網路擁塞,並且視訊資料的私密性難以得到保證。
因此,提出邊緣計算,讓雲中心下放相關請求,各個邊緣結點對請求結合本地視訊資料進行處理,然後只返回相關結果給雲中心,這樣既降低了網路流量, 也在一定程度上保證了使用者的隱私。
舉例而言,有個小孩兒在城市中丟失,那麼雲中心可以下放找小孩兒這個請求到各個邊緣結點,邊緣結點結合本地的資料進行處理,然後返回是否找到小孩兒這個結果。相比把所有視訊上傳到雲中心,並讓雲中心去解決,這種方式能夠更快的解決問題。
智慧家居
物聯網的發展讓普通人家裡的電子器件都變得活潑了起來,僅僅讓這些電子器件連上網路是不夠的,我們需要更好的利用這些電子元件產生的資料,並利用這些資料更好的為當前家庭服務。考慮到網路頻寬和資料私密保護,我們需要這些資料最好僅能在本地流通,並直接在本地處理即可。我們需要閘道器作為邊緣結點,讓它自己消費家庭裡所產生的資料。同時由於資料的來源有很多(可以是來自電腦、手機、感測器等任何智慧裝置),我們需要定製一個特殊的OS,以至於它能把這些抽象的資料揉和在一起並能有機的統一起來。
智慧城市
邊緣計算的設計初衷是為了讓資料能夠更接近資料來源,因此邊緣計算在智慧城市中有以下幾方面優勢:
海量資料處理:在一個人口眾多的大城市中,無時無刻不在產生著大量的資料,而這些資料如果通通交由雲中心來處理,那麼將會導致巨大的網路負擔,資源浪費嚴重。如果這些資料能夠就近進行處理,在資料來源所在的區域網內進行處理,那麼網路負載就會大幅度降低,資料的處理能力也會有進一步的提升。
低延遲:在大城市中,有很多服務是要求具有實時特性的,這就要求響應速度能夠儘可能的進一步提升。比如醫療和公共安全方面,通過邊緣計算,將減少資料在網路中傳輸的時間,簡化網路結構,對於資料的分析、診斷和決策都可以交由邊緣結點來進行處理,從而提高使用者體驗。
位置感知:對基於位置的一些應用來說,邊緣計算的效能要由於雲端計算。比如導航,終端裝置可以根據自己的實時位置把相關位置資訊和資料交給邊緣結點來進行處理、邊緣結點基於現有的資料進行判斷和決策。整個過程中的網路開銷都是最小的。使用者請求得以極快的得到響應。
邊緣協作
由於資料隱私性問題和資料在網路中傳輸的成本問題,有一些資料是不能由雲中心去處理的,但是這些資料有時候又需要多個部門協同合作才能發揮它最大的作用。於是,我們提出了邊緣協同合作的概念,利用多個邊緣結點協同合作,建立一個虛擬的共享資料的檢視,利用一個預定義的公共服務介面來將這些資料進行整合,同時,通過這個資料介面,我們可以編寫應用程式為使用者提供更復雜的服務。
舉個多個邊緣結點協同合作共贏的例子。比如流感爆發的時候,醫院作為一個邊緣結點與藥房、醫藥公司、政府、保險行業等多個節點進行資料共享,把當前流感的受感染人數、流感的症狀、治療流感的成本等共享給以上邊緣結點。藥房通過這些資訊有針對性的調整自己的採購計劃,平衡倉庫的庫存;醫藥公司則能通過共享的資料得知哪些為要緊的藥品,提升該類藥品生產的優先順序;政府向相關地區的人們提高流感警戒級別,此外,還可以採取進一步的行動來控制流感爆發的蔓延;保險公司根據這次流感程度的嚴峻性來調整明年該類保險的售價。總之,邊緣結點中的任何一個節點都在這次資料共享中得到了一定的利益。
打一個不太合理的比方,設想一下,本來存錢取錢大家都要去銀行人工櫃檯處理,排隊人山人海,路上交通造成堵塞,還浪費時間和精力,現在家門口就有自助櫃員機,是不是再也不用取號排隊等叫號?
辣麼,既然邊緣計算這麼牛,就直接把雲端計算幹掉吧!留它何用?
雖然今後會將越來越多的基礎任務交給邊緣計算來完成,但是這隻能代表邊緣所在的裝置裝置會越來越靈敏,但是不能直接說這些任務和雲毫無關係,他們是一種讓彼此更完美的存在。
邊緣計算和雲端計算互相協同,它們是彼此優化補充的存在,共同使能行業數字化轉型。雲端計算是一個統籌者,它負責長週期數據的大資料分析,能夠在週期性維護、業務決策等領域執行。邊緣計算著眼於實時、短週期數據的分析,更好地支撐本地業務及時處理執行。邊緣計算靠近裝置端,也為雲端資料採集做出貢獻,支撐雲端應用的大資料分析,雲端計算也通過大資料分析輸出業務規則下發到邊緣處,以便執行和優化處理。
再打個比方吧,總公司在北京,分點在江蘇、廣東、山東各地,江蘇的實際工作任務由江蘇分部的主管執行,但是北京總公司會給出整體工作計劃,負責統籌各個區域的工作規劃。
所以不管是雲端計算還是邊緣計算,不存在一方完全取代一方的狀況,只是各個擅長的領域各司其職,物盡其用罷了,在最合適的場景裡用最合適的運算,或者雙向出擊!
所謂萬物互聯,以時間為橫座標延伸,最大的網路就是物聯網。那麼邊緣計算就是靠近物聯網邊緣的計算、處理、優化和儲存。搭載物聯網的發展,邊緣計算的應用也十分廣泛,智慧城市、智慧家居、智慧醫院、線上直播,到智慧泊車、自動駕駛、無人機、智慧製造等各方面都有它的身影,制霸物聯網的時刻指日可待。
阿里巴巴永遠是頭號積極分子,阿里雲邊緣計算產品Link Edge已經問世。據說通過這款產品,開發者能夠輕鬆將阿里雲的邊緣計算能力部署在各種智慧裝置和計算節點上,比如車載中控、工業流水線控制檯、路由器等。另外基於生物識別技術的智慧雲鎖利用本地家庭閘道器的計算能力,可實現無延時體驗,斷網了還能開鎖,避免“被關在自己家門外”的尷尬。雲與邊緣的協同計算,還能實現場景化聯動,一推開門,客廳的燈就自動開啟迎接你回家。
英特爾在零售領域已經開發出了早期原型的一套軟體平臺,用於無人店管理的環境中;在工業領域,英特爾目前已經預先做了一個更有計算能力的閘道器平臺,使這個閘道器平臺將來可以適用於更復雜的工業自動化的場景。可以看出英特爾也在努力順應物聯網、邊緣計算等新興技術趨勢。
近日,聯想集團CEO楊元慶表示,將全力擁抱智慧化,聚焦邊緣計算出力!邊緣計算有了聯想,未來將會怎樣?
當然萬物都有雙面性,邊緣計算的發展也存在不小的挑戰性。
雲端計算自從它與2005年提出之後,就開始逐步的改變我們生活、學習、工作的方式。生活中經常用到的google、facebook等軟體提供的服務就是典型的代表。並且,可伸縮的基礎設施和能夠支援雲服務的處理引擎也對我們運營商業的模式產生了一定的影響,比如,hadoop、spark等等。
物聯網的快速發展讓我們進入了後雲時代,在我們的日常生活中會產生大量的資料。思科估計到2019年會有將近500億的事物連線到網際網路。物聯網應用可能會要求極快的響應時間,資料的私密性等等。如果把物聯網產生的資料傳輸給雲端計算中心,將會加大網路負載,網路可能造成擁堵,並且會有一定的資料處理延時。
隨著物聯網和雲服務的推動,我們假設了一種新的處理問題的模型,邊緣計算。在網路的邊緣產生、處理、分析資料。接下來的文章會介紹為什麼需要邊緣計算,相關定義。有關雲解除安裝和智慧城市的一些研究,有關邊緣計算下的程式設計、命名、資料抽象、服務管理、資料私密和安全性都會凸顯出來。
機遇和挑戰
以上是邊緣計算在解決相關問題的潛力和展望,接下來會分析在實現邊緣計算的過程中將要面臨的機遇和挑戰。
程式設計可行性
在雲端計算平臺程式設計是非常便捷的,因為雲有特定的編譯平臺,大部分程式都可以在雲上跑。但是邊緣計算下的程式設計就會面臨一個問題,平臺異構問題,每一個網路的邊緣都是不一樣的,有可能是ios系統,也有可能是安卓或者linux等等,不同平臺下的程式設計又是不同的。因此我們提出了計算流的概念,計算流是資料傳播路徑上的函式序列/計算序列,可以通過應用程式指定計算髮生在資料傳播路徑中的哪個節點。計算流可以幫助使用者確定應該完成哪些功能/計算,以及在計算髮生在邊緣之後如何傳播資料。通過部署計算流,可以讓計算儘可能的接近資料來源。
命名
命名方案對於程式設計、定址、事物識別和資料通訊非常重要,但是在邊緣計算中還沒有行之有效的資料處理方式。邊緣計算中事物的通訊是多樣的,可以依靠wifi、藍芽、2.4g等通訊技術,因此,僅僅依靠tcp/ip協議棧並不能滿足這些異構的事物之間進行通訊。邊緣計算的命名方案需要處理事物的移動性,動態的網路拓撲結構,隱私和安全保護,以事物的可伸縮性。傳統的命名機制如DNS(域名解析服務)、URI(統一資源標誌符)都不能很好的解決動態的邊緣網路的命名問題。目前正在提出的NDN(命名分發網路)解決此類問題也有一定的侷限性。在一個相對較小的網路環境中,我們提出一種解決方案,如圖3所示,我們描述一個事物的時間、地點以及正在做的事情,這種統一的命名機制使得管理變得非常容易。當然,當環境上升到城市的高度的時候,這種命名機制可能就不是很合適了,還可以進行進一步的討論。
圖3 命名機制
資料抽象
在物聯網環境中會有大量的資料生成,並且由於物聯網網路的異構環境,生成的資料是各種格式的,把各種各樣的資料格式化對邊緣計算來說是一個挑戰。同時,網路邊緣的大部分事物只是週期性的收集資料,定期把收集到的資料傳送給閘道器,而閘道器中的儲存是有限的,他只能儲存最新的資料,因此邊緣結點的資料會被經常重新整理。利用整合的資料表來儲存感興趣的資料,表內部的結構可以如圖4所示,用id、時間、名稱、資料等來表示資料。
圖4 相應表結構
如果篩選掉過多的原始資料,將導致邊緣結點資料報告的不可靠,如果保留大量的原始資料,那麼邊緣結點的儲存又將是新的問題;同時這些資料應該是可以被引用程式讀寫和操作的,由於物聯網中事物的異構性,導致資料庫的讀寫和操作會存在一定的問題。
服務管理
邊緣結點的服務管理我們認為應該有以下四個特徵,,包括差異化、可擴充套件性、隔離性和可靠性,進而保證一個高效可靠的系統。
差異化:隨著物聯網的發展,會有這種各樣的服務,不同的服務應該有差異化的優先順序。比如,有關事物判斷和故障警報這樣的關鍵服務就應該高於其它一般服務,有關人類身體健康比如心跳檢測相關的服務就要比娛樂相關服務的優先順序要高一些。
可擴充套件性:物聯網中的物品都是動態的,向物聯網中新增或刪除一件物品都不是那麼容易的,服務缺少或者增加一個新的結點能否適應都是待解決的問題,這些問題可以通過對邊緣os的高擴充套件和靈活的設計來解決。
隔離性:所謂隔離性是指,不同的操作之間互不干擾。舉例而言,有多個應用程式可以控制家庭裡面的燈光,有關控制燈光的資料是共享的,當有某個應用程式不能響應時,使用其他的應用程式依然能夠控制燈光。也就是說這些應用程式之間是相互獨立的,互相併沒有影響;隔離性還要求使用者資料和第三方應用是隔離的,也就是說應用不應該能夠跟蹤使用者的資料並記錄下來,為了解決該問題,應當新增一種全新的應用訪問使用者資料的方式。
可靠性:可靠性可以從服務、系統和資料三方面來談論
從服務方面來說,網路拓撲中任意節點的丟失都有可能導致服務的不可用,如果邊緣系統能夠提前檢測到具有高風險的節點那麼就可以避免這種風險。較好的一種實現方式是使用無線感測器網路來實時監測伺服器叢集。
從系統角度來看,邊緣作業系統是維護整個網路拓撲的重要一部分內容。節點之間能夠互通狀態和診斷資訊。這種特徵使得在系統層面部署故障檢測、節點替換、資料檢測等十分的方便。
從資料角度來看,可靠性指的是資料在感測和通訊方面是可靠地。邊緣網路中的節點有可能會在不可靠的時候報告資訊,比如當感測器處於電量不足的時候就極有可能導致傳輸的資料不可靠。為解決此類問題可能要提出新的協議來保證物聯網在傳輸資料時的可靠性。
邊緣計算之 最優化指標
在邊緣計算當中,由於節點眾多並且不同節點的處理能力是不同的,因此,在不同的節點當中選擇合適的排程策略是非常重要的。接下來從延遲、頻寬、能耗和花費這四個方面來討論最優化的指標。
延遲: 很明顯雲中心具有強大的處理能力,但是網路延遲並不單單是處理能力決定的,也會結合資料在網路中傳輸的時間。拿智慧城市距離來說,如果要尋找丟失的小孩兒資訊,在本地的手機處理,然後把處理結果返回給雲明顯能加快響應速度。當然,這種事情也是相對而言的,我們需要放一個邏輯判斷層,來判斷把任務交給哪一個節點處理合適,如果此時手機正在打遊戲或者處理其他非常重要的事情,那麼手機就不是很適合處理這種任務,把這種任務交給其他層次來處理會更好些。
頻寬:高頻寬傳輸資料意味著低延遲,但是高頻寬也意味著大量的資源浪費。資料在邊緣處理有兩種可能,一種是資料在邊緣完全處理結束,然後邊緣結點上傳處理結果到雲端;另外一種結果是資料處理了一部分,然後剩下的一部分內容將會交給雲來處理。以上兩種方式的任意一種,都能極大的改善網路頻寬的現狀,減少資料在網路中的傳輸,進而增強使用者體驗。
能耗:對於給定的任務,需要判定放在本地運算節省資源還是傳輸給其他節點計算節省資源。如果本地空閒,那麼當然在本地計算是最省資源的,如果本地正在忙碌狀態,那麼把計算任務分給其他節點會更合適一些。權衡好計算消耗的能源和網路傳輸消耗的能源是一件非常重要的事情。一般當網路傳輸消耗的資源遠小於在本地計算消耗的能源時,我們會考慮使用邊緣計算把計算任務解除安裝到其他空閒的節點上,幫助實現負載均衡,保證每一個結點的高效能。
花費:目前在邊緣計算上的花費包括但不限於邊緣結點的構建和維護、新型模型的開發等。利用邊緣計算的模型,大型的服務提供商在處理相同工作的情況下能夠獲取到更大的利潤。
大佬們都在忙活:
亞馬遜AWS
在亞馬遜2016年re:Invent開發者大會上推出,AWS Greengrass以公司現有的物聯網和Lambda(無伺服器計算)產品為基礎,將AWS擴充套件到間歇性連線的邊緣裝置。
“藉助AWS Greengrass,開發人員可以直接從AWS管理控制檯將AWS Lambda函式新增到已連線的裝置,並且裝置可以在本地執行程式碼,以便裝置可以響應事件並近乎實時地執行操作。AWS Greengrass還包括AWS物聯網訊息傳遞和同步功能,使裝置可以在不連接回雲的情況下向其他裝置傳送訊息“,亞馬遜還表示,“AWS Greengrass允許客戶靈活地讓裝置在有意義的時候依賴雲,在有意義的時候自己執行任務,並在有意義的時候相互交談,所有這些都在一個無縫的環境中完成。”
AWS-greengrass
當然,這些是“智慧”邊緣裝置:Greengrass需要至少1GHz的計算(Arm或x86),128MB的RAM以及用於作業系統、訊息吞吐量和AWS Lambda執行的額外資源。根據亞馬遜的說法,“Greengrass Core可以執行在從Raspberry Pi到伺服器級裝置的各種裝置上”。
Microsoft
自2017年6月開始在Microsoft的BUILD 2017開發者大會上推出Azure IoT Edge,允許雲工作負載集裝箱化,並在從Raspberry Pi到工業閘道器的智慧裝置上本地執行。
Azure IoT Edge包含三個元件:IoT Edge模組、IoT Edge執行時環境、 物聯網中心。IoT Edge模組是執行Azure服務,第三方服務或自定義程式碼的容器;它們部署到IoT Edge裝置並在本地執行。IoT Edge執行時環境在每個IoT Edge裝置上執行,管理已部署的模組,而IoT Hub是基於雲的介面,用於遠端監控和管理IoT Edge裝置。
以下是不同的Azure IoT Edge元素如何組合在一起:
Azure-IOT-edge
隨著全面上市,微軟增加了新的功能,以Azure IoT Edge為例,其中包括:開源的支援; 、備配置、安全和管理服務和簡化的開發人員體驗。
谷歌
2018年7月,谷歌宣佈推出兩款大規模開發和部署智慧連線裝置的產品:Edge TPU和Cloud IoT Edge。Edge TPU是一種專用的小型ASIC晶片,設計用於在邊緣裝置上執行TensorFlow Lite機器學習模型。Cloud IoT Edge是將Google的雲服務擴充套件到物聯網閘道器和邊緣裝置的軟體堆疊。
Cloud IoT Edge有三個主要元件:用於閘道器級裝置(至少有一個CPU)的執行時,用於儲存、轉換、處理和從邊緣資料中提取智慧,同時與Google的其他雲IoT平臺進行互操作;Edge IoT Core執行時,可將邊緣裝置安全地連線到雲端;Edge ML執行時基於TensorFlow Lite,使用預先訓練的模型執行機器學習推理。
谷歌雲-IOT-edge。
Edge TPU和Cloud IoT Edge都處於alpha測試階段。
小結
物聯網的發展和雲端計算的推動使得邊緣計算的模型出現在社群之中。在邊緣結點處理資料能夠提高響應速度,減少頻寬,保證使用者資料的私密性。這篇文章當中,我們提出了邊緣計算可能在以後的生活中一些相關場景的運用,也提到了邊緣計算以後發展的展望和挑戰。希望以後有更多的同僚能夠關注到這麼一個領域。
---------------------
注:改編自施巍鬆教授的論文《Edge Computing : Vision and Challenges》