前言
容器和虛擬機之間有幾分相近,也有很大區別,我們應該學會在正確的時間,正確地使用容器與虛擬機,以消除它們之間的混淆。本文就容器和虛擬機的使用和管理提供了一些建議。
眾所周知,如果你只需要處理一種類型的容器,那麼在雲環境中管理容器就很簡單。可一旦面對容器集群的管理,面對這種多樣化技術,那必將伴隨著一系列全新的管理挑戰。成功管理的關鍵在於,你要在墜入陷阱之前敏銳地發現它。
最簡單的容器使用場景是將現有的應用程序打包進Docker容器並分發:將所有應用程序的附屬項都封裝到Docker映像中,並添加單個文本文件(Dockerfile)來解釋如何創建映像。
監控這些容器與監控服務器是一樣的,該應用程序使用的進程和資源都可以在服務器上查看,沒有必要確認服務器所有必需的組件,因為它們都封裝在Docker映像中,並由Docker文件管理,包括正確的Java版本和Python庫。
容器如何更改服務器的管理任務
將應用程序放在Docker容器中意味著你不需要在服務器上更新和修復代碼,只需要更新Dockerfile並構建一個新的Docker映像即可。
容器的啟動和停止是秒級的,這比虛擬機快得多。支持微服務的應用程序將使用更多的容器,其中大多數都更新頻繁。該應用的每一個微服務都有自己的Docker映像,即微服務可以通過創建或停止容器來擴大或縮小應用的規模。
如何克服容器可移植性的障礙
由於你的應用程序依賴於容器之外的數據,所以你需要對存儲進行安排。最常見的形式是容器集群上的本地存儲,將存儲插件添加到每個容器映像中,並對公有云存儲AWS和Azure使用不同的存儲服務。
Google 的Kubernetes集群管理工具在容器編排管理方面提供了比Azure或AWS更靈活、更穩定的性能。但Google、Azure和AWS提供的服務都有一個共同的缺陷,便是它們將數據一定程度上限制在了平臺上,這使得應用程序的可移植性變得複雜。
雲容器存儲的另一個缺點是不一致的安全策略。跨平臺應用和執行安全訪問規則從來都不是件容易的工作。容器安全性的基礎是用戶/組目錄和用於實施訪問控制的身份管理系統。
選擇容器還是虛擬機需要考慮的因素有哪些
容器和虛擬機之間的差異是:虛擬化發生在不同的位置。虛擬機使用監控管理程序將服務器劃分到操作系統級別以下,因此虛擬機只共享硬件。容器的虛擬化發生在操作系統級別,因此容器共享操作系統和一些中間件。在虛擬機上運行應用程序更像是在裸機上運行它們,相反,在容器上運行的應用程序必須符合單一的軟件平臺。
另一方面,由於在部署和重新部署應用程序和組件時,平臺軟件的複用率要低得多,所以容器的開銷較虛擬機更少。每個服務器不僅可以運行更多的應用程序,而且容器可以讓你更快地部署和重新部署虛擬機。
還有一個缺點值得重視:聯合託管。當在容器中部署應用程序來共同託管所有應用程序的組件以加速網絡連接,這被認為是最佳的實踐方案。然而,聯合託管使得故障的處理和資源的轉移更加困難,這是混合雲的兩種常見情況。
在混合雲環境中的監測方面,雲管理平臺已經顯示了容器和虛擬機之間的區別。但面對安全性和合規性,要平衡容器和虛擬機之間的差異性可能還需要更長的時間。
本文為翻譯文章,文章觀點歸原作者所有
關於譯者Ghostcloud
Ghostcloud(中文名:精靈雲)是成都精靈雲科技有限公司旗下的基於Docker的PaaS/CaaS平臺品牌,核心團隊由來自EMC、Veritas、華為、IBM、Microsoft的核心技術主管和架構師組成。國內首批從事容器虛擬化研發的企業,為企業級行業客戶提供針對互聯網化、私有云管理平臺、大數據業務基礎架構的平臺服務。在國內Docker社區貢獻排名前三,主創團隊曾參與Beego開源項目研發,並主導發佈《Docker容器實戰:原理、架構與應用》一書。Ghostcloud因容器技術而生,致力於為多個領域的“互聯網+”轉型企業提供服務,是一流的企業級容器雲服務專家。
推薦閱讀: