Docker到底影響了什么?

責(zé)任編輯:editor005

2015-01-14 14:19:25

摘自:CSDN

目前,實(shí)際上泛云計(jì)算領(lǐng)域一些重量級(jí)廠家,無(wú)論是IaaS廠家, VM廠家還是SaaS廠家,無(wú)論是國(guó)際公司,還是國(guó)內(nèi)企業(yè),都在持續(xù)密切關(guān)注Docker,并評(píng)估Docker對(duì)自身業(yè)務(wù)的影響。

【編者按】作為2014年最火熱的技術(shù),Docker獲得了國(guó)內(nèi)外各大廠商的支持。本文中,云??萍糣P石海旭從傳統(tǒng)虛擬化,CaaS(容器即服務(wù)),IaaS,PaaS,CMP,傳統(tǒng)ISV,DevOps這幾個(gè)角度,分析了Docker所產(chǎn)生的影響,以下為原文:

Docker,14年最火的詞匯之一,引起了萬(wàn)千關(guān)注。在2014年邊上,拋開(kāi)種種技術(shù)性的內(nèi)容和環(huán)節(jié),我們覺(jué)得從更宏觀的角度和大家分享我們對(duì)Docker的一些認(rèn)識(shí), 相對(duì)也許是個(gè)更輕松,更適宜的話題。

我們不敢妄言創(chuàng)造未來(lái)是預(yù)測(cè)未來(lái)的最好的方法,我們只是習(xí)慣性的給出我們的觀點(diǎn)。畢竟,沒(méi)有觀點(diǎn),就沒(méi)有行動(dòng)。

無(wú)處不在的Docker

毫無(wú)疑問(wèn),DocKer成了近些年來(lái)最火熱,甚至最具顛覆性的技術(shù)之一。國(guó)際上,所有泛云計(jì)算相關(guān)的公司,幾乎都在某種程度上宣布支持并集成Docker。在2014年6月的DockerCon中,很多公司都分享了他們自己如何和Docker集成的故事。雖然每家公司用著各自不同方式實(shí)現(xiàn)著不同程度的同Docker的集成,但他們都一致認(rèn)識(shí)到了Docker可能會(huì)為他們帶來(lái)的潛在收益。Microsoft,Amazon,IBM,Google,F(xiàn)acebook,Twitter,Red Hat,Rackspace和Salesforce等諸多公司共聚一堂,共同支持某一技術(shù)的場(chǎng)面似乎也不是我們經(jīng)常能看到的。同時(shí),國(guó)內(nèi)眾多泛云計(jì)算公司,互聯(lián)網(wǎng)公司,甚至相對(duì)傳統(tǒng)的IT廠商也對(duì)Docker多有關(guān)注。

為什么像Microsoft或者Amazon這樣的巨頭會(huì)支持Docker?

為什么像之前的PaaS玩家,如Heroku和Google,也在Docker身后,搖旗吶喊?

Docker的出現(xiàn),是不是為所有的這些廠家提供了一個(gè)新的領(lǐng)域,新的競(jìng)技場(chǎng)?

Docker真的能融合IaaS和PaaS么?

我們又真的能相信上面的提到的廠家會(huì)持續(xù)的無(wú)條件的支持Docker么?

這一系列的問(wèn)題,在已經(jīng)過(guò)去的2014年并沒(méi)能給出答案,但在2015,相信一切會(huì)逐漸明朗。

似曾相識(shí)的歷史

如果說(shuō)在這之前,還有哪項(xiàng)技術(shù)獲得了類似的業(yè)界的廣泛支持,我想是Java。當(dāng)Java在上世紀(jì)90年代發(fā)布的時(shí)候,每一家公司都表示了極大的興趣,直到他們意識(shí)到Java實(shí)際上對(duì)他們自有的平臺(tái)其實(shí)是一種巨大威脅。Java的愿景是“Write Once,Run Anywhere”, 而Docker提出了“Build once,Run anywhere,Configure once,Run anything”。很大程度上,二者都對(duì)某些公司形成了潛在的威脅。盡管我們目前還看不到具體的一些公司針對(duì)可能的威脅采取的應(yīng)對(duì)措施,但未來(lái)是誰(shuí)也無(wú)法保證類似Java或VMware的歷史不會(huì)重演。

目前,實(shí)際上泛云計(jì)算領(lǐng)域一些重量級(jí)廠家,無(wú)論是IaaS廠家, VM廠家還是SaaS廠家,無(wú)論是國(guó)際公司,還是國(guó)內(nèi)企業(yè),都在持續(xù)密切關(guān)注Docker,并評(píng)估Docker對(duì)自身業(yè)務(wù)的影響。

傳統(tǒng)虛擬化

若干年前,當(dāng)VMwae剛剛開(kāi)始提供工作站虛擬化服務(wù)的時(shí)候,也許很少有人能想到它現(xiàn)在能成為企業(yè)IT服務(wù)中的主要力量,能取得現(xiàn)在的成就。隨后的幾年內(nèi),VMware已經(jīng)將虛擬化擴(kuò)展到服務(wù)器,而現(xiàn)在更是已經(jīng)擴(kuò)展到云計(jì)算領(lǐng)域。對(duì)于Docker及其生態(tài)系統(tǒng)而言,借鑒傳統(tǒng)虛擬化的經(jīng)驗(yàn),最終提供更安全,更健壯的生產(chǎn)環(huán)境的服務(wù)也應(yīng)是Docker的目標(biāo)之一。事實(shí)上,目前在裸機(jī)上直接運(yùn)行Docker也成了傳統(tǒng)VM之外的另一種選擇。

坦率的講,相較傳統(tǒng)虛擬化而言,Docker的一系列的問(wèn)題仍亟待解決,如缺乏成熟的管理工具,生態(tài)系統(tǒng)雖大但仍不完善。但我們?nèi)匀徽J(rèn)為,Docker或者說(shuō)容器虛擬化技術(shù)仍有很大機(jī)會(huì)能夠解決這些問(wèn)題,并最終取得相當(dāng)?shù)某晒Α?/p>

CaaS:容器即服務(wù)?

目前,已經(jīng)有一些新興公司,以有些類似IaaS的方式,提供容器服務(wù)(Containers as a Service)。長(zhǎng)遠(yuǎn)來(lái)看,也許CaaS的這種模式的出現(xiàn),會(huì)使跨IaaS平臺(tái)的動(dòng)態(tài)調(diào)度容器、移動(dòng)容器成為可能。就像IaaS的客戶不需要關(guān)心其虛擬機(jī)的實(shí)際品牌一樣,CaaS的客戶也不需要關(guān)心他的容器到底是運(yùn)行在AWS還是阿里云上??蛻魧?huì)自己選擇期望的地理位置,以及他們想要的容器運(yùn)行,然后CaaS服務(wù)商將提供自動(dòng)化的程序幫助進(jìn)行資源調(diào)配,幫助客戶選擇最便宜的或最合適的公有云平臺(tái)。

盡管這種在IaaS之上提供Docker容器的商業(yè)模式仍待討論和觀察,但Docker已經(jīng)取得了巨大的影響力,如果Docker今后能在更多的企業(yè),特別是企業(yè)的實(shí)際生產(chǎn)環(huán)境中發(fā)揮作用,我們認(rèn)為CaaS同樣是可以期待的。

對(duì)IaaS廠家的影響

從創(chuàng)業(yè)公司到IT巨頭,每一家公司都已經(jīng)意識(shí)到或者逐漸意識(shí)到基于硬件的虛擬化的所為企業(yè)帶來(lái)的益處。公有云廠商,如AWS、Azure所提供的IaaS服務(wù)更多越來(lái)越像水、電、煤等公共服務(wù)。而Docker的出現(xiàn),則便于這些IaaS廠商提供更細(xì)粒度計(jì)算資源,進(jìn)一步提高資源利用率,縮短資源開(kāi)通時(shí)間,進(jìn)而為進(jìn)一步壓縮公共云服務(wù)的成本提供了可能。對(duì)于如負(fù)載平衡、緩存和防火墻這些其他的IAAS的提供的服務(wù)而言,也可通過(guò)將其遷移到容器中,以提供更好的可移植性。

同時(shí),對(duì)于混合云而言,VMware vCHS(vCloud Hybrid Service)和微軟 Azure都在各種強(qiáng)調(diào)自身VM的可遷移性。而事實(shí)上,由于容器相比傳統(tǒng)的VM更輕量,Docker容器可以動(dòng)態(tài)地設(shè)置和遷移。從資源的利用率和可用性的而言,Docker是非常適合部署在混合云中,并能夠更好的發(fā)揮混合云的能力。

對(duì)PaaS廠家的影響

相比于IaaS,PaaS實(shí)際上起步更早。PaaS的初衷最是為了幫助開(kāi)發(fā)人員實(shí)現(xiàn)夠資源的自動(dòng)調(diào)整,而不必面對(duì)IT基礎(chǔ)設(shè)施管理的問(wèn)題。早些時(shí)候,人們?cè)?jīng)預(yù)計(jì)PaaS將超越 IaaS,成為云計(jì)算領(lǐng)域中增長(zhǎng)最快的市場(chǎng)。但幾年后,由于Amazon在IaaS領(lǐng)域的巨大成功,使得早期的PaaS玩家,如Microsoft和Google意識(shí)到,IaaS相比PaaS而言,壁壘較低,更容易取得市場(chǎng)的認(rèn)可。所以現(xiàn)在Microsoft和Google除了在原有的PaaS領(lǐng)域外,在IaaS領(lǐng)域也和Amazon展開(kāi)了激烈競(jìng)爭(zhēng)。

就PaaS而言,PaaS廠商希望提供規(guī)范、一致的環(huán)境,而企業(yè)應(yīng)用,無(wú)論是從開(kāi)發(fā)、管理還是運(yùn)維上都有各種個(gè)性化的需求。二者之間這種很難克服的沖突阻礙了市場(chǎng)的對(duì)PaaS的認(rèn)可和接受。另外,每一PaaS廠商都在為應(yīng)用提供各自的服務(wù)和API,這就造成了應(yīng)用在PaaS廠商之間的移植是很困難的。一些組織在PaaS的遷移方面做了積極嘗試,甚至希望能實(shí)現(xiàn)跨云服務(wù)提供商的遷移。但是由于沒(méi)能得到類似Google App Engine和Microsoft Azure這樣的廠家支持,目前這些工作還還很難成為事實(shí)上的行業(yè)標(biāo)準(zhǔn)。

Docker的出現(xiàn)使PaaS以更簡(jiǎn)潔的方式為開(kāi)發(fā)者提供服務(wù)成為了可能,Cloud Foundry目前也開(kāi)始支持并集成Docker容器。有了Docker,開(kāi)發(fā)人員不再需要為處理各種開(kāi)發(fā)、 測(cè)試、生產(chǎn)環(huán)境的差異而花費(fèi)大量精力,他們可以將一個(gè)干凈的開(kāi)發(fā)環(huán)境直接遷移到生產(chǎn)環(huán)境,而不必?fù)?dān)心各種依賴和配置問(wèn)題。這有效的解決了開(kāi)發(fā)者經(jīng)常面臨的“依賴陷阱”。開(kāi)發(fā)者不再需要為了使應(yīng)用能夠在PaaS中運(yùn)行而學(xué)習(xí)額外的編程方式,他們的應(yīng)用不需任何調(diào)整就可運(yùn)行在Docker容器中。同時(shí),Docker出現(xiàn)之后,開(kāi)發(fā)者越來(lái)越多的考慮以Micro Service(微服務(wù))的方式來(lái)實(shí)現(xiàn)他們的應(yīng)用。長(zhǎng)遠(yuǎn)來(lái)看,Docker將會(huì)使PaaS更易管理,更快地提供服務(wù)。

總體上說(shuō),Docker已經(jīng)對(duì)仍在不斷變化、演進(jìn)的PaaS市場(chǎng)產(chǎn)生了影響。但這種影響究竟會(huì)加速PaaS的演進(jìn),打亂PaaS的演進(jìn),還是兼而有之,目前言之尚早。盡管目前還不是非常成熟,但Docker通過(guò)容器級(jí)虛擬化的方式,仍為樂(lè)于嘗試的企業(yè)提供了一個(gè)解決環(huán)境依賴和可移植性問(wèn)題的方案。

跨云的管理工具

多云管理軟件通常被稱為云計(jì)算管理平臺(tái) (CMP)。CMP通過(guò)對(duì)底層云平臺(tái)的抽象, 幫助客戶來(lái)定義應(yīng)用部署的拓?fù)浣Y(jié)構(gòu)。這種拓?fù)浣Y(jié)構(gòu)是獨(dú)立于具體的云提供商或者云平臺(tái)的。客戶可以通過(guò)CMP來(lái)選擇的具體的某一云平臺(tái)來(lái)部署自己服務(wù)。通過(guò)CMP,客戶永遠(yuǎn)不必處理具體某一云平臺(tái)的特定的用戶界面或API。這樣,通過(guò)CPM,會(huì)把所有的云平臺(tái)置于一個(gè)相同的公平競(jìng)爭(zhēng)環(huán)境。

為避免被具體的云平臺(tái)綁定,CMP一般只使用云平臺(tái)提供的基礎(chǔ)的計(jì)算單元,數(shù)據(jù)塊存儲(chǔ),對(duì)象存儲(chǔ)網(wǎng)絡(luò)服務(wù)。一些CMP還將將自己的負(fù)載均衡、 數(shù)據(jù)庫(kù)服務(wù)和應(yīng)用服務(wù)部署到每個(gè)云平臺(tái)。這樣會(huì)進(jìn)一步避免將應(yīng)用綁定到具體某一云平臺(tái)。舉例來(lái)講,當(dāng)客戶在AWS上進(jìn)行災(zāi)難恢復(fù)的時(shí)候,通過(guò)CMP,他們也可以選擇在自己的基于傳統(tǒng)VM的私有云環(huán)境中運(yùn)行他們的應(yīng)用。

在很多方面,Docker提供了類似CMP的跨平臺(tái)移植能力。客戶可以通過(guò)Dockerfile聲明一個(gè)Docker鏡像和相關(guān)的拓?fù)浣Y(jié)構(gòu),并把鏡像build到具體的云平臺(tái)中。與CMP類似,通過(guò)Docker,也可以將額外管理所需的網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等服務(wù)以容器的方式部署,進(jìn)而滿足各種具體的需要。

同時(shí),一些新的基于Docker的管理工具也提供了多云平臺(tái)的容器管理功能。事實(shí)上,這同CMP的功能有所重疊,而一些CMP廠家也正在評(píng)估Docker的影響。

像PaaS一樣,我們不確認(rèn)Docker到底會(huì)增加對(duì)CMP的需求,抑或反之?

同時(shí),Docker的出現(xiàn)會(huì)不會(huì)讓?xiě)?yīng)用的故障追蹤以及處理變得更復(fù)雜?而云計(jì)算管理平臺(tái)會(huì)不會(huì)集成對(duì)Docker的管理?

對(duì)傳統(tǒng)ISV的影響

對(duì)于傳統(tǒng)ISV而言,在整個(gè)SDLC(Systems Development Life Cycle)環(huán)節(jié)中引入Docker,可能會(huì)成為一種趨勢(shì)。Docker的引入,除了在ISV內(nèi)部的開(kāi)發(fā)、測(cè)試中會(huì)極大的解決配置依賴等問(wèn)題,進(jìn)而提升整體效率。 我們認(rèn)為,以容器為核心的持續(xù)集成和持續(xù)交付,最終將容器作為ISV向客戶、向客戶的云平臺(tái)交付的實(shí)體,對(duì)于ISV及其客戶而言,都會(huì)有很大的效率提升。

雖然目前,我們不清楚究竟是更多的ISV向其客戶推薦了Docker,還是更多客戶要求ISV基于Docker進(jìn)行開(kāi)發(fā),還是兩種可能都會(huì)有。但我們相信,Docker在企業(yè)應(yīng)用市場(chǎng),類似之前的VMware,會(huì)得到廣泛應(yīng)用。

對(duì)DevOps的影響

目前市場(chǎng)上雖然有很多各種各樣的DevOps工具,希望幫助解決開(kāi)發(fā)人員和運(yùn)維人員之間的Gap。但Docker的出現(xiàn),事實(shí)上提供了一種同Devops理念非常契合的框架?;贒ocker:

開(kāi)發(fā)人員可以更專注于他們的代碼,而不用擔(dān)心如何在生產(chǎn)環(huán)境中運(yùn)行他們;

運(yùn)維團(tuán)隊(duì)在部署的時(shí)候,可以視容器為一個(gè)獨(dú)立的完整的模塊;

Docker分層的文件系統(tǒng),使環(huán)境配置易于管理、維護(hù);

像Git工作流一樣,通過(guò)Dockerfile,即便是復(fù)雜、異構(gòu)的開(kāi)發(fā)、測(cè)試環(huán)境,仍然可以高效的管理;

即便在同一個(gè)VM中,多個(gè)容器仍能運(yùn)行多種不同的環(huán)境;

…..

我們認(rèn)為Doker很有可能會(huì)對(duì)Devops的生態(tài)系統(tǒng)產(chǎn)生重要影響,甚至很有可能從根本上改變開(kāi)發(fā)、運(yùn)維的協(xié)作方式,并對(duì)市場(chǎng)上已有的持續(xù)集成,持續(xù)部署的解決方案造成重大影響。

事情總是會(huì)前進(jìn)的,雖然并不一定以我們想象的方式

寫(xiě)在后面的話

Docker正在面臨Java之前所面臨過(guò)的類似的挑戰(zhàn)。鑒于Docker很可能打亂甚至顛覆現(xiàn)有市場(chǎng),目前很多公司正在密切關(guān)注并且評(píng)估Docker對(duì)自身業(yè)務(wù)的影響,如果需要,我們相信這些公司會(huì)以不同方式向Docker公司施加影響。Docker公司在未來(lái)也許會(huì)變得更加謹(jǐn)慎。

但我們更愿意從另外一個(gè)角度來(lái)看,我們相信,以Docker為代表的這一類容器虛擬化技術(shù)已經(jīng)取得長(zhǎng)足進(jìn)步,無(wú)論Docker公司本身未來(lái)如何,容器虛擬化技術(shù)的進(jìn)步以及推廣,必將帶來(lái)深刻的產(chǎn)業(yè)影響。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)