天天看點

Xen項目負責人:Docker會取代虛拟機嗎?

本文講的是<b>Xen項目負責人:Docker會取代虛拟機嗎</b>,【編者的話】Docker 會否取代 VM? 下一個時代是專屬于容器的時代,還是 Docker 和 VM 并存的時代? 本文作者就這個話題展開了讨論。

Docker無疑是當下最具影響力的開源項目。Docker何以如此的成功?它會否取代虛拟機,這樣的轉變是不是會在将來某一天的某一個臨界點突然爆發?如果是的話,那會是什麼時候?

為了解答這些問題,讓我們先來簡單的回顧一下過去的發展曆程吧,這樣也許能夠促使我們更好的了解目前的情況并展望未來。

在虛拟機技術普及之前,系統管理者們習慣于上線實體伺服器來為他們的使用者提供服務。這個過程很繁瑣,無法實作完全的自動化,并且需要花費幾個小時甚至幾天。如果出問題了,他們隻能跑到機房去更換實體元件。伴随着虛拟機的出現,DevOps人員可以在他們所有的實體伺服器上任意的安裝Hypervisor,然後他們便可以在使用者提出申請時直接配置設定新的虛拟機。上線一台虛拟機不再需要幾個小時,而僅僅隻需要幾分鐘就夠了,而且可以自動化完成。底層硬體的差異越來越少,而更多的是變得商務化。如果某個使用者需要更多額外的資源,建立一個新的虛拟機就行了。如果一個實體主機出現了故障,管理者隻需要将該主控端承載的虛拟機遷移或恢複到另外的主控端即可。更細緻的部署模式變得可行和易于操作。使用者不再需要把他們所有的程式都運作在同一台主機上,通過使用虛拟機,他們可以将底層硬體的功用發揮到淋漓盡緻。人們可以在一個虛拟機上跑資料庫,在另外一個上面運作中間件,然後在第三個上面跑Web,而完全不用擔心硬體資源使用率的問題。在同一家企業裡,一群人負責購買伺服器實體硬體,而另外一群人負責軟體棧的架設,他們的職能劃分相對獨立并且互不幹涉。連接配接兩個團隊的橋梁便是虛拟機。解決方案架構師們可以友善廉價的将每個應用部署到不同的虛拟機上,而極大的減少了他們的運維成本。正因為如此,軟體工程師們也同樣喜愛它。這也正是Hypervisor技術所帶來的最大的創新。

幾年過去了,人們已經習慣于通過虛拟機來承載他們的業務。初創公司甚至于不再傾向于購買伺服器硬體資源了,他們隻需要購買亞馬遜的AWS服務即可。如今,每個應用一台虛拟機已經成為了部署軟體棧的标準方式。

自上世紀90年代以來,應用程式的部署方式其實并沒有大的變動。從那時候開始,如果我們需要部署一個應用,那便需要安裝一個Linux發行版本,而建構的主要意義在于驅動硬體裝置,然後我們需要安裝應用所需要的Deb或者RPM包,最後才安裝和配置我們真正想要運作的那個應用。

直到2013年,Docker提出了一個簡單而有效的工具來建立、分發和部署應用程式,它們以一種很贊的方式運作在相對獨立的Linux容器裡。另外,針對衆多的應用而言,它提出了一個registry的概念,這有點像蘋果的App Store,這裡為了清晰起見,我将其稱之為“雲應用”。部署 Nginx Web 伺服器就變成了類似<code>docker pull nginx</code>這樣簡單。這比安裝一個最新版的Ubuntu LTS可簡單快捷多了。

Docker雲應用都是預配置的并且不再需要安裝一些Linux發行版附帶的無用的軟體包。事實上,Nginx Docker雲應用是由Nginx社群直接提供和分發的,而并非是Canonical或紅帽。

Docker最突出的創新之處在于引入了一整套包括Registry在内的雲應用标準規範。它不再是使用虛拟機的方式來運作雲應用,取而代之的是利用Linux容器。容器技術實際上在多年前就已經出現,但是一直以來隻是在有限的幾個圈子裡傳播,并沒有被大衆廣泛接受。盡管他們提供了非常好的性能體驗,但是較之虛拟機而言,他們提供的功能實在有限,并且隔離性方面很弱。作為一個後起之秀,Docker讓Linux容器重煥新生,然而Docker之是以成功不能完全歸功于容器。這隻是一個偶然罷了。

那麼,容器技術本身到底存在些什麼問題呢? 首先,它們對熱遷移技術的支援還不是很好,而且它們不能運作在非原生的工作棧上(例如,在Linux上運作Windows或者是在Windows在運作Linux)。更進一步來說,容器技術最主要的挑戰在于安全性:相對于虛拟機而言,它存在更多的潛在風險。實際上,在容器圈子裡,無論是Docker,CoreOS還是其他任何人,都不太建議部署多租戶容器。在虛拟機的時代,你不必關心誰将會去使用它,又或者是它會被如何利用。而就容器技術來說,在同一台主控端上不太建議運作歸屬于多個不同使用者的容器。亞馬遜和谷歌都提供了容器托管服務,但是基于隔離性和安全性方面的考慮,他們都是将每個容器運作在對應的一個單獨的虛拟機之上。這種方式可能看起來不是那麼的高效,但是的确非常簡單實用。

新的方向似乎可以給我們的使用者提供一個兩全其美的方案:Docker的便利性和虛拟機的安全性的完美結合。在可以預見的未來,Docker也許不會和虛拟機産生任何的競争關系,取而代之的是,它将會成為其衆多承載對象的其中之一。

原文釋出時間為:2015-08-19 

本文作者:colstuwjx

本文來自雲栖社群合作夥伴DockerOne,了解相關資訊可以關注DockerOne。

原文标題:Xen項目負責人:Docker會取代虛拟機嗎?

繼續閱讀