Docker容器有著各種各樣的好處。但是不考慮應用程序的特點而對所有軟件強行實施則未免過于教條主義了。
在2014年,Docker容器軟件已受到了從科技巨頭到企業的廣泛注意。但是,隨著容器概念轉變成為現實世界中的成熟技術,那么問題就變成了:哪些應用程序能夠從Docker容器技術中獲得最大的好處呢?
一般而言,Docker容器技術可以讓三種類型的應用程序受益頗多:
需要在跨一個以上的云計算中運行的應用程序
使用微服務的應用程序
能夠從開發運營中得益的應用程序
Docker容器相同又不同
Docker容器與其他的容器技術都是大致類似的。但是,Docker在一個單一的容器內捆綁了關鍵的應用程序組件,這也就讓這容器可以在不同平臺和云計算之間實現便攜性。其結果就是,Docker就成為了需要實現跨多個不同環境運行的應用程序的理想容器技術選擇。
此前,便攜性也是基于云計算技術平臺的一個痛腳。但是,由于Docker提供的架構和技術能夠實現便攜性,所以大多數的主流公共云計算供應商都能夠從中受益。通過使用Docker容器技術,提供便攜性的責任也就從云計算供應商轉移到了開發人員身上。
Docker還可以讓使用微服務的應用程序得益,所謂微服務就是把應用程序分解成為專門開發的更小服務。 這些服務使用通用的REST API來進行交互。使用完全封裝Docker容器的開發人員可以針對采用微服務的應用程序開發出一個更為高效的分發模式。
但是,這究竟意味著什么呢?開發人員和架構師可以開發出在多個平臺上運行并生產和使用微服務的應用程序。開發人員可以使用這一架構來開發分布式應用程序,而微服務則可以是分布式和自治的。
最后,可從開發運營流程中受益的應用程序通常也能夠從Docker中獲益。Docker可允許開發人員在容器內進行開發工作,而運營團隊可同時在容器外執行運營工作。
Docker對開發人員的好處
開發人員還能夠從Docker中獲得敏捷性。在應用程序和底層主機平臺之間有著一個抽象層。因此,開發人員能夠快速地開發、修改或部署新的和現有的應用程序,而無需擔心所需的平臺服務。類似的,Docker應用程序也可以在開發、測試以及生產階段運行。
Docker的核心優勢在于封裝一整個應用程序。所以,在開發運營中,Docker消除了對缺少依賴或錯誤的關注,而這是由于底層操作系統和平臺中的差異造成的。
IT行業有很多理由將朝著基于Docker的開發繼續發展下去。雖然容器技術能夠提供并實現了應用程序部署與運行的新方法,但是Docker也不是萬能的。雖然Docker容器提供了很多的優點,但是它也不是所有應用程序的理想選擇。在采用這項技術之前,清醒地了解其運行環境是否能夠從Docker中獲益將是非常重要的。