何为“边缘计算”?
來源 | 無敵碼農
責編 | 寇雪芹
頭圖 | 下載于視覺中國
在云原生除了K8S、微服務,還有...?中和大家聊了下關于云原生的話題,在云原生的概念中比較明確的一個特點就是云原生是基于云計算的。在這種模式下用戶的計算請求會被發送到云端服務進行處理,由云端完成復雜的數據計算后,再將結果以同步或異步方式返回調用客戶端。
這就是典型的互聯網"客戶端/服務端"處理模式。但這并不是說只有云原生架構的應用才是這種模式,傳統非云場景下的絕大多數互聯網應用也都是這種模式,而這種方式也是互聯網技術發展到今天最主流的計算場景。
只不過在這個過程中,隨著用戶數據計算規模越來越大,傳統的非云場景要支撐日益增長的數據計算規模,所需的計算資源成本會大幅上升。而在這個時候,具備彈性伸縮能力的云計算服務,就應運而生了!相對于傳統自建機房模式,使用云計算可以大大降低運維成本。
但這也只是從服務器計算資源的角度在看問題,要充分發揮云端服務的計算能力,還需要在系統架構上進行更合理的設計。而云原生架構模式就是從系統架構本身對整個軟件系統的應用結構、部署模式等進行結構性優化,這一切的核心目的都是為了提高在"客戶端/服務端"這種云端計算模式下服務的計算效率、提升用戶響應速度。
然而云原生架構也并不是終極解決方案,在目前以移動互聯網為主流的大數據時代,以及正在或即將到來的物聯網、AI時代,數據的增長規模將達到PB級別(1TB=1024GB,1PB=1024TB),面對如此海量數據,分析計算結果所要求的時間卻越來越短,在這種趨勢之下,云端集中式數據處理方式將越來越難以滿足這種需求。
我們也將被迫走到"邊緣計算"這條路上,這也是為什么最近兩年關于"邊緣計算"、"Serverless"這些新概念討論越來越多的原因。在今天的文章中,就和大家一起聊聊"邊緣計算"這個話題。
邊緣計算是什么
通過前面的敘述,相信你大概理解了邊緣計算到底緣何而來,那么它到底是什么,在現階段有何具體的落地場景及技術呢?
說起邊緣計算最常見的舉例就是章魚,作為無脊椎動物中智商最高的一種動物,章魚擁有巨量的神經元,但這些神經元中60%都分布在章魚的八條腿上,而大腦中的神經元只占40%。如下圖所示:
在這種生物結構下,章魚在捕獵時異常靈巧迅速,腕足之間配合極好,從不會纏繞打結。而這種類似于“多個小腦+一個大腦”的分布式協作方式,就是邊緣計算非常形象的表達。
回到我們所講的邊緣計算,它也是一種分布式計算:"在網絡邊緣側的智能網關上就近處理采集的數據,而不是將大量數據上傳到遠端的數據中心進行集中處理"。邊緣計算可以帶來明顯的計算優勢,具體如下:
邊緣計算可以更實時地進行數據處理和分析,讓數據處理更靠近數據源,而不是外部數據中心或者云,這樣可以縮短延遲時間;
減少網絡流量。在物聯網、AI時代隨著各類設備數量的增加,數據的生產速度飛快,如果將這些數據都傳回云端處理,那么將大大擠占網絡帶寬,造成更大的數據瓶頸;
降低預算成本。利用邊緣計算所要采取的本地設備采購及數據處理方案所花費的成本,要大大低于使用云或者數據中心處理所花費的成本。
按照上述說法,既然邊緣計算有這么多優勢,那么它是否就能取代云端計算了呢?實際上邊緣計算更適合物聯網和AI計算場景,邊緣計算準確的說是對云端集中式計算方式的一種補充和優化。以下我列舉了幾種有代表性的邊緣計算場景,具體如下:
其實還有很多其他場景,隨著物聯網、AI時代的到來,邊緣計算所延伸的場景將更加豐富。但說到這里,似乎邊緣計算與咱們做互聯網服務端的好像沒有啥關系啊!但實際上技術都是相通的,雖然目前邊緣計算更側重于物聯網/AI等領域,但是邊緣計算的思想其實早就在互聯網“客戶端/服務端模式”中出現過,例如以Ajax為代表的“富客戶端”技術,其本質就是一種減少服務端計算量的邊緣計算思想。
只不過目前我們所談論的邊緣計算所涉及的層次要更加復雜,而不僅僅只是單個客戶端的簡單分散計算。就現階段來說邊緣計算的關鍵技術主要集中在以下兩個方面:
在上述兩個關鍵技術方向中,邊緣網關技術更多的是偏向于網絡邊緣設備的計算能力,例如5G基站。所以這方面技術的發展由于行業及場景的不同,目前也沒有一個統一的標準,另外這方面的內容也的確超出了咱們做互聯網所涉及的技術范圍。
因此,關于邊緣網關技術的內容就不過多討論了,接下來我們重點看下與互聯網相關性更多的Serverless技術。
Serverless
從嚴格意義上來說,邊緣計算與Serverless從定義及概念上并沒有直接的關系。這主要是因為邊緣計算與Serverless當前的應用場景還沒有凸顯出來,但從目前業界活躍的討論氛圍來看,Serverless技術未來有極大的可能會被應用于邊緣計算場景。因為邊緣計算的核心目的就是把原先必須在云端計算的邏輯放到邊緣設備上去,從而更快地響應用戶的操作需求,但要做到這一切就必須讓邊緣設備具備靈活執行用戶計算代碼的能力。
而以Serverless為代表的"云函數"技術,可以讓用戶在云端以比微服務粒度更細的單元去編寫邏輯計算代碼,但這種代碼與傳統云端運行的服務不同,它本身并不是一個持久存在并固定運行在某個服務器或容器中的進程,而是可以根據真正的用戶事件進行觸發式運算。在這個過程中,云服務所做的只是提供代碼和配置的托管,以及根據事件觸發運算調度,而真正的計算則是將"云函數"代碼具體下放到某個具體的邊緣設備去運行和使用。
這種無服務器計算的方式,能夠非常巧妙的將云計算的調度能力與邊緣具體算力有機結合起來,從而形成一個"大腦+多個小腦"的分布式計算系統。接下來我們具體看下Serverless的概念:
如上圖所示Serverless從架構上主要可以分為:BaaS(后端即服務)、FaaS(函數即服務)兩部分。
后端即服務(BaaS)說的是盡量使用現成的第三方服務來替換我們原來自己編碼實現或搭建的服務器組件,它從概念上更類似于SaaS服務,例如直接使用云服務所提供的各類技術服務——COS對象存儲、CDN容分發、CDB云數據庫等。從技術實質上說Baas本身并沒有什么新奇之處,更多的是一種盡量使用第三方服務來減少自己構建通用基礎服務的概率,而盡量做到無服務或少服務。
而函數即服務(SaaS)則是一種構建和部署軟件的全新方法,它為云中運行的應用程序提供了一種新的系統體系結構。在這種結構之下,再也不用在服務器上持續運行服務進程以等待HTTP請求或調用,而是可以通過某種事件機制來具體觸發函數代碼執行,這是一種更節省成本的云計算方式。
目前許多云服務廠商都在抓緊布局Serverless技術,可見Serverless技術的發展將是大勢所趨。下圖為騰訊云所提供的云函數產品界面示意圖:
現階段Serverless技術還處于早期發展階段,相信隨著更多應用場景的落地,在不久的將來Serverless技術必將被廣大企業和開發者所接受,從而成為改變現有軟件開發部署模式的新一代技術潮流。
以上就是本文想要表達的全部內容,感興趣的朋友可以找個Serverless云服務產品(如騰訊云云函數或Serverless Framework)具體體驗下Serverless的開發流程!如果覺得本文對你有所幫助,歡迎點贊關留言~
參考資料:https://blog.csdn.net/qcloudcommunity/article/details/79388590
關于?Devops 技術,我們還有
云原生除了K8S、微服務,還有...?
如何搞定 K8S 微服務自動化發布系統
如何部署一個Kubernetes集群
Docker私有鏡像倉庫是什么?
上手 Docker 容器,不應該是個問題
什么魔力讓 Docker 一發不可收拾?
編程祖師爺尼古拉斯?威茨:算法+數據結構=程序“一學就會”的微服務架構模式除了 k8s,留給 k 和 s 中間的數字不多了!到底是誰發明了物聯網?再見 Nacos,我要玩 Service Mesh 了!點分享點收藏點點贊點在看 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 赠书 | 隐私计算:让你的数据信息不再“
- 下一篇: 趣谈程序员真香定律:源码即设计