'容器技術也是一種虛擬化,但能大幅提升性能並支持靈活部署'

"
"
容器技術也是一種虛擬化,但能大幅提升性能並支持靈活部署

容器技術與傳統虛擬化技術,兩者雖然都屬於虛擬化的技術,目標都是為了將一套應用程序所需的執行環境打包起來,建立一個孤立環境,方便在不同的硬件中移動,但兩者的運作思維截然不同。


傳統虛擬化技術如vSphere或Hyper-V是以操作系統為中心,傳統虛擬化技術從操作系統層下手,目標是建立一個可以用來執行整套操作系統的沙盒獨立執行環境,習慣以虛擬機(Virtual Machine)來稱呼。而Container技術則是一種以應用程序為中心的虛擬化技術,Container技術則是直接將一個應用程序所需的相關程序代碼、函式庫、環境配置文件都打包起來建立沙盒執行環境,Container技術產生的環境就稱為Container。

傳統虛擬化通過操作系統(“OS”)及其應用程序共享來自單個主機服務器或主機服務器池的硬件資源,而容器技術只共享主機OS內核、二進制文件和庫,大大減少系統開銷,為開發、測試、部署和移植提供便利。在這裡,分別從隔離級別、系統資源、啟動時間、鏡像存儲、集群規模和高可用策略等幾方面闡述區別。

圖中所示兩者的具體區別:

一方面:虛擬機需要安裝操作系統(安裝Guest OS)才能執行應用程序,而Container內不需要安裝操作系統就能執行應用程序。虛擬化最初被稱為資源的抽象,它是單個物理資源的多個邏輯表示,或者是多個物理資源的一個邏輯表示。特定於服務器虛擬化的是多個物理資源的單一邏輯表示。虛擬化技術可以擴展硬件的容量,簡化軟件的重新配置過程。CPU虛擬化技術可以是多CPU並行的單CPU仿真,同時允許一個平臺同時運行多個操作系統,應用程序可以在不同的空間和相互影響下運行,從而提高計算機的工作效率。

另一方面:容器技術不是在OS外來建立虛擬環境,而是在OS內的核心繫統層來打造虛擬執行環境,透過共享Host OS的作法,取代一個一個Guest OS的功用。Container也因此被稱為是OS層的虛擬化技術。以Docker為例,它允許開發人員打包他們的應用程序,並依賴於一個便攜容器的包,然後發佈到任何流行的Linux機器上,也可以實現虛擬化。而且容器完全是沙盒機制,沒有任何接口(像iPhone應用程序)。很少有性能開銷,並且可以很容易地在機器和數據中心中運行。最重要的是,他們不依賴任何語言、框架或系統。

我們看出,在實際的生產環境中,虛擬化技術主要用於解決物理硬件過剩的高性能,舊的硬件容量的重構過低的重用,透明底層物理硬件,從而最大限度地利用物理硬件。而容器技術採用了輕量級虛擬化技術,它主要採取共享Host OS的作法,而不需在每一個Container內執行Guest OS,因此建立Container不需要等待操作系統開機時間,不用1分鐘或幾秒鐘就可以啟用,遠比需要數分鐘甚至數十分鐘才能開啟的傳統虛擬機來的快。

容器技術也是一種虛擬化,但能大幅提升性能並支持靈活部署


分析世界講方案,為您帶來精彩的一頁;

——垂直領域、專注原創;

——感謝閱讀、感謝共鳴。

"

相關推薦

推薦中...