CIO們又開始一年的規劃了,想做容器的不妨先看看,容器技術與虛擬機在私有云、公共云和混合云上部署的區別。
大多數的云是基于虛擬機部署的,但現在很明確的是,容器為云用戶提供了顯著的好處。然而,選擇一種容器技術之前,重要的是要理解容器與vm(虛擬機)之間的關鍵差異。而最大的問題,無論是選擇哪個,都要看是用于公共云、私有云還是混合云的場景。
概括來說,答案取決于三個主要因素:vm和容器之間的功能差異、私有云和公共云組件之間相互依賴的程度,以及用戶的意愿,最終來定制自己的云平臺。
.壹.
.理解容器與vm的差異.
VMs和容器 代表著兩種不同的方式創建虛擬資源、運行應用程序。 采用VMs,一個特殊的軟件系統——一個 虛擬機監控程序——分區服務器操作系統(OS)級別下的硬件上創建真正的“虛擬機”。 而容器技術是基于內核的,虛擬化發生在操作系統層面,所以還可能共享一些中間件。
功能方面,虛擬機相比較來說更靈活,因為在“guest”環境中,應用程序類似于運行在 裸機服務器 上。這樣的話,你就可以選擇你自己的操作系統和中間件,及時在同一服務器上也可獨立于其他虛擬機。但是,對于容器,當你選擇部署一個應用程序時候,就需要適應一個常見的操作系統和中間件元素,因為每個容器與其他容器都是共同使用核心服務器平臺的。
因此,如果你想要為企業提供各種軟件平臺的應用程序,那么,使用容器可能會更困難,因為需要標準化的一個承載平臺。 即使一切都運行在一個操作系統上,也需要協調一切使用單個版本的部分或全部中間件工具,所以,如果軟件是很難做到依賴一個特定的版本的話就麻煩了。
不過帶來的另一方面的好處是,用了容器技術后開銷更少,因為不會重復去做每個應用程序或組件的平臺軟件的部署。這較低的開銷就讓你可以在每臺服務器組件上運行更多的容器技術,此外,部署和重新部署應用程序或組件方面,容器技術也更快。
加之,容器技術通常是通過部署為如Docker一樣的管理平臺,相對于需要一堆工具并且復雜多樣的VM-based clouds,就更簡單了。
.貳.
.公共云、私有云或混合云上到底選哪個?.
在私有云部署上,以上容器的好處 你都可以體會到。對于企業標準化的操作系統和中間件,基于容器的私有云部署可能是最好的策略。然而,對于公共云和混合云,容器通常存在更多的問題,而vm可能是更好的方法。
例如,企業如果采用容器技術將面臨的一個挑戰是,容器相比VM來說,很難找到公共云的托管服務。雖然一些IaaS提供者,如亞馬遜也提供容器服務,但這些服務通常覆蓋整個IaaS服務,客戶在很多情況下,只允許使用一個專用服務器或集群托管。對比來看,任何用戶都可以通過公共云的IaaS服務輕松部署vm,而容器會很復雜,特別是在一個公共云上設置和操作容器網絡時候,可能很難適應。
相比這種在公共云上部署和管理容器的難度,其實在混合云部署中更難。首先,容器部署一個應用程序的最佳實踐建議是同時托管組件,這樣便于網絡連接。然而,這也會使它更難以管理,比如混合云上兩個最常見的云爆發(cloud bursting)和故障切換(failover)到公共云上的問題。
第二,如果容器平臺不兼容,任何中間件或操作系統在應用程序級別上的差異將會限制容器部署。這意味著應用程序無法進行交叉部署。
不過,如果組件分布在云計算與數據中心是相當恒定的,那么在混合云上采用容器技術會更容易建立和維護些。例如,從一組特定的數據中心服務器到一組特定的云服務器。這使得網絡和集成的混合環境易于管理而不易配置錯誤。然而, vm還是更容易的在云數據中心上使用標準化的工具和集成實踐,來部署應用程序和組件。
說了這么多,建議是最好熟悉容器技術的功能后再部署。長遠來看,很有可能涉及管理工具方面用VM、云上做容器技術,并且隨著這些工具的發展,二者在操作之間的差異將會減小。但如果你現在做出選擇,要確保容器部署中為云應用程序提供足夠的隔離,因為安全和合規這兩方面,容器與虛擬機之間的差異不太可能縮小。