邊緣計算是指在靠近物或數據源頭的一側,采用網絡、計算、存儲、應用核心能力為一體的開放平臺,就近提供最近端服務。其應用程序在邊緣側發起,產生更快的網絡服務響應,滿足行業在實時業務、應用智能、安全與隱私保護等方面的基本需求。目前,許多科技企業已經在邊緣計算上開始自己的布局。
未來,我們會看到越來越多的像智慧城市、智能工廠、智能制造、智能零售等一系列創新商業模式,它們在運用物聯網技術的過程中,需要用到數據采集、處理、上傳數據的邊緣端計算設備和網關設備。這些設備或者是相應的解決方案,配合分布式數據庫和分布式的數據處理,就構成一個完整的邊緣計算體系。但這個體系不是獨立存在的,它會跟云計算產生非常多的數據和應用互動。
邊緣計算簡單架構圖
提到邊緣計算,我們會聯想到秒殺時候,使用CDN進行負載分流;可能也會聯想到數據中心和分布式服務器;或者想到數據中心和設備采集網關;或者想到華為AI神經網絡芯片、離線地圖,離線語音識別;或者自動駕駛,電動汽車等等……
這邊不深入考究邊緣計算的概念,具體可以查看維基百科或百度百科
邊緣計算的架構圖很簡單,如下圖所示
(圖片來源:https://www.zhihu.com/question/35792003?sort=created)
為什么需要邊緣計算?
也許你會第一反應是中心計算力不足,網絡延遲,數據量龐大,這些都是常見的因素……
數據上漲
隨著芯片計算力的發展、硬件成本的降低,加上網路提速,大概每十年一次變革,數據呈現指數級的增長。也許在2020-2030年,通過5G和AI的變革,計算機正在吞噬一切可以數字化的東西,那時候數據的增長不知道會是什么恐怖級別?
顯然,這個時候的數據中心,已然無法承擔集中式帶來的各自延遲,緩慢,痛苦……
成本上漲
為什么邊緣計算還能節省成本?
幾十萬用戶的公司,只需要處理百級 QPS 的量,只需要 10 臺左右的服務器;
上百萬用戶的公司,只需要處理千級 QPS 的量,需要有 50 臺左右的服務器;
上千萬用戶的公司,需要處理萬級到十萬級 QPS 的量,需要 700 臺左右的服務器;
上億用戶的公司,其需要處理百萬級 QPS 的量,需要上萬臺的服務器。
以上數據不是完全標準的,但是可以確定的是像BAT,TMD這些大廠的服務器都是以萬計算的。
如上圖所示,十萬用戶到上億用戶,用戶量也就多 100 倍,為什么服務器需要1000倍?因為,當架構變復雜了后,你就要做很多非功能的東西了,比如,緩存、隊列、服務發現、網關、自動化運維、監控等……
如果我們能夠把那上億的用戶拆成 100 個百萬級的用戶,那么只需要 5000 多臺機器。
分擔計算
海量數據則能夠就近處理,大量的設備也能實現高效協同的工作,諸多問題迎刃而解。因此,邊緣計算理論上可滿足許多行業在敏捷性、實時性、數據優化、應用智能、以及安全與隱私保護等方面的關鍵需求。
這里舉個簡單的應用,假如一個項目有5萬個設備點,每隔5分鐘一次采集,那么一年后的測點數據可能就是100G量級。對這些數據的統計就會是一個耗時耗力的事情。
邊緣計算應用場景
既然邊緣計算是一種必然,那么邊緣計算會應用在哪些場景呢?我覺得至少以下這些場景會用到:
處理一些實時響應的業務。它和用戶靠得很近,所以其可以實時響應用戶的一些本地請求,比如,某公司的人臉門禁系統、共享單車的開鎖。
收集并結構化數據。比如,把視頻中的車牌信息摳出來,轉成文字,傳回數據中心。我們知道大華,海康等主流攝像頭設備本身自帶車牌識別等功能就是一個典型的應用
實時設備監控。主要是線下設備的數據采集和監控。比如,設備告警、設備聯動、設備管理、設備統計等
P2P 的一些去中心化的應用。比如:邊緣結點作為一個服務發現的服務器,可以讓本地設備之間進行 P2P 通訊。
邊緣計算的運用場景還是十分豐富的,還有很多是我們所想象不到的,我們正在期待神經網絡芯片助力AI智能,未來的設備必然會更加強大,更加邊緣化。
邊緣計算的技術?
邊緣計算涉及到的技術包括方方面面,這里截取要點分析。
API Gateway相當于一個門衛的角色,和設計模式的Facade(門面模式)很像,是系統的唯一入口。網關可以是一臺服務器,也可以是一個比較強大的設備。
網關還可以進行往下分層級,像眾星拱月一樣,最后通過一個大的門衛作為唯一的入口。這種星型的網關架構可以控制每個子網關或者叫子邊緣計算的粒度。當然這種架構也帶來更大的復雜度。
一個網關一般包含以下這些組件:服務注冊,請求路由,負載均衡,彈力設計,安全管控。此外網關對性能、集群和高可用也是需要考慮的一個要點,對于初創中的團隊,這些其實可以放在最后去考慮,后續業務起來后依然是一個必須考慮的重點,比如單點故障導致的所有訪問癱瘓,性能低下導致的請求延遲,或者沒有使用異步機制導致的吞吐量低下等等……
服務函數化(Serverless)
傳統的做法,我們都需要在服務器上持續運行進程以等待 HTTP 請求或 API 調用,而Serverless可以通過某種事件機制觸發代碼的執行。
"如果說微服務是以專注于單一責任與功能的小型功能塊為基礎,利用模塊化的方式組合出復雜的大型應用程序,那么我們還可以進一步認為 Serverless 架構可以提供一種更加 " 代碼碎片化 " 的軟件架構范式,我們稱之為 Function as a Services(FaaS)。所謂的 " 函數 "(Function)提供的是相比微服務更加細小的程序單元。"——左耳朵耗子
不同于微服務的是函數化更加碎片,而且無需進程等待,這是他的殺手锏。最后推薦兩個GO語言的開源框架
openfaas
fission
數據同步
邊緣和中心的關系千絲萬縷,就物聯網來說,中心需要的數據是什么呢?大部分是決策數據,也就是那些官老爺要看的數據,至于設備什么時候告警,什么時候出故障等等數據不一定要實時或者全部同步到中心,也就是說你的數據延遲一段時間并不妨礙,甚至隔天都問題不大。
如果要同步,一般如何做?
通過消息隊列寫時復制(Wirte And Copy),這種方式實時性高,有很好的削峰填谷。
通過DB層面發布訂閱進行數據同步,這種同步是日志級別的,性能有保障,但是調式有坑,不建議使用。
我所了解的建筑智能化設備設施這個行業,邊緣設備只要不是鬧人命的故障,比如電梯故障,火災報警什么的,大部分的業務其實都和錢和安全沒有多大關系,也就是對高可靠的依賴是非常弱的。當然不排除醫院或者機場等特殊情況。
總結
本文主要探討了物聯網領域的邊緣計算這個概念和簡單架構圖,接著簡單介紹為什么需要邊緣計算以及邊緣計算的使用場景和關鍵技術。邊緣計算和物聯網一起興起,還有很多未知等待探索,一起行動吧……
引用鏈接:
什么是邊緣計算?https://www.zhihu.com/question/35792003?sort=created
華為云IoT解決方案:https://e.huawei.com/cn/solutions/business-needs/enterprise-network/agil...
邊緣計算、霧計算、云計算區別:https://www.douban.com/group/topic/114686249/
邊緣計算:物聯網的下一個風口:https://new.qq.com/omn/20180925/20180925A0ZZRG.html
編輯:jq
-
物聯網
+關注
關注
2911文章
44837瀏覽量
375227 -
QPS
+關注
關注
0文章
24瀏覽量
8818 -
邊緣計算
+關注
關注
22文章
3109瀏覽量
49231
發布評論請先 登錄
相關推薦
評論