《第一本Docker書(修訂版)》——1.4 Docker與配置管理
本節書摘來自異步社區《第一本Docker書(修訂版)》一書中的第1章,第1.4節,作者:【澳】James Turnbull(詹姆斯•特恩布爾)著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
1.4 Docker與配置管理
從Docker項目公布以來,已經有大量關於“哪些配置管理工具適用於Docker”的討論,如Puppet、Chef。Docker包含一套鏡像構建和鏡像管理的解決方案。現代配置管理工具的原動力之一就是“黃金鏡像”模型[8]。然而,使用黃金鏡像的結果就是充斥了大量、無管理狀態的鏡像:已部署或未部署的複雜鏡像數量龐大,版本狀態混亂不堪。隨著鏡像的使用,不確定性飛速增長,環境中的混亂程度急劇膨脹。鏡像本身也變得越來越笨重。最終不得不手動修正鏡像中不符合設計和難以管理的配置層,因為底層的鏡像缺乏適當的靈活性。
與傳統的鏡像模型相比,Docker就顯得輕量多了:鏡像是分層的,可以對其進行迅速的迭代。數據表明,Docker的這些特性確實能夠減輕許多傳統鏡像管理中的麻煩。現在還難以確定Docker是否可以完全取代配置管理工具,但是從冪等性和內省性來看,Docker確實能夠獲得非常好的效果。Docker本身還是需要在主機上進行安裝、管理和部署的。而主機也需要被管理起來。這樣,Docker容器需要編配、管理和部署,也經常需要與外部服務和工具進行通信,而這些恰恰是配置管理工具所擅長的。
Docker一個顯著的特點就是,對不同的宿主機、應用程序和服務,可能會表現出不同的特性與架構(或者確切地說,Docker本就是被設計成這樣的):Docker可以是短生命周期的,但也可以用於恒定的環境,可以用一次即銷毀,也可以提供持久的服務。這些行為並不會給Docker增加複雜性,也不會和配置管理工具的需求產生重合。基於這些行為,我們基本不需要擔心管理狀態的持久性,也不必太擔心狀態的複雜性,因為容器的生命周期往往比較短,而且重建容器狀態的代價通常也比傳統的狀態修複要低。
然而,並非所有的基礎設施都具備這樣的“特性”。在未來的一段時間內,Docker這種理想化的工作負載可能會與傳統的基礎設備部署共存一段時間。長期運行的主機和物理設備上運行的主機在很多組織中仍具有不可替代的地位。由於多樣化的管理需求,以及管理Docker自身的需求,在絕大多數組織中,Docker和配置管理工具可能都需要部署。
最後更新:2017-06-01 14:01:39