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