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