中國(guó)IDC圈3月23日?qǐng)?bào)道,Docker已經(jīng)壟斷了容器技術(shù)。設(shè)計(jì)應(yīng)用時(shí)注意考慮便攜性能夠幫助企業(yè)利用容器技術(shù)能提供的所有優(yōu)勢(shì)。
隨著Docker應(yīng)用和容器越來(lái)越流行,很多公司都開(kāi)始將容器技術(shù)作為其云運(yùn)維系統(tǒng)和應(yīng)用打包的基礎(chǔ)。業(yè)務(wù)喜歡容器系統(tǒng)勝過(guò)虛擬機(jī),因?yàn)槿萜髂軌蛱峁┛蓴U(kuò)展性、便攜性和高效性。和虛擬機(jī)不一樣,多個(gè)容器能夠運(yùn)行在同一個(gè)內(nèi)核的宿主OS上,所以額外消耗更少,性能更優(yōu)。
Docker為容器內(nèi)的應(yīng)用提供環(huán)境,該環(huán)境在平臺(tái)間可移動(dòng)。Docker是很流行的選擇,因?yàn)槠浜?jiǎn)化了應(yīng)用程序部署和管理?;谄溟_(kāi)源設(shè)計(jì),開(kāi)發(fā)人員能夠?yàn)槠錁I(yè)務(wù)特定的獨(dú)特需求貢獻(xiàn)特性。Docker的一大優(yōu)勢(shì)是它是廣泛使用的容器管理系統(tǒng);因此,有大量可用的支持資源。
要為Docker和容器優(yōu)化應(yīng)用設(shè)計(jì),需要遵守如下四點(diǎn)。
考慮業(yè)務(wù)和應(yīng)用目標(biāo)
容器介于獨(dú)占服務(wù)器和虛擬機(jī)之間。它提供高于操作系統(tǒng)(OS)的隔離性,但是不及虛擬機(jī)。確定使用容器的目標(biāo),以及期望得到什么結(jié)果。這個(gè)問(wèn)題的答案決定了Docker應(yīng)用如何設(shè)計(jì)。
使用容器的最佳理由是構(gòu)建和公有云服務(wù)混合的私有云。容器在運(yùn)維實(shí)踐方面幫助統(tǒng)一了混合云;當(dāng)有統(tǒng)一OS平臺(tái)時(shí),混合容器表現(xiàn)最好。因?yàn)樗腥萜鞫荚谙嗤瑑?nèi)核上運(yùn)行,確保OS是一致的,從而避免不兼容。為容器應(yīng)序使用匹配OS版本的中間件服務(wù)。如果在不同OS上運(yùn)行Docker應(yīng)用,最好將它們當(dāng)做獨(dú)立的Docker社區(qū)。
采用集合的觀念
當(dāng)應(yīng)用及其相關(guān)組件是在同一臺(tái)服務(wù)器上構(gòu)建,移動(dòng)和擴(kuò)展時(shí),Docker能夠發(fā)揮最大的效用。通過(guò)將應(yīng)用和組件打包進(jìn)一個(gè)應(yīng)用程序特定的容器,用戶可以受益于Docker這方面的優(yōu)勢(shì)。
打包應(yīng)用以及所需組件的關(guān)鍵是理解組件工作流。通過(guò)研究組件間的工作找到最為自然的組件組的劃分,并且確定哪里的交互最頻繁。
知道容器的名字
Docker給每個(gè)容器分配了自己的命名空間和文件系統(tǒng)。確保其他流程能夠訪問(wèn)這一功能以及共享數(shù)據(jù)。網(wǎng)絡(luò)連接性是其中一方面,但是其他方面控制所有應(yīng)用目錄,包括域名系統(tǒng)(DNS)。
思考這些處于獨(dú)立子網(wǎng)里的組件和微服務(wù),就像一系列運(yùn)行著Docker容器的服務(wù)器。用戶需要管理代表這些服務(wù)器的URL,也需要管理Docker容器。如果使用Docker和SOA/SOAP,要確保在部署或者移動(dòng)單個(gè)或多個(gè)容器時(shí)更新了服務(wù)目錄。
創(chuàng)建連接
云容器互相集成,通常都包含非容器化的應(yīng)用組件。Docker花了很多力氣去管理容器部署,但是還不太擅長(zhǎng)管理工作流集成。當(dāng)選擇使用容器時(shí),找出容器能夠提供了什么,并且確保能夠滿足自己的需求。Docker新用戶會(huì)遇到的最常見(jiàn)的問(wèn)題是Docker應(yīng)用訪問(wèn)不了Internet或者企業(yè)網(wǎng)絡(luò)。Docker能夠輔助遠(yuǎn)距離的鏈接,但是用戶得自己建立鏈接。
Docker在確保容器兼容性方面真的很有用。不幸的是,當(dāng)集成跨云容器的工作流時(shí)無(wú)法保證兼容性。大部分工作流是通過(guò)目錄功能,比如DNS集成的。當(dāng)部署或者移動(dòng)容器時(shí)要確保去更新這些目錄。