1. 程式人生 > >我們是如何實現邊緣計算與網絡動態加速的?

我們是如何實現邊緣計算與網絡動態加速的?

20px sel 我們 計算節點 基礎服務 延時 add base 建議

邊緣計算,一種通俗理解是將計算和存儲等服務放在網絡邏輯邊緣節點上的一種分散式架構,通過將原本中心化的服務分散到邊緣節點處理,讓數據的運算和存儲更接近數據來源,減少網絡傳輸的數據量和訪問延時。它不但側重邊緣節點,還強調節點之間的連接,因此就有了與網絡加速的契合。

我們在許多城市運營商的機房(節點)提供計算和存儲資源,並利用動態加速技術來優化節點之間的傳輸網絡,並搭建了一個機房、服務器層面的邊緣計算平臺(UODN)。這種方式適用於數據源能夠在各地存儲或運算、且較為依賴網絡傳輸的業務,例如網絡音視頻教育、醫療數據分析等。

在實現上,邊緣計算平臺與動態加速網絡也依賴了路由、DNS等一些基礎服務,幾個產品之間的關系如下圖:

技術分享圖片

從上至下,邊緣計算平臺由分布在各個城市、運營商的節點組成,節點間物理網絡可以互通。如果需要在網絡進一步優化,則依賴動態加速網絡,而動態加速網絡的實現除了加速服務器本身以外,還需要路由服務、DNS服務來提供路由和域名解析等數據。另外,路由和DNS也為CDN、直播平臺提供基礎服務。

那麽,邊緣計算、動態加速、路由/DNS這些關鍵服務又是如何實現的呢?首先,我們來看看邊緣計算。

邊緣計算

邊緣計算的核心理念是將數據的存儲、傳輸、計算和安全交給邊緣節點來處理。邊緣計算並非是讓終端自己負責所有計算,而是在離終端更近的地方部署邊緣平臺,終端與之通信可以有多種形式,這樣可以避免集中式雲計算中心的網絡延遲和傳輸帶寬問題。

在邊緣計算的實現上,我們提供了開放式分發節點UODN,將計算節點分布在全國的上百個數據中心,通過虛擬化、Docker等方式提供計算和存儲資源,用戶可以通過軟件自定義內容分發服務。

技術分享圖片

計算、存儲等資源分配上,建議將大量實時需要交互的計算如部分實施決策和自主協作過程在邊緣節點實現,一些需要集中式處理的計算如大數據挖掘、大規模學習等則繼續交由數據中心完成。

國內環境下,在邊緣節點提供計算和存儲,能夠讓數據能就近上傳、訪問,節點之間只傳輸核心的計算結果,即可減少非必要網絡傳輸帶來的延遲。然而,在跨國、跨運營商等弱網絡環境下,鏈路質量差,節點之間的網絡傳輸依然可能影響業務,因此我們需要融合動態加速網絡優化傳輸。

動態加速

區別於CDN,UCloud動態加速網絡並非依賴於緩存數據,而是通過對路由、協議等的優化來實現加速,因此在跨國、跨運營商這種質量差的網絡中有比較好的表現。下圖是UCloud動態加速網絡的網絡拓撲圖, 由分布在各地的加速點組成。

技術分享圖片

其加速原理和實現過程,主要包括四點:

首先,接入方式設置了HTTP(S)TCPUDP三種模式。

將域名CNAME到加速平臺後,加速點服務器就能接收到用戶數據包,HTTP通過域名(TCP/UDP根據端口查找配置),服務器根據配置獲取源站以及到源站和到路由的信息,並選擇路由將數據轉發往目標源站。

其次,加速網絡內部統一使用私有協議UTP傳輸數據。

每個加速點有接入和中轉雙重身份,直接對接用戶客戶端或源站的定義為接入點,接入點收到的數據一般通過UTP協議發往中轉點,中轉點之間也通過UTP傳輸。UTP是UCloud在UDP的基礎上實現可信傳輸的協議,支持流量控制、擁塞控制、快速重傳等,可以消除握手的時間,使傳輸控制更靈活。

然後,與邊緣計算平臺的融合,實現對用戶透明的動態加速。

我們會為邊緣計算節點提供加速IP,用戶程序使用IP地址即可使用加速網,不需要域名配置和修改程序。傳輸TCP、UDP數據時,內核模塊會捕獲並修改TCP/IP包,將數據包發送到加速網,同時在加速網註冊,以此實現對用戶透明的動態加速。

最後,如何達到更優的加速效果,主要有以下幾點思路:

  • 鏈路層/網絡層:選擇更優的鏈路,這裏主要是基礎設施的建設;

  • 傳輸層:對傳輸協議進行優化如:1.加速網絡內部采用UDP實現可信傳輸,優化握手時間;2.調整擁塞控制,采用更靈活的發送策略例如UTP;3.根據鏈路MTU大小進行切片發送,減少報文重組;

  • 應用層:優化業務程序,盡量使用長連接傳輸,減少頻繁建立短連接的時間和失敗概率。

路由服務

路由是指從一個接口收到數據包後,根據數據包的目的地址進行定向並轉發到另一個接口的過程。路由和域名解析服務主要提供對外接口,供給動態加速、CDN使用。

路由計算方面,建議先重復測試任意節點之間分時段的網絡質量數據,包括ping延時、丟包率、UDP大小包丟包率等,然後計算出全部節點之間的最優、次優路徑,最後根據歷史數據預測最優路由。

這裏,需要特別註意的是,時段不同、數據包大小不同,路由計算的結果可能不同。

小結

本文主要講解了邊緣計算和動態加速網絡的一些實現技術和優化方案,來幫助實現計算、存儲、網絡等資源的平衡。邊緣計算方面,主要是提高邊緣節點資源利用率,通過虛擬化技術讓資源管理更有效;動態加速網絡,則是通過優化路由、協議等方法,來優化兩點之間的網絡質量。

作者

梁旭:UCloud研發工程師,先後負責UCloud CDN、ODN、IDV虛擬化產品的研發,熟悉邊緣計算與動態加速等技術。

Post Views: 8


*本平臺所發布文章信息,版權歸UCloud所有,如需轉載請註明出處!更多文章見“UCloud技術公告牌”。

我們是如何實現邊緣計算與網絡動態加速的?