docker與openstack的關係

最近Docker和OpenStack是在信息化基礎設備虛擬化或雲化方面最火的兩個開源項目,他們有關係嗎,下面來分析分析。

先看看他們分別是什麼,我嘗試不用網上的高大上術語,而用大白話來解釋一下他們,或者刺破他們。

OpenStack:它由很多的組件組成,如果沒接觸過,基本上你會暈頭轉向。但是我們只要從它試圖要解決的問題來看就不難理解它。它是管理服務器/網絡/塊存儲的工具。關於塊存儲,簡單的理解是把一堆磁盤用軟件組合成一個大磁盤給操作系統使用。就是管理一堆服務器,然後在有需要的時候在它的管理界面上分配一些存儲/分配IP/創建虛擬機。所以他的最終目的還是管理虛擬機,它於你可能用過的virtualbox、vmware桌面版不同的地方就是你用的那些小東東只能管理你自己那一臺機器上的虛擬機,openstack可以管理一堆服務器上的虛擬機,哦,忘了還有有些技術專家常說的網絡和存儲。

         Docker:簡單說它用比虛擬機技術少很多的資源消耗實現了類似於虛擬機的對CPU/磁盤/網絡的隔離,同時在AUFS層存儲的基礎上實現的部署標準化。舉例來說你可以在網上下載到安裝好mysql、redis的docker 鏡像,然後在你的linux環境中運行起來,你也可以把你的應用生成爲一個鏡像,然後在開發環境運行/然後在正式環境運行,而鏡像是層疊的,這意味着上層鏡像會非常小。

         很多人說他們不可以比較,其實他們是可以比較的,OpenStack是IaaS層的東西,有人可能不知道IaaS層是什麼,簡單的說就是把一堆服務器整合起來,然後自由自在的在這些服務器上創建管理很多的虛擬機,還會涉及到網絡和磁盤的虛擬化。當然你暫時還是不要想把多個服務器上的CPU合起來變成一個更強大的虛擬機這種美事。而Docker和以Docker爲主的swarm或Kubernetes在虛擬化方面想做的與Openstack基本是一樣的事,但相對kvm之類的虛擬機它消耗了更少更少的硬件資源。但是他還做了一些部署標準化,所以docker是一個橫跨IaaS和PaaS的東西,或者它刺破了原來對IaaS和PaaS的嚴格分層,讓這些術語或說着這些術語的人們包括我都有些凌亂了。但它又是那麼的簡捷、有效。

那麼問題來了,

問題1:docker和openstack會融合嗎?

        會的,目前有幾個可能的方向,1.是把docker封裝一層,變成類似kvm的虛擬機引擎。2.是把docker運行到openstack管理的虛擬機中。3.是把openstack用到的各個組件裝到docker容器,方便部署。我們來仔細分析一下這幾個可能的方向。

1.把docker封裝成虛擬機引擎,這是一個看起來比較有效和直接的溶合了docker的方案,但,是有問題的,必竟它不是虛擬機,沒有實現虛擬機那樣對資源徹底的隔離,所以你登錄到docker虛擬出來的容器和登錄到kvm等虛擬機引擎虛擬出來的虛機上時雖然感覺差不多,但一些涉及到相對低層的命令的執行結果是不一致的。所以docker不是一個好的虛擬機引擎,因爲它就不是虛擬機引擎。另一方面,這種方式的集成會屏蔽docker在部署上的優勢。所以如果Openstack要全面的溶合docker,那它就不是現在的openstack了,它就不是IaaS層的東東了。

2.把docker運行到openstack管理的虛擬機中,這是虛擬中的虛擬,有點黑客帝國的味道或盜夢空間?土豪的節奏啊,不用評論了。

3.把openstack用到的各個組件裝到docker容器上,這個不錯,正好是對docker的很好的使用,證明了docker的能力。但是。。。這是溶合嗎。

問題2:docker會取代openstack嗎?

不知道,但是以docker爲代表的容器技術應該會極大的壓縮openstack在虛擬機方面的使用空間,哦對了,openstack還會管理網絡和存儲。但是需要它管理嗎,不需要嗎。必須要用windows的情況下還是不能用docker的,因爲這一點,docker也會一定層度上拉昇在服務器領域的linux操作系統佔有率。一些需要強硬件資源隔離的場景下還是使用openstack之類的技術的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章