如今的云計(jì)算應(yīng)用程序是現(xiàn)代數(shù)據(jù)中心架構(gòu)的一個(gè)直接擴(kuò)展?;趯橐苿?dòng)應(yīng)用程序設(shè)計(jì)的微小虛擬機(jī)(VM)而構(gòu)建的新型架構(gòu)可實(shí)現(xiàn)更小型的應(yīng)用程序和更低的延遲。研究人員設(shè)想將這些微小VM應(yīng)用于諸如打印服務(wù)器、動(dòng)態(tài)主機(jī)配置協(xié)議、VoIP服務(wù)等服務(wù)。流暢的云計(jì)算架構(gòu)需要重新思考VM瘦身、即時(shí)配置以及跨不同物理服務(wù)器的VM遷移等問(wèn)題。
NEC的高級(jí)研究人員Felipe Manco在加州Santa Clara舉辦的USENIX HotCloud研討會(huì)上介紹了其之前在超流暢云計(jì)算方面所做的工作。“傳統(tǒng)的云計(jì)算基礎(chǔ)設(shè)施被限制在數(shù)據(jù)中心和核心網(wǎng)絡(luò)。在過(guò)去的幾年中,運(yùn)營(yíng)商已在網(wǎng)絡(luò)的不同位置部署著處理能力。這一基本思想讓在更接近于客戶或企業(yè)內(nèi)部的更小型服務(wù)器上部署云計(jì)算服務(wù)成為了可能。”Manco說(shuō)。
一個(gè)流暢云計(jì)算的要求
這個(gè)新的架構(gòu)有四個(gè)基本屬性:位置獨(dú)立性、時(shí)間獨(dú)立性、規(guī)模獨(dú)立性以及硬件獨(dú)立性。位置獨(dú)立性意味著,可根據(jù)應(yīng)用程序需求跨不同網(wǎng)絡(luò)設(shè)計(jì)實(shí)現(xiàn)服務(wù)器部署的能力。
惠普實(shí)驗(yàn)室互聯(lián)網(wǎng)與計(jì)算平臺(tái)研究中心的首席架構(gòu)師Mike Schlansker說(shuō),這個(gè)新架構(gòu)為應(yīng)用程序開(kāi)發(fā)人員、電信企業(yè)以及客戶提供了把應(yīng)用程序部署在何處的權(quán)利。例如,在靠近客戶的位置部署應(yīng)用程序可減少延遲。這將使提供諸如VoIP電話這類要求低延遲的服務(wù)成為了可能。
時(shí)間獨(dú)立性是指應(yīng)具有短時(shí)間啟動(dòng)虛擬機(jī)的能力,具體時(shí)間從幾毫秒到幾小時(shí)各不相同。規(guī)模獨(dú)立性需要開(kāi)發(fā)管理工具以便于在一臺(tái)單一服務(wù)器上運(yùn)行成百上千的虛擬機(jī)。硬件獨(dú)立性需要能夠在網(wǎng)絡(luò)邊緣的較小型服務(wù)器上運(yùn)行云計(jì)算應(yīng)用程序。
考慮新的云計(jì)算應(yīng)用程序
Manco相信,這個(gè)新式架構(gòu)一定能夠讓各種現(xiàn)有應(yīng)用程序變得更為高效,它可以讓原本老舊的應(yīng)用程序煥然一新。虛擬CDN可以按需提供,其現(xiàn)金節(jié)點(diǎn)可實(shí)現(xiàn)動(dòng)態(tài)填充和取消。
這些微云服務(wù)還將適用于為客戶的內(nèi)部設(shè)備提供后端服務(wù),以便于提高維護(hù)、降低成本、加快推出新服務(wù)。使用在小虛擬機(jī)上運(yùn)行的微云服務(wù)將有助于隔離各個(gè)應(yīng)用程序,從而解決安全性問(wèn)題和滿足性能需求。另一個(gè)用例則是提供個(gè)性化的邊緣服務(wù),例如家長(zhǎng)控制電視服務(wù)、云計(jì)算存儲(chǔ)、通知和去除廣告等。
使用unikernel縮小虛擬機(jī)規(guī)模
這個(gè)新式架構(gòu)的關(guān)鍵要求就是,每臺(tái)虛擬機(jī)都應(yīng)擁有一個(gè)非常小的資源以滿足內(nèi)存和處理方面的要求。這些服務(wù)還應(yīng)針對(duì)平臺(tái)進(jìn)行量身定制,從而實(shí)現(xiàn)對(duì)數(shù)以千計(jì)的服務(wù)器進(jìn)行按需配置和按需消除配置。
Manco表示,這種新式架構(gòu)的最佳實(shí)踐就是使用開(kāi)銷遠(yuǎn)低于傳統(tǒng)虛擬機(jī)的unikernel虛擬機(jī)。他們已經(jīng)基于Xen虛擬機(jī)基礎(chǔ)設(shè)施建設(shè)了一個(gè)初始平臺(tái)。在未來(lái),可能把類似的原理應(yīng)用到容器中。但是Manco相信,unikernel可進(jìn)一步提高現(xiàn)有容器的隔離性和安全性。
如果要提高Xen的虛擬特征,還需要付出大量的工作。它的設(shè)計(jì)初衷并不是為了支持?jǐn)?shù)以千計(jì)短時(shí)間運(yùn)行的虛擬機(jī)的。NEC實(shí)現(xiàn)了Xen工具堆棧的一個(gè)新實(shí)踐以提升性能。其他已完成的工作可改善Xen控制臺(tái)以便于更為動(dòng)態(tài)地配置新虛擬機(jī)。
推動(dòng)小虛擬機(jī)的極限
使用這個(gè)改進(jìn)的Xen內(nèi)核NEC展示了按需啟動(dòng)10000個(gè)客戶虛擬機(jī)的能力。啟動(dòng)如此多數(shù)量虛擬機(jī)的挑戰(zhàn)之一在于增加新虛擬機(jī)的增量時(shí)間會(huì)迅速增加。研究團(tuán)隊(duì)發(fā)現(xiàn),與LXC容器的135毫秒相比,在新架構(gòu)上增加第一萬(wàn)臺(tái)虛擬機(jī)的時(shí)間為3.5秒。
Manco承認(rèn),實(shí)際應(yīng)用中可能并不會(huì)出現(xiàn)同時(shí)維持如此大數(shù)量虛擬機(jī)的情況。對(duì)于剛?cè)腴T者來(lái)說(shuō),Xen的調(diào)度問(wèn)題有可能會(huì)降低每一個(gè)虛擬機(jī)的性能。問(wèn)題是,傳統(tǒng)Xen調(diào)度程序使用一個(gè)循環(huán)方式從每一個(gè)虛擬機(jī)那里收集輸入。一個(gè)好的做法就是按需啟動(dòng)虛擬機(jī)而不是在內(nèi)存中保持大量運(yùn)行的虛擬機(jī)。
虛擬機(jī)位置至關(guān)重要
另一個(gè)好的做法就是在單臺(tái)服務(wù)器上啟動(dòng)大量小虛擬機(jī)和在多臺(tái)服務(wù)器上啟動(dòng)大量虛擬機(jī)之間進(jìn)行權(quán)衡。如果應(yīng)用程序?qū)?zhí)行具有較大工作量的處理任務(wù)(如打印服務(wù)器),那么它們需要在多臺(tái)服務(wù)器上進(jìn)行啟動(dòng)。在另一方面,應(yīng)用程序如果是執(zhí)行一些諸如DNS查詢這樣的簡(jiǎn)單任務(wù),那么就可以在一臺(tái)單一的服務(wù)器上啟動(dòng)虛擬機(jī)。
一家云計(jì)算分析公司Cloud Physics的CTO Irfan Ahmad表示,“對(duì)于為眾多類別服務(wù)提供無(wú)縫用戶體驗(yàn)來(lái)說(shuō),針對(duì)快速移動(dòng)的虛擬機(jī)開(kāi)發(fā)一個(gè)架構(gòu)是非常重要的。”當(dāng)他還在VMware工作時(shí),他們就遇到了這樣的虛擬機(jī)挑戰(zhàn),即VoIP電話被虛擬機(jī)移動(dòng)而打斷。
Manco說(shuō),實(shí)際使用這個(gè)靈活的云計(jì)算基礎(chǔ)設(shè)施還需要我們付出大量的努力。從長(zhǎng)遠(yuǎn)來(lái)看,它承諾有望減少網(wǎng)絡(luò)設(shè)備、有線電視盒和企業(yè)設(shè)備的成本。通過(guò)移動(dòng)更多的功能和控制邊緣服務(wù)器,它還能為物聯(lián)網(wǎng)應(yīng)用程序帶來(lái)同樣的靈活性。通過(guò)今天對(duì)這一領(lǐng)域的進(jìn)一步深入研究,企業(yè)將能夠在明天更好地利用好開(kāi)發(fā)更多的流暢云計(jì)算應(yīng)用程序。