我們生活在一個(gè)連接和智能設(shè)備的時(shí)代。隨著智能設(shè)備數(shù)量的增長(zhǎng),數(shù)據(jù)的增長(zhǎng)迅速達(dá)到了新的高度。這些數(shù)據(jù)從終端用戶到達(dá)云或數(shù)據(jù)中心后再進(jìn)行處理、存儲(chǔ)和其他分析操作,因此,當(dāng)訪問(wèn)時(shí)必定會(huì)帶來(lái)延遲和帶寬問(wèn)題。正如Nati Shalom在他的博客文章中寫道“ 什么是邊緣計(jì)算?“,邊緣計(jì)算實(shí)質(zhì)上是將處理能力轉(zhuǎn)移到網(wǎng)絡(luò)邊緣,更接近數(shù)據(jù)源。這使組織能夠在訪問(wèn)數(shù)據(jù)速度和消耗帶寬的方面獲得顯著優(yōu)勢(shì)。
創(chuàng)新互聯(lián)建站是一家專業(yè)提供三江侗企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為三江侗眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。由于邊緣扮演著至關(guān)重要的角色,因此考慮邊緣工作負(fù)載運(yùn)行的基礎(chǔ)架構(gòu)技術(shù)同樣重要。
為邊緣工作負(fù)載提供技術(shù)
我們已經(jīng)看到基礎(chǔ)架構(gòu)技術(shù)的整個(gè)范式轉(zhuǎn)變,從物理服務(wù)器開始,一直到虛擬機(jī)(VM)的誕生,現(xiàn)在最新的是容器。盡管VM在過(guò)去十年左右的時(shí)間里做得很好,但與VM相比,容器提供了固有的優(yōu)勢(shì)。它們也是運(yùn)行邊緣工作負(fù)載的理想選擇。
下圖描述了與VM相比容器的工作方式。
每個(gè)虛擬機(jī)在共享管理程序(軟件或固件層)之上運(yùn)行獨(dú)特的操作系統(tǒng),從而實(shí)現(xiàn)“硬件級(jí)虛擬化”。相反,容器運(yùn)行在物理基礎(chǔ)架構(gòu)之上并共享相同的內(nèi)核,從而導(dǎo)致“操作系統(tǒng)級(jí)虛擬化”。
這個(gè)共享操作系統(tǒng)以MB為單位保持容器的大小,使它們非?!拜p”和靈活,將啟動(dòng)時(shí)間減少到幾秒鐘,相比之下,VM卻需要幾分鐘。此外,由于容器共享相同的操作系統(tǒng),操作系統(tǒng)管理員的管理任務(wù)(修補(bǔ),升級(jí)等)也會(huì)減少。另一方面,在容器的情況下,如果內(nèi)核漏洞會(huì)使整個(gè)主機(jī)關(guān)閉。但是如果攻擊者在到達(dá)VM內(nèi)核之前,只是通過(guò)主機(jī)內(nèi)核和管理程序進(jìn)行路由,則VM仍然是更好的選擇。
今天,許多研究正在朝著實(shí)現(xiàn)將裸機(jī)功能帶入邊緣工作負(fù)載的目標(biāo)而進(jìn)行。Packet就是這樣一個(gè)組織,致力于實(shí)現(xiàn)滿足低延遲和本地處理需求的獨(dú)特主張。
虛擬機(jī)或裸機(jī)上的容器?
CenturyLink對(duì)在裸機(jī)和虛擬機(jī)上運(yùn)行Kubernetes集群進(jìn)行了一項(xiàng)有趣的研究。對(duì)于此測(cè)試,使用名為netperf的開源實(shí)用程序來(lái)測(cè)量?jī)蓚€(gè)群集的網(wǎng)絡(luò)延遲。
由于物理服務(wù)器沒(méi)有管理程序作為開銷,因此結(jié)果與預(yù)期一致。在裸機(jī)服務(wù)器上運(yùn)行的Kubernetes和容器顯著降低的延遲; 實(shí)際上,比在VM上運(yùn)行Kubernetes時(shí)低三倍。此外,與裸機(jī)相比,當(dāng)在VM上運(yùn)行集群時(shí),CPU消耗明顯更高。
所有邊緣工作負(fù)載都應(yīng)該在裸機(jī)上運(yùn)行嗎?
雖然數(shù)據(jù)庫(kù),分析,機(jī)器學(xué)習(xí)算法和其他數(shù)據(jù)密集型企業(yè)應(yīng)用程序是在裸機(jī)上運(yùn)行容器的理想選擇,但在VM上運(yùn)行容器有一些優(yōu)勢(shì)。與裸機(jī)環(huán)境相比,在VM中可以輕松實(shí)現(xiàn)開箱即用的功能(例如從一個(gè)主機(jī)到另一個(gè)主機(jī)的工作負(fù)載運(yùn)動(dòng),在出現(xiàn)任何問(wèn)題時(shí)回滾到先前的配置,軟件升級(jí)等)。
因此,如前所述,輕量級(jí)且快速啟動(dòng)/停止的容器非常適合邊緣工作負(fù)載。在裸機(jī)或VM上運(yùn)行時(shí)總會(huì)有一個(gè)權(quán)衡。
公有云和邊緣工作負(fù)載
大多數(shù)公有云(包括Microsoft Azure和Amazon)都提供容器即服務(wù)(CaaS)。兩者都是建立在現(xiàn)有基礎(chǔ)架構(gòu)層之上的,基于虛擬機(jī),從而提供邊緣計(jì)算所需的可移植性和靈活性。
AWS還推出了“Greengrass”作為軟件層,將類似云的功能擴(kuò)展到邊緣,從而實(shí)現(xiàn)本地信息的收集和執(zhí)行。
讓我們看看它是如何工作的。
Greengrass Group包含兩個(gè)組件。第一個(gè)是Greengrass內(nèi)核,用于在本地執(zhí)行AWS Lambda,消息傳遞和安全性。第二個(gè)是IoT,支持SDK的設(shè)備,通過(guò)本地網(wǎng)絡(luò)與Greengrass核心進(jìn)行通信。如果Greengrass內(nèi)核與云失去通信,它仍會(huì)保持與本地其他設(shè)備的通信。
企業(yè)采用和所涉及的挑戰(zhàn)
由于容器提供的速度,密度和靈活性,它們是最熱門技術(shù)之一。安全性可能會(huì)給企業(yè)在容器上采用邊緣工作負(fù)載帶來(lái)障礙。其中兩個(gè)主要問(wèn)題是:
? 拒絕服務(wù):一個(gè)應(yīng)用程序運(yùn)行時(shí)可能會(huì)消耗大部分的操作系統(tǒng)資源,從而剝奪了其他應(yīng)用程序繼續(xù)運(yùn)行所需的最低限度資源,最后迫使操作系統(tǒng)關(guān)閉。
? 利用內(nèi)核:容器共享相同的內(nèi)核,因此如果攻擊者能夠訪問(wèn)主機(jī)操作系統(tǒng),他們就可以訪問(wèn)主機(jī)上運(yùn)行的所有應(yīng)用程序。
前進(jìn)之路:最新動(dòng)態(tài)
在基礎(chǔ)設(shè)施技術(shù)的各種發(fā)展中,總部位于紐約的創(chuàng)業(yè)公司Hyper正在努力提供VM和容器領(lǐng)域的最佳產(chǎn)品。使用HyperContainers(如Hyper調(diào)用它),我們看到兩者之間的融合。它提供了容器的速度和靈活性,即能夠在不到一秒的時(shí)間內(nèi)以最小的資源占用空間啟動(dòng)實(shí)例。同時(shí),它提供VM的安全性和隔離性,即通過(guò)硬件強(qiáng)制隔離來(lái)防止容器的共享內(nèi)核問(wèn)題。
本文來(lái)自云棲社區(qū)合作伙伴“SDNLAB”,原文鏈接:https://yq.aliyun.com/articles/625871?spm=a2c4e.11153940.bloghomeflow.217.204a291arW997Y