每個人都喜歡Docker。為什么不喜歡呢?它們不僅是一個條理清楚的一體化結(jié)構(gòu),同時它們還可提供更好的云端至云端移植性和工作負(fù)載管理。此外,Docker還為創(chuàng)建基于云的分布式系統(tǒng)提供了一個強大基礎(chǔ)。與目前我們所管理的云工作負(fù)載相比,基于云的分布式系統(tǒng)的工作負(fù)載遷移起來更加容易。
Docker1.0版為我們清晰地展示了這一技術(shù)對于企業(yè)將應(yīng)用遷移至云平臺上這一舉措來說意味著什么。我們知道亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)、谷歌和紅帽等主要的云技術(shù)提供商已經(jīng)接受了Docker,并在他們的產(chǎn)品和服務(wù)中對Docker提供支持。
實際上,谷歌App Engine開發(fā)者已經(jīng)能夠通過谷歌云平臺的虛擬機管理功能為他們的應(yīng)用創(chuàng)建和部署Docker鏡像。現(xiàn)有的Docker鏡像也可以通過這種方式被獲取和被部署。
在一些云實例中,Docker是一個非常重要的架構(gòu)和部署方式。如今它們已經(jīng)具備了挑戰(zhàn)一些云服務(wù)提供商的實力。包括將精力放在PaaS[注](平臺即服務(wù)[注])方面在內(nèi)的部分云服務(wù)提供商正在嘗試著解決應(yīng)用的移植性問題,然而Docker的使用可能會使他們的解決方案不起作用,尤其是那些使用虛擬機或抽象[注]層的解決方案會受到Docker的威脅。
通過虛擬機提升可移植性的云服務(wù)如今已經(jīng)發(fā)現(xiàn)應(yīng)用開發(fā)者更偏愛使用輕量級的Docker解決方案以讓應(yīng)用具有可移植性,因為Docker解決方案在應(yīng)用執(zhí)行和遷移時需要更少的資源。此外,與其它虛擬機技術(shù)相比,Docker更加開放,且支持范圍更廣。
部分PaaS提供商在應(yīng)用遷移方案中使用了抽象層技術(shù),即在應(yīng)用和基礎(chǔ)云服務(wù)之間設(shè)置了一個轉(zhuǎn)換層(即抽象層)。與Docker解決方案相比,這一解決方案和虛擬機解決方案一樣具有更多的專利保護且讓開發(fā)者難以部署。
如今Docker正在促使更多的云提供商選擇它們,因為這些云提供商非常清楚,Docker對于向云平臺遷移的應(yīng)用來說可以提供更好的可移植性,并且這一解決方案將被廣泛采用。由于Docker是開放的,并受到了廣泛關(guān)注和支持,因此它們讓部分云提供商難以實施“套牢”策略(即廠商鎖定策略)。
對于那些企圖實施“套牢”策略的云提供商來說,即便他們的應(yīng)用或工作負(fù)載可移植性專利解決方案在一些案例中取得了良好的效果,但是在Docker面前也將變得蒼白無力。