當前位置:
首頁 > 科技 > 一文談盡邊緣計算

一文談盡邊緣計算

1. 誠意炒冷飯

最近半年裡,AI談累了、區塊鏈談倦了,大批雲計算公司找到了新的熱點——邊緣計算。我認可邊緣計算是比肩雲計算的星辰大海,但是我看到這些PR稿都是炒冷飯和自吹的尬聊。

有人會把邊緣計算說成IOT,有人會把邊緣計算說成超融合,有人會把邊緣計算說成分散式P2P計算,有些人會把邊緣計算說成邊緣機房。

另一些邊緣計算的PR稿純粹就是拼稿尬聊"高大上",看不到任何有用的東西。

好事多磨,成事在天。雲計算、AI和大數據都是炒過幾次冷飯才變成盛宴的,但碰運氣炒冷飯就是浪費讀者和用戶時間了。

我重新奉上邊緣計算這盤冷飯,是帶著誠意說明:

邊緣計算的冷飯要變盛宴了。

2. 為何會有邊緣計算

好雨知時節,當春乃發生,5G網路出,邊緣計算成。

4G時代即存在的數據爆炸和海量終端接入,無論服務端還是客戶端都承擔著巨大的壓力性,大家急需探索一條新的出路。隨著5G帶來的網路變化,邊緣計算從隔夜冷飯變成了春夜喜雨,自身有技術可行性,業務也有迫切的需求。

2-1. 伺服器端在負重前行

我可以武斷地說,最近十幾年服務端架構一直在規避問題而非解決問題,服務端就是典型的小馬拉大車。

我們把視角回到2010年,那時候tomcat的並發不超過800,mysql的並發就是500以下;萬兆網卡加SSD盤打破了性能瓶頸,讓很多服務端應用得到了倍速提升,但後台服務的設計和調優是停滯狀態的。大部分服務端程序只設計了數千並發,像LVS、Nginx這類能跑數十萬並發的服務是特型異數。

企業越來越需要架構師,是因為單體服務沒什麼好優化的,能優化的只是組合架構。當企業遇到海量需求時,或者隊列非同步排序,或者分服務分庫。

這就像2G時代一輛轎車裝上10個摩托發動機,到了4G時代給大貨車裝了100個摩托發動機。5G時代是不是要郵輪裝65535個摩托發動機?伺服器端除了計算問題還有網路問題,廣域網帶寬的高成本和高延遲,讓很多技術選型不具備可行性。比如主流VR都選擇本地計算,就是部署服務端VR的網路延遲過高、帶寬需求過大。

隨著帶寬和流量降價,以及AI大數據和IOT技術的進步,伺服器群集的性能、容量和接入帶寬越來越捉襟見肘。

我們去觀察那些佔據資源最多的伺服器端運算(比如生成各種視頻流),大都並不需要集中處理,甚至不關注過程一致性;被CAP原則限制的分散式服務群集,其實該向BASE模式過渡了。

只要應用協議不變,不可能上一波寫服務端的程序員總是笨蛋,服務端深度優化餘地也不大,伺服器端就像一匹拉大車的小馬,拉不動貨車就再來幾匹馬。

2-2. 客戶端受盡軟硬限制

客戶端生態有硬體和環境限制,有系統和分發渠道卡脖,C/S軟體架構上默認也把客戶端當做不可控因素。一層層限制耗盡了客戶端開發圈的活力,客戶端似乎被「天經地義又無可奈何」的限制住了想像空間。

我們首先看硬體配置限制,無論是電腦、手機、家用智能終端甚至工業IOT網關,在激烈的市場競爭下,客戶端硬體配置從來就是半年就落伍,三年就淘汰。

家用智能終端大部分時間是閑置待機,但在響應需求的瞬間絕對是滿負荷運行的,否則就是成本控制沒到位。

一個手機廠商拿捏不準是否該集成某種計算晶元,集成了新晶元會成本提升,不集成該晶元又缺乏吸引用戶新功能。

我們再看功耗限制,台式機電源要捨得用銅料,手機鋰電池已經服役超過20年了,無風扇工控機的功耗影響散熱上限,IOT設備的功耗極大影響部署難度。

上述四種硬體的複合體是筆記本電腦,操作系統升級和低功耗SSD使其續航時間超過了5個小時,但玩個中配遊戲仍然會風扇狂轉鍵盤燙手,然後又沒電了。

第三個問題是軟體安裝部署的難度,商業工程軟體我不太了解,我就舉幾個遊戲的例子。《全戰三國》有18G,《魔獸世界》40G,集成Model的《老滾5》很容易過100G,應用下載就很麻煩,後面還有安裝和更新的難關以及版權驗證等問題。

我也藉機誠邀遊戲引擎開發者們談談,大家因為功耗/配置/安裝部署問題放棄了哪些激動人心的炫酷功能?看完全文你們會意識到,這些限制都是可以改變的。

最後一個問題才是重頭戲,客戶端開發者在程序分發生態中一直是弱勢被勒索的位置。一個APP想在發布運行——技術的、商業的、渠道的、運營的、抄襲的、黑產的,這些攔路虎或者要分享利益,或者就是要禁止你的APP。

這和上個問題的本質是相同的:一個客戶端應用只是個用戶進程,沒有許可權去掌控系統全局狀態。但這個客戶端應用在運行過程中,又依賴這些全局資源的配合。

客戶端開發,不應該被這些「天經地義又無可奈何」的軟硬體限制綁住想像空間,這些軟硬體限制在邊緣計算面前,都是可笑的擺設和無限的商機。

2-3. 5G是邊緣計算的最大助力

現在能確認爆款5G應用的人早就去創業了,我們只從5G的物理特性看未來的架構問題。

在4G時代,舊IT架構已經是累卵危石頭,幸好CDN扛下了一大半業務負載才沒有徹底崩盤。5G會增大架構危機的壓力,讓舊架構湊合不下去,但5G的物理特性又給新架構指明了一條新路。

首先5G導致客戶端節點的數量和帶寬的增加,普遍預測客戶端接入數量和接入帶寬要翻十倍百倍甚至更多,這些新興應用一開始只能降速適應舊架構,但是從工程量級上有了引入中間層的必要性。

一個系統只有5萬個QPS,架構師引入中間層是過度設計;如果新系統有5億個QPS,架構師引入中間層才算是正經做設計。

大家都知道5G有高帶寬,但更有價值的是邊緣網路的超低延遲。現在對延遲敏感的邏輯只能放到客戶端本地,而5G時代,邊緣網路延遲穩定小於10ms。5G網卡的速率和延遲在超越很多本地設備,網卡可以復現當年SSD盤的救駕之功。

典型5G帶寬的吞吐速率是100Mbyte/s,讀寫延遲10ms甚至5ms以下;SATA硬碟理想讀寫速率能到150Mbyte,而延遲則是看磁頭的運氣了。顯示器和鍵鼠本來就有毫秒級延遲,大部分用戶根本不介意多上10ms的網路IO延遲。

當數據放在「客戶管不著、廠商摸得到」的邊緣端時,數據的管理和運營就突破了純客戶端的藩籬了。

網盤數據可以集中反盜版和鑒黃;雲主機可以代維護,容器群集可以集中更新漏洞;如果是用戶書房的個人電腦就沒這些便利操作了。

服務端無法預知客戶端會何時連接的,客戶端需要有序排隊和數據預處理,否則容易出現瞬時擁堵。5G時代客戶端會增加十倍百倍,必須有分散式中間節點對億萬QPS進行整流排序,並進行適度的數據預處理,這樣伺服器端的壓力承載才會有序可控。

危機危機,危險的背後就是機遇,牛頓不是第一個被蘋果砸到的人

3. 邊緣計算是架構革命

前文聊服務端、客戶端和5G,本質都是在聊C/S架構的危機。4G時代已經把優化軟體和升級硬體的潛力榨乾了,我們必須從架構角度引入Edge端,讓邊緣節點來承載大部分5G業務壓力。

我們清晰的看到,邊緣計算的本質是一場架構革命:

計算機剛開篇時所有軟體都是單機軟體,單機軟體只有功能沒有服務。CS模式開始有了「服務端」的概念,服務端最早只是單機處理幾千個輕量請求,現在要數萬台伺服器端並發處理上億個重負載請求,這已經超過了C/S架構的極限。

邊緣計算的本質是CES模式取代CS模式,引入Edge端是解決CS模式跑不了重載業務的最好辦法。

在5G以前,網路計算的延遲遠大於本機計算延遲,Edge端只能跑可緩存的視頻圖片做CDN。現在CDN是最成熟最成功的雲產品,價格戰只是瞬時商業表象,CDN從產品角度已經贏的很徹底了。

有了5G低延遲網路的支撐,Edge端可以承擔取代本機客戶端的算力工作,可以解決前文提到的大量伺服器端和客戶端危機。

對於伺服器端來說,Edge端會把訪問請求在本地網進行排序和預處理,能夠承擔大流量訪問和分散計算壓力;對於客戶端來說,Edge端的運行環境可控,算力強大電量無限,Edge端計算也不依賴於雲端服務端。

Edge端是一個新增的角色,引入Edge端和服務端常見的「分久必合、合久必分」並不是一回事。C/S架構引入了Edge角色必須要進行慎重繁瑣的IT架構升級,這會佔用大量人力物力,但下文會說明做這個選擇是值得做的,而且CES架構改造的難度還在可控範圍內。

4. 邊緣產品的分類

很多產品都是自稱「邊緣計算」,我們必須將這些同名產品進行分類,否則大家說的「邊緣計算」可能根本不是同一類東西。

從產品目的來看,邊緣計算大致分為三類,分別是物聯網邊緣計算、邊緣節點計算和P2P邊緣計算。從部署位置來看,邊緣計算可以部署在城域網端,基站端和接入端,甚至SDK都可以叫邊緣計算。下文對幾大同名產品進行辨識,為避免嘲諷效果,本章節沒配圖。

4-1. 物聯網邊緣計算

物聯網邊緣計算能見到震撼人心的實物照片,軟體研發又敬畏新硬體,所以這種邊緣計算最火爆。

這些邊緣計算最大的缺點是,他們只是其他行業的附屬品,無論是箱子和卡車,還是IOT網關加感測器,本質上都是為其他服務做嫁衣。比如某知名手提箱的官網介紹,無論是拷貝數據、小型私有雲還是數據預處理,這個手提箱的最終目的仍然是讓這些數據上雲。另外一些知名IOT邊緣產品,它們的目的就是認證硬體、快速接入IOT和上傳數據到雲平台。

物聯網邊緣計算的本質著力點是物聯網或者雲計算,而不是邊緣計算。

4-2. P2P邊緣計算

P2P傳輸和計算是個古老的行業,一直走著「特定內容借流量」和「特型應用借算力」的巧路,所有的計算和傳輸負載都在客戶端,服務端只做輕量級調度。

所有的輕巧都要付出代價,整個P2P網路里都是招募的不穩定邊緣節點,「特定內容」和「特型應用」就是適用性不廣泛、只能對接幾個大客戶的意思,而大客戶的議價把控能力太強了。

隨著5G和下文另一種邊緣計算的興起,P2P傳輸和計算可能會拿到通用穩定的邊緣節點,最終開發出更有價值的上層應用,但它是邊緣計算的客戶而非本尊。

4-3. 伺服器邊緣節點

在伺服器上部署邊緣節點聽起來就很熟,很多人就笑起來了,聊這麼半天,這不就是談CDN嗎?

CDN是最成功的雲服務,大量售賣且完整解決客戶問題,CDN售賣殺價是商業套路,研究不出新花樣更證明其完美。某些淺薄的人嘲諷CDN的邏輯,有點像嘲笑胡蘿蔔沒有大蒜的味道。

邊緣網路 邊緣IaaS算力 網站服務,這就是CDN;把網站服務換成視頻服務,這就是點直播;如果把應用層換成通用邊緣計算框架,再通過5G把延遲降低到10ms以下,這就是邊緣計算。

伺服器邊緣計算和CDN並不相同,為了擁抱通用框架,某些為CDN優化精簡的功能要補回來,還要繼續加新功能新資源,而且用戶群在發生變化。2020年以後,雲原生程序越來越多,程序員們越來越習慣使用K8S等新一代技術架構,這對邊緣計算也是個利好消息。

邊緣計算現在只做IaaS資源和容器雲就夠消化三年市場紅利,將來會出現(除了CDN之外)所有行業的PaaS邊緣雲。

4-4. 運營商邊緣計算

有些邊緣廠商誇大運營商的基站節點能力,其實就是做通訊的和做IT的互不了解,智子疑鄰,自己嚇自己。

雲計算業者連鐵塔公司和運營商的分工都不了解,那就更沒去過基站和接入機房惡劣的施工環境了。就算有高溫X86伺服器,我們也要考慮維修難度、狹小的空間和其他能聊一萬五千字的施工問題。

運營商如果在匯聚機房和綜合接入機房部署x86伺服器,這裡比城域網機房快不了幾毫秒,網路延遲沒發生質變。這些過度近緣小機房的覆蓋用戶過少、資源池過小,客戶從這裡獲取數據的速度會比邊緣大機房更慢。

比如某城域網機房覆蓋10萬用戶,默認放20台伺服器,載入100個功能模塊;某小型近緣節點只覆蓋1萬用戶,只能放2台伺服器,載入幾個功能模塊。

對於本節點沒有載入的功能模塊,小節點或者去其他節點借數據,或者引導客戶端去遠端訪問,兩種方法都會比城域網機房的開銷大很多。

運營商和雲廠商在4G時代就相互有過誤會,但不打不相識,最終運營商成為了可靠的網路供應商,在邊緣計算時代大家更會緊密合作,共同承載客戶和解決問題。

總結這一章節內容,我對幾種邊緣計算產品的意見很明確:

我最看好城域網機房裡的伺服器邊緣節點,它們可以自負盈虧、有通用化的潛力、有CDN做趟路先驅、到客戶群的覆蓋和距離適中。

5. 邊緣計算的客戶價值

邊緣計算的業務價值主要體現在對客戶端的減負和控制上,讓很多過去無法想像的業務有可行性。

這一部分和前文的2-2有重度關聯和重複,但前文說的更多是限制,本段落更多說的是夢想。

5-1. 硬體設計更靈活

我們先看客戶端減負,5G邊緣網路可能比本地磁碟等零部件速度更快,這是個人計算機從未有過的新變化。

雖然手機通訊模組的功耗也不小,但手機廠商不會生產上網兩小時就沒電的手機的,對此我保持謹慎樂觀態度。給客戶端做減負,最終用戶能感覺到流暢度提升和電量提升,部分用戶還會為此付費。

我們考慮問題要稍深一些,客戶端減負最終能讓客戶端和邊緣端融合,甚至影響到硬體設計。

比如買手機都要考慮快閃記憶體空間,iCloud買50G的空間,五年才花360塊錢,這比給Iphone擴充手機內存合算多了。當文件從集中分散到就近邊緣,客戶讀取網路文件的速度不比本地慢,5G手機就不用買那麼貴的快閃記憶體了。當網盤的數據大到無法下載到手機時,客戶換新機時也必須用同一品牌同一賬戶才能遷移了。

邊緣端還能給客戶端的計算壓力減負,最終讓客戶端的硬體設計方式發生改變。各種長壽命客戶端,比如智能家居、電腦還有IOT設備,其輸入輸出裝置都能用5-10年,但計算組件在三年內肯定會落伍;對於手機來說,試水新硬體經常是一次冒險。廠商在設計硬體時,如果可以將某些功能放到邊緣端,將會獲得巨大的靈活性。

注意動圖,鋼鐵俠是臨時就近裝配了增強護甲

5-2. 改變應用發布生態

邊緣計算可以從軟體控制層面改變整個客戶端軟體生態,技術上可以將客戶端的運算功能全部放在邊緣端,本地只保留一個視頻播放器。這個想法雖然瘋狂但不離譜,帶來的好處顯而易見。

首先是客戶端的分發渠道的變化,現在各種分發渠道都會收APP的買路財,每個人手機上要裝數十個APP。當任何一個APP都只是個視頻播放器時,一個短視頻APP可以推送遊戲視頻流,一個遊戲可以內置交友平台,舊的APP分發渠道根本堵不住這個口子。

困擾單機軟體幾十年的盜版問題,可能通過邊緣視頻化來解決。我見到的所有雲遊戲客戶,都在向遊戲平台類Steam方向進化,虛擬化算力是小生意,賣遊戲版權和分發渠道才是大生意。

隨著邊緣APP的訪問流暢性逐步得到驗證,邊緣視頻流天然比本地文件更保密安全和方便控制,各種在線辦公系統的使用體驗會和本地辦公軟體一模一樣。

軟體逃脫的只是枷鎖,獲得的將是新的世界

5-3. 單一應用留住客戶

當一個APP可以all in one其他APP時,用戶的訪問軌跡不會跳出該APP,給產品運營提供了新的想像空間。

現在用戶在某視頻APP里做遊戲和電商引流,轉跳到電商和遊戲APP就結束了。而未來完全可以購買同一樣東西不出本APP,A用戶走的京東、B用戶走的天貓、C用戶走的自建商城;本APP推廣的遊戲也能參與內購分成,遊戲分享視頻必須打本APP水印。

5-4. 對技術部門的價值

我們看到了對公司全局的業務價值,再看一下對技術部門的價值,我們要說服客戶的IT部門,配合邊緣計算做CES架構改造。

對IT部門來說,雲計算是個愛恨交織的議題,猛增的IT需求讓IT部門規模增大,但是雲資源廉價又充足,讓很多繡花針一樣細緻的架構調優變得無足輕重。大部分高級工程師面對虛擬抽象化的雲平台,他們只能挑剔極限性能和網路抖動,我理解這是種無聊和落寞。

在業務部門認可了邊緣計算的價值以後,這些高級工程師就能努力將CS架構改變CES架構,這種體量的架構變動並不是一日之功,三五年的時間都能耗進去。我們可以看到一群聰明人,能做有價值又有難度的IT技術工作,這是一個積極互利的正循環。

6.邊緣產品的演化

6-1. 邊緣和雲的關係

討論邊緣計算產品前,我們先要清楚邊緣計算和雲計算在產品層面的關聯。

狹義上的雲計算產品是對伺服器端進行替代的組件,比如虛擬機、RDS、OSS等組件;廣義上的雲計算泛指所有雲廠商為客戶完成的IT服務。在同一個雲廠商體系下營銷售賣時,邊緣計算就是廣義雲計算的一部分,在獨立產品設計時,邊緣計算不要受其他雲產品的誤導。

6-2. 邊緣IaaS節點群

邊緣計算廠商先要做好IaaS節點群,邊緣IaaS是「節點群」而不是「資源池」,搭建和維護這個節點群是要精工出細活的。

在邊緣場景下,算力載體選擇容器會比雲主機更合適,這是要篩選對邊緣算力和網路有大量需求的客戶,而且為未來做大邊緣PaaS留下技術介面。

邊緣網路內部幾乎都是南北流量,沒有東西流量,而且它是「節點群」而不是「資源池」,所以不能套用雲端網路的設計運營經驗。邊緣應用90%的流量仍然是多媒體視頻,但其數據生成和分發邏輯不能抄襲CDN。

IaaS節點群 vs 海豚一大群

6-3. 邊緣PaaS方案

在邊緣IaaS節點群逐步穩固的過程中,邊緣PaaS產品會根據技術棧進化出不同分支,限於篇幅我只總結不展開細聊了。

首先成熟的產品大類會是定製化視頻應用,類似用戶自主跨雲調度、私有加密協議、客戶自建邊緣雲等場景。

第二大類是以雲遊戲為技術切入點,後續將進化成所有客戶端在邊緣端計算後,本地APP實際是視頻播放器。

第三大類PaaS產品會是「IOT邊緣計算」的宿主平台,無論工業、安防還是家用IOT都需要邊緣端做為承接載體。

客戶端默認就是碎片化的,邊緣PaaS是在模擬和分擔客戶端工作,所以這些PaaS平台也會細分化;比如同樣是雲遊戲,射擊類遊戲和即時戰略遊戲的PaaS產品會有明顯區別。邊緣PaaS產品在細化過程中會雞兔同籠的錯位競爭,最終會像一群細分領域各自稱霸商業軟體,而不是大一統的雲服務。

最終每種PaaS方案像每種小鳥一樣不同

7. 邊緣改造的原則

邊緣計算要求客戶的IT服務從CS架構改成CES架構,我從五個角度向大家解釋,IT服務做邊緣化改造時應遵循的設計原則。

第一,從Edge單點角度,Edge端單點有計算有流量,但無邏輯無狀態。

邊緣端的SLA並不高,默認每個節點都可以放棄,無邏輯無狀態的節點隨時可以大範圍彈性伸縮,也方便客戶端容錯。

第二,從資源負載角度,大量公網IO、較低連接延遲、大量算力負載。

這就是篩選邊緣計算的目標客戶,避免無意義的瞎折騰。如果沒有大IO低延遲需求,那放在雲端架構更簡單,如果沒有大算力負載需求,本地客戶端自己計算是最優解。

第三,從節點架構角度,節點間節點內彼此獨立,較少內聯依賴和相互判斷

保證高效率運算就要減少依賴,比如CPU算一份數據只要1ms,從硬碟讀數據可能要10ms,從雲端資料庫取數據就要100ms了。

前文產品設計部分,我推薦的邊緣容器雲都要做功能簡化和性能強化,不推薦邊緣雲主機,就是因為VPC和雲硬碟在高性能邊緣場景里價值並不大。

邊緣節點會將複雜邏輯丟給雲主機,將持久化數據交給對象存儲服務,但自己不要做這些複雜邏輯。

第四,從業務數據角度,從實時一致性向最終狀態一致性優化

邊緣計算是個大規模分散式系統,根據CAP原則,我們不可能捨棄可分區性,而邊緣主打招牌就是高性能,最終只能犧牲數據的實時一致性了。

用戶必須將業務數據拆分,對於強一致性數據必須放回CS架構中。客戶要區分:哪些數據是可以覆蓋累加的,哪些數據是可以冪等重試的,哪些數據是可以延遲擴散的,運行環境要預先部署到邊緣節點,還要區分出大量可以直接丟棄和簡單重建的數據。

第五,從工程的角度,必須做服務架構改造,自研或應用全新架構。

企業IT部門必須放棄無縫上邊緣的幻想,無論是自研還是借鑒,都必須應用全新的CES架構,邊緣計算改造將是一場五到十年的攻堅戰。

邊緣計算能帶來業務價值,其技術實現又這麼麻煩,被雲計算冷落的IT架構師們,很快就能回到聚光燈下舞台中央。

8. 邊緣計算的負面焦慮

邊緣計算的各種負面焦慮,反推過來都是破繭成蝶的關鍵點。

我最擔憂的是5G網路的發展速度,最悲觀估計最近幾年都是4G降資費的性質。

5G發展過慢會導致5G應用發展過慢,但運營商不可能預建設一張空載的5G網,而5G應用不爆款,客戶就沒有改造CES架構的動力。5G應用和5G網路是先有雞還是先有蛋的關係,邊緣計算是忙著搭窩撿蛋的,5G發展緩慢必然會影響到邊緣計算。

我的第二個顧慮是商業模式和市場認知,會讓邊緣計算陷入低附加值的泥潭。

當前4G時代試水邊緣計算的大型客戶,他們的訴求仍然是省帶寬成本,會儘力壓縮邊緣IaaS的利潤。只有5G應用要依賴低延遲邊緣網路,而且中型客戶也開始接入邊緣計算平台,邊緣計算平台才有充分的議價權。

我最後擔心的是從業人員的模糊蠻幹。各種邊緣計算只是名字相同,相互之間沒任何關係,從業者很難形成統一觀點和標準,很容易雞同鴨講各說各話。邊緣計算的行業跨度之大覆蓋之廣,在大部分公司里,超出了單個產研部門的能力範圍,很容易因為部門分工而畫地為牢。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 架構師技術聯盟 的精彩文章:

詳談NVMe和NVMe-oF架構和知識點
NVMe Over Fabrics架構概述

TAG:架構師技術聯盟 |