品品Unikernel與Docker容器技術

分類:IT技術 時間:2016-10-11

Docker與容器技術無疑是近兩年在IT技術領域最為火熱,賺盡眼球的技術。從2015年到2016短短一年,僅在中國以容器技術相關產品為主要產品方向的企業就從幾家變到了幾十家。不過與此同時,很多人可能沒註意到,另一項技術Unikernel在美國興起,引發很多技術控的追隨熱捧,促生了很多相關領域的項目。Unikernel的粉絲甚至說Unikernel會很快代替容器技術成為新一代雲計算技術的代名詞。

什麽是Unikernel?

Unikernel技術可以翻譯成專用內核技術或者特型內核技術。傳統的操作系統,例如Windows和linux,功能全面復雜,在系統中運行多種應用程序,管理調度這些不同的應用程序共享計算機系統中的資源。而Unikernel系統在一個操作系統中只運行一個應用,它將運行這一個應用所需要的應用程序、依賴的庫文件和系統內核模塊打包成一個獨立的虛擬機,將這個虛擬機部署到hypervisor上去運行。Unikernel技術的核心是依靠hypervisor去隔離和調度不同的應用程序,這和傳統的虛擬機技術是一樣的。這樣的隔離方式顯然比容器在同一個操作系統上用namespace隔離或者幹脆在一個系統上運行多個應用沒有隔離安全得多,這也是人們發展Unikernel技術的主要原因之一。

為什麽拿Unikernel與Container比較?

Unikernel技術與Container技術一樣,目標都是成為下一代雲計算平臺的基礎技術。Container技術之所以興起,一大原因是它相對於傳統虛擬機的性能優勢。傳統的虛擬機技術,打包運行的虛擬機上面要安裝完整的虛擬機操作系統,這導致虛擬機鏡像占用空間巨大,虛擬機啟動緩慢而且運行虛擬機時虛擬機操作系統占用了很大一部分系統資源。通常的性能測試,虛擬機在鏡像占用空間,啟動時間和運行時占用的資源方面都是容器對應的幾十倍。而Unikernel技術,采用了和Container類似的理念,只打包與特定應用相關的程序,因此性能大大提高,可以與容器媲美。同時,眾所周知,容器相對於虛擬機的一個劣勢是容器隔離性比虛擬機隔離性弱得多,這使得容器以及運行容器的主機更容易遭到主機上的惡意容器的攻擊。而Unikernel技術,具備了容器技術性能的同時,也具備了虛擬機的安全隔離性,因此Unikernel是以比容器更安全的雲計算基礎技術為標簽提出來的。

Unikernel與Container的不同優勢

有技術研發經驗的人都知道,天下沒有面面俱優的技術。Unikernel既安全有高效,是不是相對於容器技術就占據全面優勢了呢?不是的,Unikernel的弱點就是難調試和難擴展。Unikernel虛擬機中完全沒有與應用無關的調試工具和系統服務,不言而喻,調試一個運行中的Unikernel虛擬機要比調試一個運行中的 容器困難得多。難擴展性也是類似的,開發人員可以在一個運行中的容器中方便地增加新模塊,驗證新的代碼變動和配置變動,可是在一個Unikernel虛擬機中卻完全做不了任何與現有應用無關的事情。這其實再一次證明了,安全性與易用性和易擴展性,永遠是對立的系統設計目標,工程師總是要根據實際的應用場景在這兩方面找到一個平衡點。

Unikernel與Container的不同適用場景

如果再加上Container一直被大家吐槽的穩定性問題,基本可以說,相比較Container,Unikernel的技術優勢是安全,穩定,劣勢是難調試,難擴展。這樣的技術,最好的應用場景就是,一旦部署上去,就可以安全穩定的運行較長時間,而不是三天兩頭需要叠代、更新、調試。因此目前看來,Unikernel技術不適合互聯網的節奏。另一方面,Unikernel技術非常適合一些對安全、穩定性要求高的應用場景,例如醫療信息系統,高速網絡設備,數據庫;Unikernel也非常適合實現一些通用穩定的協議和算法,例如通信協議、加密解密算法和比特幣挖礦算法。相反的,容器技術,則非常適合那些業務功能不停叠代,持續變化的應用場景,是一種對變更友好,對應用邏輯不斷演化友好的技術,因此容器技術相對來說,更適合電子商務、移動互聯應用等需求變化多樣、始終持續叠代演進的應用和服務。

Unikernel與Container兩項技術,彼此既是競爭關系,也是互補關系,甚至也可能成為共生關系,例如,構建虛擬機作為容器運行的微內核,也是Unikernel的重要應用場景之一。

本文轉自: http://blog.sina.com.cn/s/blog ... .html


Tags: 計算機系統 Windows 雲計算 軟裝設計 應用程序

文章來源:


ads
ads

相關文章
ads

相關文章

ad