邊緣計算與原生云生態(tài)系統(tǒng)
將密集的工作負載從云端移動到網(wǎng)絡邊緣以降低延遲,降低帶寬,縮短回程路徑-這些都是邊緣計算的人盡皆知的優(yōu)勢。2018年,不論是移動便攜設備還是物聯(lián)網(wǎng)設備,不論是視頻流數(shù)據(jù)還是機器學習數(shù)據(jù),都在向終端設備靠近、集中。
作為一種圍繞“邊緣”的新型產業(yè)形態(tài),服務提供商率先以5G邊緣平臺作為試點進行產業(yè)布局,而其他行業(yè)的定義的“邊緣”也同樣在進行快速布局,這是未來邊緣平臺發(fā)展的大勢所趨。本文提出了一個基于開源、原生云技術的邊緣平臺概念。
多集群編排邊緣計算
由于大多數(shù)核心邊緣用例都有云參與,故一種理解邊緣計算的方法就是“云的擴展”。例如,企業(yè)可以在云中訓練機器學習模型,并將最新模型應用于邊緣節(jié)點。因此,邊緣平臺應該具有如云一般的彈性負載、支持現(xiàn)有的云平臺技術如Kubernetes的特性,以確保云和邊緣應用部署的一致性。一個邊緣微數(shù)據(jù)中心,即云和終端設備之間的一組服務器,也即對應一個Kubnenetes集群。
在邊緣計算中使用Kubernetes是極為有利的,因為它支持不同種類的工作負載,包括容器、函數(shù)和虛擬機。但是簡單地將Kubernetes安裝到數(shù)千個這些微數(shù)據(jù)中心并不能解決邊緣計算所面臨的獨特的技術挑戰(zhàn)。例如,如何大規(guī)模為這些邊緣設備引導程序,并在所有站點上安裝Kubernetes和平臺工具。
因此,應用程序開發(fā)人員必須解決同時將不同的工作負載部署到多邊緣集群的問題。開發(fā)人員可以通過隱式部署(“把應用程序放到流量”中)來解決這一問題,而不必考慮成千上萬的邊緣微數(shù)據(jù)中心實際運行哪個應用程序。為了解決跨集群的流量負載均衡問題,可以將每個請求都解析到最近的邊緣服務器。邊緣集群還應該能夠自主地跨集群加載工作負載,這就需要邊緣站點之間具有一些“鄰居意識”。邊緣管理員還可以將這些微數(shù)據(jù)中心組織為復雜的拓撲結構,以便在本區(qū)域或本地部署不同的工作負載。
最后,管理跨地域的邊緣集群還面臨一系列后勤挑戰(zhàn),不同于管理大量的物聯(lián)網(wǎng)設備,管理邊緣集群還存在物理安全問題、異構硬件問題和調試網(wǎng)絡配置等問題。
面向端到端的邊緣平臺
建立一個邊緣平臺來解決上述所有技術需求是不可能的,也沒有人能夠建立起這樣一個神奇的、統(tǒng)一的邊緣平臺。但我認為,利用一些常見的開源工具并結合邊緣平臺生態(tài)系統(tǒng),可以大大加速邊緣平臺創(chuàng)新。
那么這個邊緣平臺會是什么樣子呢?
首先,每個組件——包括設備、平臺和應用程序管理等,將其添加進入相同的邊緣目錄。通過像RackHD這樣的裸金屬工具可以從邊緣目錄中取出一組MAC地址,遠程控制這些設備,然后再將結果反饋至目錄中。平臺管理者可以從邊緣目錄中獲取這些結果,包括一些用戶自定義的邊緣設備信息,通過安裝Kubernetes以及其他平臺工具,如Fluentd and Prometheus可以進一步進行日志記錄和監(jiān)控。要想將所有的邊緣站點聚集以應對新的工作負載,這些邊緣Kubernetes集群的頂部必須部署邏輯層,以處理隱式應用程序部署和跨集群負載均衡。
前兩個組件,設備和平臺的管理,可以通過編寫現(xiàn)有工具解決相應問題。但是,最后一個組件,應用的管理,是一個尚未解決的問題:成千上萬的Kubernetes集群如何與微監(jiān)督協(xié)同工作?
下一個阻礙:邊緣應用管理
邊緣計算只是多個Kubernetes集群的一個用例,管理多個Kubernetes集群的概念并不新鮮。早在2016年,Kubernetes就已經引入了“Cluster Federation 集群聯(lián)合”機制——用于多集群負載調度和負載均衡的控制平面。從那時起,研發(fā)人員就已經逐漸放棄Kubernetes集群集中控制平面方法,朝著更為分散的API、入口控制器和工具集合轉移。而所有這些工具都轉向了云部署Kubernetes。“集群聯(lián)合”機制目前只支持群集托管在谷歌云。
因此,為了實現(xiàn)未來邊緣平臺部署的愿景,必須創(chuàng)建新的工具來解決原生Kubernetes中的多集群編排。為此,我們設計一個更高級的結構應用于多集群應用程序管理器。
該邊緣應用程序管理器的核心原理是,集群能夠盡可能自主地運行,而不依賴于中央控制平面。也就是說,必須集中、自主運行一定數(shù)量的業(yè)務。
例如,應該有一個集成的用戶界面和一個API,讓應用程序開發(fā)者在不必與單個集群交互的情況下將工作負載部署到邊緣。也可能有一個中央DNS服務器,可以路由進入的邊緣流量。例如,假設一個邊緣集群正在運行一個應用程序,另一個集群沒有運行。終端設備向該應用程序提出請求,通過anycast通信,DNS請求路由到最近的邊緣集群。這個邊緣集群與中央DNS服務器對話,并返回運行相關應用程序的集群列表。這樣,邊緣DNS服務器可以將設備的請求轉發(fā)到運行該應用程序的最接近的邊緣站點,并告訴終端設備:“我沒有運行您需要的應用,而我的相鄰集群正在運行”。定制核心DNS插件并運行在中心和邊緣位置可以實現(xiàn)這一目標。
該邊緣應用程序管理器還具有其他特性,如負載均衡、跨集群流量控制服務(多集群Istio),以及跨集群scale-up和scale-to-zero、統(tǒng)一認證和安全策略。這個邊緣應用程序管理器將來可能包含多個不同的工具,包括新開發(fā)的和現(xiàn)有的,來協(xié)調這些微數(shù)據(jù)中心的應用程序。
最后,可以肯定的是,這是一個振奮人心的邊緣計算時代,眼前的工作是創(chuàng)建一個彈性負載的原生云平臺以運行邊緣應用程序。擼起袖子加油干吧。
譯者注:
Istio:一個開源項目,提供統(tǒng)一的連接,安全,管理和監(jiān)控微服務的方法。目前的版本針對Kubernetes環(huán)境;在未來幾個月內為虛擬機和Cloud Foundry等其他環(huán)境增加支持。 Istio將流量管理添加到微服務中,并為增值功能(如安全性,監(jiān)控,路由,連接管理和策略)創(chuàng)造了基礎。該軟件使用來自Lyft的經過測試的特使代理構建,并提供對流量的可見性和控制,而不需要對應用程序代碼進行任何更改。Istio為CIO提供了強大的工具,可以在整個企業(yè)中實施安全性,政策和合規(guī)性要求。
譯者介紹:
張德俊,虛擬化、云計算、大數(shù)據(jù)、網(wǎng)絡安全從業(yè)者,熱愛AI、區(qū)塊鏈等前沿技術