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