天天看點

漫談 IOT 邊緣計算

一、背景

随着網際網路的發展,我們進入了大資料時代,這個時代也是移動網際網路的時代,而且這個時代,大量的線下服務走到線上,随之而來的,比如外賣、叫車……于是,有各種各樣的 App 和裝置在收集你的行為和資料。更加海量的資料源源不斷的産生,并上傳到雲平台。

這就給雲提出了很大的挑戰。一方面是極大地消耗有限的網絡帶寬資源;另一方面對于大資料處理的實時需求越來越成為剛需了,因為,如果不能實時處理、實時響應,那麼怎麼能跟得上這個快速的時代呢。這就好像一個人臉識别的功能。如果蘋果手機的人臉識别需要到伺服器上算,然後把結果傳回,那麼使用者的體驗就很糟糕了。這就是為什麼蘋果在手機裡直接植入了神經網絡的晶片,而我們知道網絡的不确定因素很多,有可能導緻不可控的延時。

而且資料通常與實體實體關系密切。比如家庭監控攝像頭中,家庭成員的肖像等視訊資訊是非常敏感的;而在工業場景中,很多資料是機密的。如果這些資訊全部上傳到雲,會給使用者帶來很大的安全風險。

是以,現在行業内已經開始嘗試将雲的部分計算服務,下沉到靠近資料發生地的“邊緣節點”上進行,這就是邊緣計算的由來。

二、什麼是邊緣計算?

維基百科的定義:

邊緣運算(英語:Edge computing),又譯為邊緣計算,是一種分布式運算的架構,将應用程式、資料資料與服務的運算,由網絡中心節點,移往網絡邏輯上的邊緣節點來處理[1]。邊緣運算将原本完全由中心節點處理大型服務加以分解,切割成更小與更容易管理的部分,分散到邊緣節點去處理。邊緣節點更接近于使用者終端裝置,可以加快資料的處理與發送速度,減少延遲。在這種架構下,資料的分析與知識的産生,更接近于資料資料的來源,是以更适合處理大資料。
漫談 IOT 邊緣計算

通俗地說:邊緣計算本質上是一種服務,就類似于雲計算、大資料服務,但這種服務非常靠近使用者;為什麼要這麼近?目的是為了讓使用者感覺到刷什麼内容都特别快。

三、邊緣計算的好處

怎麼了解這種技術架構上的進化呢?你可以想一想,人體是如何處理各種感覺資訊的,是不是所有的資訊都需要大腦來處理呢?

大家都熟悉雲計算,它有着許多的特點:有着龐大的計算能力,海量存儲能力,通過不同的軟體工具,可以建構多種應用,我們在使用的許多 APP ,本質上都是依賴各種各樣的雲計算技術,比如視訊直播,電子商務。邊緣計算脫胎于雲計算,靠近裝置側,具備快速反應能力,但不能應付大量計算及存儲的場景。這兩者之間的關系,可以用我們身體的神經系統來解釋。

雲計算能夠處理大量資訊,并可以存儲短長期的資料,這一點非常類似于我們的大腦。大腦是中樞神經中最大和最複雜的結構,也是最高部位,是調節機體功能的器官,也是意識、精神、語言、學習、記憶和智能等進階神經活動的物質基礎。人類大腦的灰質層,富含着數以億計的神經細胞,構成了智能的基礎。而具有灰質層的并不隻有大腦,人類的脊髓也含有灰質層,并具有簡單中樞神經系統,能夠負責來自四肢和軀幹的反射動作,及傳送腦與外周之間的神經資訊。我們在國中的生物中都學習到了膝跳反應,這就是脊髓反應能力的證據。

邊緣計算對于雲計算,就好比脊髓對于大腦,邊緣計算反應速度快,無需雲計算支援,但低智能程度較低,不能夠适應複雜資訊的處理。而雲計算負責需要大規模資料和複雜計算的資料分析工作,以及完成整體的協調和控制。

漫談 IOT 邊緣計算

具體來說,将原有的雲計算模型的部分計算任務遷移到網絡邊緣裝置來;網絡邊緣裝置(比如路由器、移動網絡基站等),在資料源附近執行資料處理和資料分析任務。這樣一來,就降低了雲計算中心的計算負載,減輕海量資料了對于網絡帶寬的壓力,提高了資料處理的效率。

這裡将邊緣計算模型的好處,總結為四個方面:

  • 延遲低。資料隻需要從産生裝置傳輸到邊緣裝置,傳輸距離短,資料不需要通過其他網絡,網絡延遲低。
  • 節約了主幹網帶寬。緩解大量資料傳輸所造成的網絡擁堵想象。尤其像一些銀行的專有網絡,本身帶寬非常有限,隻能用于傳輸關鍵性的資料。
  • 計算可用性好。資料在網絡中的路徑長度顯著變短,因網絡波動引起的計算服務不可用情況将有所減少。
  • 隐私性更好。由于邊緣裝置距離使用者近,使用者的隐私資料不再需要上傳到雲,是以,在邊緣計算場景下,使用者的隐私也可以得到更好的保護。
  • 中心雲的成本更低。

我們再來看看雲的成本,當一個公司需要支援幾十萬使用者的時候,并沒有什麼感覺。當他們要支撐上千萬乃至上億使用者的時候,我們就會發現,一個幾十萬使用者的系統架構和一個支撐上千萬使用者的架構,在成本上來說,完全不是一個數量級的。

漫談 IOT 邊緣計算

在這個圖中,我們可以看到,當需要處理的資料或是使用者請求的規模越來越大時,我們的成本是呈現快速上升的曲線,而不是一個線性上升的成本關系。我們可以來算一下,根據行業内的經驗,可以估計如下的投入:

  • 幾十萬使用者的公司,隻需要處理百級 TPS 的量,隻需要 10 台左右的伺服器;
  • 上百萬使用者的公司,隻需要處理千級 TPS 的量,需要有 50 台左右的伺服器;
  • 上千萬使用者的公司,需要處理萬級到十萬級 TPS 的量,需要 700 台左右的伺服器;
  • 上億使用者的公司,其需要處理百萬級 TPS 的量,需要上萬台的伺服器。

可以看到,十萬使用者到上億使用者,也就多了 100 倍,為什麼伺服器需要 1000 倍?這完全不是呈線性的關系。

這時因為,當架構變複雜了後,你就要做很多非功能的東西了,比如,緩存、隊列、服務發現、網關、自動化運維、監控等。

那麼,我們不妨開個腦洞。如果我們能夠把那上億的使用者拆成 100 個百萬級的使用者,那麼隻需要 5000 多台機器(100 個 50 台伺服器的資料中心)。

我們還是同樣服務了這麼多的使用者,但我們的成本下降得很快。隻不過,我們需要運維 100 個小資料中心。不過,相信我,運維 100 個 50 台伺服器的小資料中心的難度應該遠遠低于運維一個 10000 台伺服器的資料中心。

好了,問題來了,什麼樣的業務可以這麼做?我覺得有地域性的業務是可以這麼做的,比如:外賣、叫車、共享單車之類的。

然而,100 個 50 台伺服器的小資料中心也會帶來一些複雜的問題,因為當你的公司有 100 萬使用者的時候的業務形态和有 1 億使用者的業務形态是完全不一樣的,1 億使用者的業務形态可能會複雜得多得多。也就是說,我們不可能在一個小資料中心隻有 50 台伺服器,因為那是百萬使用者的業務形态,隻有幾十個服務。當公司成長到上億使用者的規模時,可能會有上百個服務,50 台伺服器是不夠部署的。

是以,上面那種多個資料中心的理想隻存在于理論上,而實際上不會發生。但是,我們依然可以沿着這條路思考下去。我們不難發現,我們完全可以用邊緣節點處理高峰流量,這樣,我們的資料中心就不需要花那麼大的成本來建設了。于是,還是到了邊緣計算。

四、邊緣計算的業務場景

通過上面的案例分析,我覺得邊緣計算一定會成為一個必然産物,其會作為以資料中心為主的雲計算的一個非常好的補充。這個補充在我看來,其主要是做下面一些事情。

  • 處理一些實時響應的業務。它和使用者靠得很近,是以可以實時響應使用者的一些本地請求,比如,某公司的人臉門禁系統、共享單車的開鎖。
  • 處理一些簡單的業務邏輯。比如像秒殺、搶紅包這樣的業務場景。
  • 收集并結構化資料。比如,把視訊中的車牌資訊摳出來,轉成文字,傳回資料中心。
  • 實時裝置監控。主要是線下裝置的資料采集和監控。
  • P2P 的一些去中心化的應用。比如:邊緣結點作為一個服務發現的伺服器,可以讓本地裝置之間進行 P2P 通訊。
  • 雲資源排程。邊緣結點非常适合用來做雲端服務的排程。比如,允許使用者使用不同生産商的雲存儲服務,使用不同生産商但是功能相同的 API 服務(比如支付 API 相關)。因為是流量接入方,是以可以排程流量。
  • 雲資源聚合。比如,我們可以把語音轉文字的 API 和語義識别的 API 相結合,聚合出來一個識别語音語義的 API,進而簡化開發人員的開發成本。
  • ……

五、邊緣計算的幾點思考

  • 早已有之,新葫裝舊酒,炒炒新概念:以前的 CS,後來的 BS,再後來的雲和 APP,就是某種意義的邊緣計算。服務端和終端各自承擔一部分算力。過去的 CDN,現在的 VCDN 服務也是一種中心雲計算能力下層到邊緣節點能力的一種展現。這幾年普遍存在的在家用路由器運作容器搭梯子翻牆,也算明顯的雲邊協同。離開了網絡離開了應用提供商,現在的電腦手機幾乎沒啥用,其實 PC,手機,智能路由,小米的智能家電就是邊緣裝置。隻不過現在的邊緣計算更多的是雲計算出現後的概念,是相對于中心雲的一種概念,雲+邊+端的概念,中心雲有 Openstack,Kubernets 或自研平台,邊緣雲也采用專有邊緣裝置和邊緣開源平台。中心雲原生能力往邊緣的下沉。
  • 異構計算迎來大發展:FPGA 相對 ASIC 具有靈活程式設計的特點,相對于 CPU 以流水線運算周期為運算時間機關,FPGA 以時鐘頻率為運算時間機關 FPGA 有低延遲時間專業性方向性強的特點,符合邊緣計算的需求而大量應用在邊緣迎來大發展。以 GPU,ARM,TPU 等大量應用在邊緣在邊緣計算上也會迎來大發展。
  • serverless 會大量應用在邊緣。
  • 國内廠商中,阿裡,華為會在邊緣計算上勝出。
    • 阿裡的晶片設計的積累和優勢,docker 的合作,以及在容器領域的開源項目之多,公有雲市場優勢,邊緣計算和公有雲聯系緊密。
    • 華為晶片設計的積累和優勢,中國第一的研發能力和積累,最多标準,協定制定者。
  • 邊緣裝置更多的服務 toB 業務
    • 視訊監控
    • 智能制造,公共場所(辦公,商場,交通,城市)
    • AI(圖像視訊識别,自動駕駛)
    • 個人繼續用手機為智能終端連接配接到中心雲和邊緣雲服務
  • 邊緣裝置小型化和成本是主要考慮對象,是以以機架,伺服器形式隻能用在重資産的地方,以內建進 5G 基站,路由器,小型定制裝置(類似工控機)的輕資産數量居多。

六、小結

從雲計算的發展趨勢上來看,資料量的不斷增大迫使邊緣計算成為一個必然。大資料中心的成本問題,也需要通過邊緣計算來降低。同時随着業務應用場景越來越多,對是性能的要求也越來越高,雲計算的“雲、邊、端”架構(即中心雲、邊緣雲、終端三部分)最終将會成為趨勢。

參考資料: