近日,阿里雲技術專家徐若晨在全球分散式雲大會上,分享了《邊緣容器雲助力AI推理高效落地》的主題演講,分享了阿里雲邊緣容器雲如何助力開發者實現更快速的AI推理應用的迭代和部署。此外,他還分享了邊緣AI推理應用在實際業務中的應用案例。
終端算力上移 雲端算力下沉
客戶在邊緣部署時面對的挑戰包括:首先,構建自有邊緣機房的時間週期長,資本成本高,且常常需要處理裝置的遷移與淘汰,這使得相對於傳統資料中心,邊緣機房的服務水平協議(SLA)表現較為遜色。其次,由於邊緣環境受到物理條件的限制,單個叢集的規模往往較小,最多包含幾十到幾百臺伺服器,導致業務的擴充套件性不夠強。儘管如此,由於需要部署較多這樣的小規模叢集,並且它們通常具有明顯的地域特性,因此這大大增加了叢集維護的成本和複雜度。
邊緣雲給客戶帶來的價值有這些:首先是提升了交付效率,做到秒級算力交付;其次是降低了成本,可以按量付費,彈性擴容;另外可運維性也有較大的提升。其實本質上來說,這幾方面,都是上雲帶來的價值。那麼邊緣雲由於其廣覆蓋,低延遲的特點,可以使終端使用者獲得時延更低的算力資源,從而提升終端使用者的體驗。一方面,透過終端計算的上移,去獲得更多的算力,提升業務的靈活性。另一方面透過雲端算力的下沉,來降低成本、縮短時延、提升使用者體驗。
雲—邊—端模式的優勢
對比中心Region來看,邊緣雲實際是一個雲端算力下沉的過程。將更多的服務放在邊緣上執行。分散式部署,來應對高併發場景,解除安裝中心伺服器的負荷。流量在邊緣雲這一層進行收斂,可以有效的降低中心Region的頻寬,從而降低成本。邊緣雲本身的特點是離使用者更近,時延更低,更加適合一些互動性更強的業務。
對比終端程式來看,邊緣雲實際是一個終端算力上移的過程。將更多的終端服務跑在邊緣上,實現終端瘦身。在這個過程中,開發者可以獲得更加標準化的運維方式,做到雲邊一致的體驗,使得應用程式可以更高速的迭代,減少終端發版。邊緣上豐富的生態及常用的中介軟體,可以使應用程式的實現更加靈活。
此外還可以提供專屬的ARM陣列、 GPU硬體等異構資源,使得應用程式的效能可以進一步提升。例如當前所說的AI推理等應用,它就需要GPU硬體資源,跑在終端上的可能就比較小。
邊緣容器雲技術架構幫助AI推理應用高效開發和部署
從下往上看,最下面這一層是資源建設和運維的平臺,主要作用是將各種物理資源透過統一的模型納管到系統中來,透過這一層去向上提供統一的介面。另外一些基礎資源的運維也是在這裡。
往上是異構資源納管,簡單來說就是要將各種資源接入k8s叢集中去,無論是ARM陣列,帶有GPU的伺服器等,在K8s中都體現為一個Node。
由於前面提到的邊緣資源的規模很大,在一個K8s叢集中無法容納,所以再往上是叢集的管理和融合排程,它對上提供的是一個標準化的k8s介面。使使用者可以透過一個K8s叢集,將應用部署到所有的邊緣節點中,而不需要考慮太多分散式的邏輯,是保持雲邊一致體驗的重要組成部分。
再往上是邊緣特性的增強,邊緣就要有邊緣的特點,突出邊緣的優勢。結合邊緣雲的特性,我們做了域名服務匯出,邊緣資料集分發,映象加速,工作負載增強,以及超大規模的服務網格,讓使用者可以更方便的使用邊緣的能力。
這些能力可以以K8s的形式使用,也可以透過我們應用管理功能來整合使用,使用者可以自主選擇。一般來說,如果使用者有自建的釋出管控系統,可能對接我們的k8s介面比較多。如果使用者更多的注重於應用開發,暫無精力投入建設自己的釋出管控系統,直接用我們的應用中心的能力也是可以的。
最上面是能力開放層,本質是期望使用者、開發者,能基於下層提供的能力,透過適合自己的方法,把業務跑起來。助力AI推理應用的高效開發、部署,發揮邊緣計算的價值,就會重點用到上面介紹的這幾層能力。
邊緣資料集讓應用開發者高效使用模型和資料
通常一個AI推理應用,它是需要一個模型檔案的,這個模型檔案有不同大小,需要在推理應用的程序中讀取模型。可以說,模型檔案是AI推理應用必不可少的部分。針對這一特點,我們設計了邊緣資料集分發功能。提前傳到我們的邊緣協同儲存EOS或者是中心物件儲存OSS上的模型,可以透過簡單的來源配置,製作成我們定義的邊緣資料集。它可以隨你的容器分發到不同的邊緣節點,依託阿里雲邊緣雲團隊長期技術積累和資源優勢,讓資料集可以做到高效、安全、迅速的分發。透過邊緣資料集分發能力,AI推理應用的開發者,可以便捷的在自己的程式中讀取、使用模型和資料,更加專注於應用的開發,提升效率。
開發者只需關注一個租戶叢集即可實現全域算力管理
透過前面提到的多叢集管理、融合排程、異構資源管理,我們為使用者提供多租的虛擬K8s叢集。在租戶K8s這個層面上,他是多租並且是硬隔離的,不會因為其他使用者的異常操作而影響到你。一般為了管理不同地域的資源,通常需要使用多個K8s叢集,但是在我們這個架構下,開發者只需要關注一個租戶叢集,把自己的Pod建立在自己的租戶叢集中,我們的融合排程和多叢集同步功能就會將Pod同步分發到眾多的邊緣節點。開發者不需要投入過多的精力去關注多叢集管理,叢集規劃等細節,這些我們替他搞定。
此外,我們還支援使用者定義的資源使用策略,不管是關注時延,還是關注成本,都可以自己定義。透過全域算力覆蓋的能力,我們希望能讓開發者體驗到雲邊體驗的一致,可以更聚焦於自己的應用業務邏輯。
邊緣映象服務提高開發者部署應用的效率
部署的過程中,會涉及到映象使用,接下來介紹邊緣映象加速能力首先我們的邊緣映象倉庫和應用中心的賬號體系是打通的,也就是說在應用中指定了邊緣映象地址之後,無需單獨維護使用者名稱密碼的配置,我們會自動在應用中注入,開發者以外的人看到的還是一個私有映象倉庫,開發者感受到的是一個免密拉取的倉庫。
其次依託邊緣雲在檔案分發場景的長期積累和沉澱,我們構建了映象快速分發到邊緣的能力,以及映象的主動預熱能力,以支撐超大流量規模的併發,為擴容提速。
此外,我們的映象倉庫還支援與各類DevOps流水線整合,最佳化開發者使用體驗。還是那句話,我們期望開發者把應用部署到邊緣,去獲取雲邊端架構帶來的收益,同時減少因為應用部署位置差異帶來的負擔。
域名匯出服務方便開發者進行簡單部署提高應用訪問體驗
應用部署完成之後,接下來需要考慮應用如何提供給終端使用者訪間,基於這樣的訴求,我來介紹一下我們的域名服務匯出能力。
使用者部署完應用之後,他需要建立一個4/7層負載均衡,以對外提供服務,然後要拿著這個負載均衡的公網地址,去自己的DNS服務上加一條配置。然後還需要描述下哪些區域的終端使用者去訪問哪些伺服器地址。如果一個地區有多個節點或者服務,還得想辦法描述這個IP的能力權重,比如有的ip後面服務能力強,有的IP後面服務能力不強。這些操作對 CDN的專家來說,那是輕車熟路。但是這對於一個AI推理應用的開發者來說,就稍微有點門檻,要關心的東西太多了。
而現在,直接使用我們現在的域名服務匯出能力,只要把域名權威託管或者CNAME解析過來,我們就可以聯動部署去給你自動做就近解析。因為你是透過邊緣容器雲部署的,IP有哪些,我們可以直接給你新增到邊緣雲的解析服務中;ip的運營商屬性是什麼,我們可以直接給你新增到邊緣雲的解析服務中;IP的能力是多少,能跑多少QPS,我們可以基於後面的副本數轉換,權重資訊可以給到邊緣雲的解析服務中;服務的能力跑高了,負載均衡的監控資料我們也對接到邊緣雲的解析服務中,他可以自動做切量和水位控制。
不需要關注過多細節,只需要很簡單的幾步,你就可以具備一個全網覆蓋的,可以就近訪問的AI推理應用。開發者關心的東西少了,創新的熱情才會進一步進發,促進AI生態的繁榮。
業務資料可觀測,自定義彈性擴縮容
應用跑起來了,執行過程中,開發者會需要關注考慮自身業務的觀測資料,比如業務的QOS的統計,任務的處理數量等,所以這裡我也介紹一下我們可觀測和彈性伸縮能力。
對接開源的標準,我們支援Prometheus格式的metrics採集,並且支援自定義給你投遞到對應的伺服器上。比如你可以阿里雲控制檯開一個Prometheus例項,然後把地址配置到我們這,我們就可以給你把資料投遞過去,當然開發者自建的Prometheus服務地址也是可以的,這個沒有限制。然後可以在我們這定義一些彈性伸縮的規則,比如最少多少個副本,最多多少個副本,什麼指標到達什麼水位的時候擴容,什麼指標低至什麼水位的時候縮容,可以是你自定義的指標採集,也可以是我們內建的基礎指標例如CPU、記憶體、GPU利用率等。
邊緣容器雲助力邊緣AI推理的業務實踐
開發者透過我們的邊緣應用管理,可以便捷的使用到這些能力。上面提到的邊緣資料集分發、全域算力覆蓋、邊緣映象加速、服務域名匯出、可觀測和彈性伸縮,構成了邊緣容器雲支撐AI推理應用高效落地的一個最佳實踐,可以極大的降低了AI推理應用在邊緣落地的門檻。
讓我們來看一個實際執行在我們邊緣容器雲平臺上的業務案例。這是一個手機應用內機器人,它允許使用者透過多輪的對話互動來在邊緣執行推理任務,最終生成操作意圖。這個意圖隨後被上傳到中心伺服器,以執行全域性業務查詢邏輯,緊接著操作將被下發至使用者終端執行具體任務,如幫助使用者完成特定動作,並將結果展現給使用者。在這個業務案例的實施過程中,我們關鍵地利用了先前提及的域名服務匯出的就近服務功能、邊緣資料集分發、以及邊緣映象加速等核心能力。
我們的目的是簡化 AI 推理應用在邊緣的部署過程,以促進邊緣計算與 AI 技術生態系統的共同繁榮。我們提供的解決方案能夠讓開發者能夠迅速而輕鬆地上線他們的應用。想象一下,不久的將來,僅需一聲指令,開發者助手機器人便可幫你將應用順利部署至邊緣容器雲平臺。