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