Docker的容器易于在各種數(shù)據(jù)中心、設(shè)備或云部署應用程序
想象一下,假如有一個常用的虛擬主機環(huán)境,在那個環(huán)境中,不得不在許多用戶之間安全地分割物理資源,用戶必須是分割的,且擁有他們自己的“虛擬空間”。
現(xiàn)在,為了管理這些用戶和他們各自的資源,部署了一個強有力的工具,允許操作系統(tǒng)內(nèi)核擁有彼此隔離和分割的多用戶空間實例。這些用戶空間實例,也稱之為容器,使用戶在容器中的操作,就像使用自己專用的服務器一樣。對這些容器擁有最高權(quán)限的管理員,可以圍繞資源管理、操作系統(tǒng)中與其它容器的交互以及必要的安全參數(shù)設(shè)置相應策略。同時,這個管理員也可以管理和監(jiān)視這些容器,甚至為各個節(jié)點間的動態(tài)負載平衡設(shè)置自動策略。
操作系統(tǒng)虛擬化是個偉大的工具,用來創(chuàng)建強大且隔離的多用戶環(huán)境。然而,在使用容器和操作系統(tǒng)虛擬化時,很多場景下也帶來了一些新的挑戰(zhàn):
如果你有超大數(shù)量的容器,并且它們需要大量的虛擬機資源;
如果你需要更好的自動化和控制這些容器的部署和管理;
如何創(chuàng)建一個不僅僅能運行在Linux服務器上的容器平臺?
在保證操作可行性的前提下,如何在公有云或私有云以及介于兩者之間的任何地方部署一個解決方案?
在以上場景中,應用容器發(fā)揮了巨大的作用,我們來看一個非常具體的例子。像Docker這樣的技術(shù),為運行在Linux上的操作系統(tǒng)級虛擬化平臺增加了新層次的抽象和自動化。Docker使用cgroups來實現(xiàn)了新類型的隔離特性,允許隔離的容器在它們自己的Linux實例上運行。當使用分布在多個不同節(jié)點的大量容器時,Docker可以幫助減少新啟動一個虛擬機的額外開銷。
了解這些以后,重要的是要知道,越來越多的組織正在部署構(gòu)建在Linux服務器上的工作負載。這些工作負載正在運行大數(shù)據(jù)庫、挖掘操作、大數(shù)據(jù)引擎等等各種作業(yè)。在這些Linux內(nèi)核中,容器利用率也在增加,像Docker這樣的平臺可以通過以下方式對其進行協(xié)助:
更強的容器控制。應用容器幫助抽象操作系統(tǒng)級的虛擬化進程,這給予管理員對提供的服務進行更好地控制,以及更好的安全性和進程限制,甚至更多智能資源隔離。另一重要的方面是,允許跨越不同系統(tǒng)的容器共享資源,并控制它們的共享方式。
創(chuàng)建分布式系統(tǒng)。像Docker這樣的平臺允許管理員管理容器、他們的任務、運行的服務和其它橫跨分布式、多節(jié)點和系統(tǒng)的進程。在一個大系統(tǒng)中,Docker有個“source-on-demand”的環(huán)境,每個節(jié)點需要資源時都可以立即獲得。因此,可以集成需要大規(guī)模和大量資源的系統(tǒng),比如MongoDB。有鑒于此,現(xiàn)在的大數(shù)據(jù)平臺跨越不同的、高度分布的節(jié)點,這些節(jié)點位于公有云或服務供應商的私有數(shù)據(jù)中心。如何將你的容器與云進行集成?
云集成和跨越集成。去年6月, 微軟Azure開始支持Linux虛擬機上的Docker容器。使得廣泛的Docker化的Linux應用生態(tài)系統(tǒng)運行在Linux云上。伴隨著更多的云利用率,使用Docker的容器系統(tǒng)也可以與Chief、Puppet、OpenStack和AWS進行集成。甚至 紅帽最近宣布將assystemd、SELinux等先進的Linux工具并入Docker中。所有的這些工具允許你跨越自有的數(shù)據(jù)中心來擴展你的容器系統(tǒng)。新功能允許你創(chuàng)建自有的混合云容器生態(tài)系統(tǒng)來擴展數(shù)據(jù)中心,例如 AWS。
Docker和其它開源項目繼續(xù)抽象操作系統(tǒng)級的虛擬化,允許更好地對Linux的工作負載進行分布式處理。像Docker這樣的技術(shù)圍繞容器管理和自動化道路進行發(fā)展。實際上,微軟意識到,很多環(huán)境中同時使用了Linux和Windows Server,因此,他們提供了跨越Windows Server和Linux的開放解決方案。如果你正在使用一個運行在Linux服務器的基于容器的解決方案,該著手看看應用容器如何幫助發(fā)展你的生態(tài)系統(tǒng)。