過去的數(shù)月間,Docker成為了疾行中的云計算世界的新寵。它的出現(xiàn)讓云服務(wù)體系中略顯穩(wěn)固的格局重新松動,并且掀起了新一波的創(chuàng)業(yè)狂潮。對于這位不期而至的攪局者,我們需要了解更多。
從2014年的下半年開始,可能沒有誰會比Docker更加容易地搶占科技媒體的頭條位置了。雖然其技術(shù)本身仍然處在從測試環(huán)境向生產(chǎn)環(huán)境不斷磨合的進程之中,但是它所釋放的強大吸引力,以及在短期內(nèi)即獲得重量級廠商集體追捧的態(tài)勢,瞬間在云計算世界中掀起了新一輪的狂熱。作為開源項目中耀眼的新星,Docker為開發(fā)者提供了一個開源的應(yīng)用容器引擎,讓他們可以將應(yīng)用以及應(yīng)用相關(guān)的組件打包到一個可移植的容器中,然后發(fā)布到任何流行的Linux機器之上。
Docker最為關(guān)鍵的價值體現(xiàn)在哪里?對于開發(fā)者和用戶而言,Docker用開源的方式進一步降低了應(yīng)用運行的顆粒度。具體來說,原本在云端需要以虛擬機為單位運行的應(yīng)用,現(xiàn)在可以以更為經(jīng)濟的方式,運行在具備更細顆粒度的容器之上。而這些容器還具備了跨越不同計算平臺部署和運行的能力,輕松化解了應(yīng)用可能會被底層云平臺鎖定的疑慮。如果你熟悉云計算技術(shù)近年來發(fā)展的每一次脈動,那么就不難把Docker理解為顛覆傳統(tǒng)IT的又一股新生力量。不同IT系統(tǒng)中持續(xù)攀升的虛擬化比例,支撐起Docker大展拳腳的舞臺,而Docker的盛行也開始悄悄地對操作系統(tǒng)層產(chǎn)生侵蝕。
人們總是喜歡用“生逢其時”這樣的詞匯來描繪Docker的閃亮登場。其實,在2013年3月首個版本發(fā)布之時,Docker遠沒有今天這般光芒四射。如今,提到容器技術(shù),人們總是首先想到Docker。但事實上,容器的歷史是悠久且多元化的。容器最早的蹤跡可以追溯到1979年Unix版本7的chroot指令。再后來,它又以FreeBSD Jail、AIX工作負載分區(qū),以及Solaris Zones等形式出現(xiàn),并且被廣泛使用。
進入云計算時代,容器技術(shù)也早早“隨風(fēng)潛入夜”。微軟和谷歌的PaaS平臺(Microsoft Azure和Google App Engine)、VMware所開發(fā)的開源PaaS平臺Cloud Foundry,以及國內(nèi)的PaaS先驅(qū)新浪SAE(Sina App Engine)都采用了比虛擬機更小的顆粒度來運行應(yīng)用。也就是說,在這些PaaS平臺之上,應(yīng)用已經(jīng)運行在類似容器的載體之上。最受歡迎但卻少有人知的容器技術(shù),恐怕就算是谷歌的Imctfy了。它每周要運行20億個容器,在這些容器上運行著谷歌Docs、Gmail等著名應(yīng)用。Cloud Foundry開源框架中所采用的類Docker的容器技術(shù)名為Warden(典獄長),它同樣可以被用來創(chuàng)建和管理一些小于虛擬機的隔離環(huán)境。
不過,這些先期出現(xiàn)的容器技術(shù)大部分都長期停留在企業(yè)自用階段,其便利性和開放性未能廣泛輻射到廣大的開發(fā)者人群。關(guān)鍵性的突破最終還是由Linux世界發(fā)起了。基于LXC(Linux Container,Linux容器),PaaS廠商dotCloud開源了采用Go語言開發(fā)的高級容器引擎Docker,并且圍繞其快速組建起開源的生態(tài)環(huán)境,真正吹響了云端應(yīng)用交付與運營變革的號角。
成就了誰?威脅了誰?
作為繼OpenStack之后最耀眼的開源明星,Docker與生俱來的顛覆氣質(zhì)為云服務(wù)的交付帶來了新的可能。由于比虛擬機更加靈巧和高效,Docker能夠讓云端應(yīng)用的部署更具靈活性和流動性。而這樣的特性也自然而然地對IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺即服務(wù))和SaaS(軟件即服務(wù))這一經(jīng)典的云端服務(wù)模型產(chǎn)生了不容忽視的影響。
最近一段時間,越來越多的從業(yè)者就Docker對IaaS和PaaS領(lǐng)域的影響展開討論。其中,Docker正在或即將為PaaS世界帶來的變化尤為引人關(guān)注。曾在微軟和VMware服務(wù)多年的喻勇是Cloud Foundry中文社區(qū)的主要建設(shè)者和推動者,也是Docker中文社區(qū)的早期成員。作為一位見證了PaaS技術(shù)變遷的技術(shù)從業(yè)者,喻勇表示,Docker的出現(xiàn)有望催生新的服務(wù)形態(tài),同時讓PaaS變得更專注,推動云計算從資源獲取方式到應(yīng)用服務(wù)平臺的跨越。而這樣的一次技術(shù)裂變也讓喻勇發(fā)現(xiàn)了寶貴的創(chuàng)業(yè)機會。2015年3月,他正式成為一名Docker領(lǐng)域的創(chuàng)業(yè)者。
DaoCloud聯(lián)合創(chuàng)始人 喻勇
“以谷歌GAE為代表的PaaS 1.0時代已經(jīng)采用了比虛擬化更加細小的應(yīng)用運行顆粒度,但它存在的致命問題是對應(yīng)用程序的侵入性。也就是說要求開發(fā)者對程序代碼進行限制;Cloud Foundry和OpenShift是PaaS 2.0時代的代表性平臺,它們的進步體現(xiàn)在基本上消除了應(yīng)用程序的侵入性,但是對DevOps本身環(huán)境變量的傳遞和部署仍有要求。也就是說,云端應(yīng)用運行的‘最后一公里’仍未打通。”喻勇說。
喻勇表示,在理想的PaaS 3.0模型中,預(yù)計要解決的三個問題包括:代碼底層的運行時與運行環(huán)境的提供、應(yīng)用實例運行的顆粒度、應(yīng)用的調(diào)度與運維。“以Docker為代表的容器技術(shù)的出現(xiàn),讓前兩個問題(PaaS平臺長期未能解決的兩個問題)迎刃而解,PaaS服務(wù)商可以將開發(fā)精力集中在應(yīng)用的調(diào)度與運維層面,提供更加精細化、靈活的平臺級服務(wù)。在業(yè)務(wù)的驅(qū)動下,互聯(lián)網(wǎng)時代的軟件追求快速開發(fā)、快速迭代、快速部署。未來軟件的交付件是容器,這將推動云平臺原生應(yīng)用的大踏步發(fā)展。”他說。
Docker對正在快速成熟的IaaS領(lǐng)域會帶來怎樣的影響?OpenStack創(chuàng)業(yè)企業(yè)UnitedStack聯(lián)合創(chuàng)始人兼CEO程輝表示,Docker的出現(xiàn)對IaaS層服務(wù)能力是一種很好的補充,同時它也會進一步地壓榨IaaS資源,讓IaaS層計算資源得以更充分地利用。總而言之,Docker與IaaS是補充而非替代的關(guān)系。“Docker與虛擬主機有著截然不同的側(cè)重點。虛擬主機側(cè)重完美的隔離、完整的物理機性能模擬,而Docker最突出的技術(shù)屬性在于輕量級和易遷移的能力。”程輝說。
UnitedStack聯(lián)合創(chuàng)始人兼CEO 程輝
創(chuàng)業(yè)之前,程輝曾經(jīng)在新浪參與了PaaS平臺SAE的開發(fā)。他坦言,從某種程度上說,Docker的出現(xiàn)或許會改變一些PaaS平臺的建設(shè)和實現(xiàn)方式。“在PaaS平臺之上,即共享又隔離的問題一直是存在的。比方說,一個Apache Web Server上運行著很多用戶的應(yīng)用,隔離通常是針對Apache Web Server層展開的。Docker出現(xiàn)之后,隔離操作可以在主機操作系統(tǒng)和Apache Web Server之間進行。這也意味著,PaaS變得更加容易實現(xiàn)了。”程輝說。
“Docker出現(xiàn)之后,IaaS的計算密度有望進一步提升,同時它也提供了一種新的PaaS實現(xiàn)方法。目前看來,Docker在IaaS層面的影響較小,對PaaS的影響會更大一些。”Docker創(chuàng)業(yè)企業(yè)云棧科技(NiceScale)的聯(lián)合創(chuàng)始人兼CEO王利俊說。在創(chuàng)立這家公司前,王利俊曾是新浪云計算負責(zé)人,全程見證了新浪SAE平臺的成長。在王利俊看來,與FreeBSD Jail、Solaris Zones等原有容器技術(shù)相比,Docker最具革命性的價值體現(xiàn)在它的打包和鏡像技術(shù)。它們真正釋放了開發(fā)者的想象力,讓軟件的開發(fā)、測試過程變得更加順暢,也讓用鏡像交付軟件成為可能。
云棧科技(NiceScale)聯(lián)合創(chuàng)始人兼CEO 王利俊
Docker實際對PaaS創(chuàng)業(yè)者產(chǎn)生了哪些影響?王利俊的創(chuàng)業(yè)公司已經(jīng)用行動做出了詮釋。2014年10月,王利俊通過網(wǎng)絡(luò)發(fā)布了被廣泛關(guān)注的文章《PaaS,不是銀彈》,以此宣布對創(chuàng)業(yè)方向做出調(diào)整。即從簡單入手,打造靈活度更強的PaaS服務(wù),同時進入Docker的開源生態(tài)體系。按照規(guī)劃,云棧科技基于Docker的首個產(chǎn)品cSphere 1.0版本即將于2015年上半年正式發(fā)布。
“新的技術(shù)總是會伴隨著這樣或那樣的不確定性,但這也是技術(shù)創(chuàng)新的魅力所在。Docker將為創(chuàng)業(yè)群體制造出新的機會。從國內(nèi)市場的情況看,基于Docker的PaaS服務(wù)、Docker的管理與集成,以及Docker HUB與Docker鏡像可能成為三個主要的創(chuàng)業(yè)方向。”王利俊說。
CaaS模式仍在孕育
如果把我們的視線和想象都拉得足夠長,在相對遙遠的未來,在以Docker為代表的容器技術(shù)快速壯大的前提之下,云計算的基礎(chǔ)架構(gòu)很可能會因為Docker的出現(xiàn)而改變。對應(yīng)用的支持單元會由虛擬機變?yōu)槿萜鳎M而帶動網(wǎng)絡(luò)和存儲的轉(zhuǎn)型。這樣的改變或許會動搖虛擬化廠商的業(yè)務(wù)根基,雖然這樣的情況在相對遙遠的未來才有可能發(fā)生。
而在當(dāng)前的現(xiàn)實環(huán)境中,容器技術(shù)有望以先通過一種嶄新的服務(wù)形態(tài)被企業(yè)用戶所使用,這就是CaaS(Container as a Service,容器即服務(wù))。在CaaS的服務(wù)模型中,容器可以像IaaS一樣按需自助獲取服務(wù),同時具備動態(tài)調(diào)度、靈活遷移的能力。“從IaaS到CaaS是一個趨勢,其中服務(wù)是不變的核心,應(yīng)用是永恒的對象。這樣的演變面臨著來自商業(yè)模式、計費等方面的諸多挑戰(zhàn)。這種新的服務(wù)形態(tài),需要由新的業(yè)務(wù)需求來支配。”喻勇說。
“為了便于理解,我們可以把CaaS看作是介于IaaS和PaaS中間的一層,這樣的服務(wù)模式在企業(yè)內(nèi)部或者私有云環(huán)境會更早地開始嘗試。具體的發(fā)展我們正在密切地觀察。”王利俊說。新服務(wù)形態(tài)孕育的過程中也會創(chuàng)造新的需求。程輝表示,基于Docker的云化服務(wù)有望改變企業(yè)用戶對虛擬機的使用習(xí)慣。“CaaS服務(wù)可以屏蔽IaaS層的計算資源的差異化,天然具備多云管理和跨云遷移的能力,幫助企業(yè)把應(yīng)用與不同的IaaS進行適配,更加充分地協(xié)調(diào)與調(diào)用跨平臺的IaaS資源。這是一個嶄新的客戶需求。”程輝說。
雖然CaaS的服務(wù)形態(tài)尚未確立,與IaaS、PaaS的邊界也未清晰,但是Docker已經(jīng)快速地融入到主流的IaaS或PaaS云服務(wù)平臺之中了。截至目前,微軟、谷歌、亞馬遜AWS、IBM等國際化云服務(wù)商都在其云服務(wù)中加入了對Docker的支持。可以說,Docker已經(jīng)成為了主流PaaS解決方案中的標準配置或是核心組件。
國內(nèi)方面,UnitedStack于2014年9月在其UOS云服務(wù)平臺上提供了對CoreOS的支持,這也使其成為國內(nèi)首家與Docker相關(guān)技術(shù)接軌的云服務(wù)公司。2014年11月,阿里云宣布,用戶可以使用阿里云ECS部署Docker容器應(yīng)用。用戶可以在阿里云ECS上把應(yīng)用打包成Docker鏡像、運行Docker容器,或者從阿里云的Docker鏡像庫中快速下載Docker官方鏡像,也可以部署自己的私有鏡像庫。另一公有云服務(wù)商青云QingCloud也于早些時候宣布,將會積極支持Docker、Rocket等容器技術(shù)。
伴隨著越來越多的云服務(wù)宣布對Docker提供支持(+本站微信networkworldweixin),Docker正在成為一種云服務(wù)商向客戶提供附加價值的關(guān)鍵方式,同時也催生出大量的相關(guān)工具或基礎(chǔ)設(shè)施。這進一步帶動了Docker生態(tài)圈的繁榮。目前,谷歌已經(jīng)構(gòu)建了用于容器管理的Kubernetes,亞馬遜在創(chuàng)建Amazon EC2容器服務(wù)時也加入了一個Docker的調(diào)度與維護層。
現(xiàn)實中的自我證明
無論我們對于Docker未來的想象有多美好,Docker依然先要跨過進入現(xiàn)實企業(yè)環(huán)境的關(guān)口。結(jié)合自己參與Docker中文社區(qū)運營的體會,喻勇表示,現(xiàn)階段Docker在其目標客戶群體中的認知度仍有待提升,而客戶應(yīng)用Docker的疑慮主要來自網(wǎng)絡(luò)支持、安全性、遷移成本等方面。同時中國企業(yè)客戶群體的IT應(yīng)用水平差異性較大,很多普通的企業(yè)用戶連虛擬化還沒有完成。
喻勇與曾任EMC總架構(gòu)師的陳齊彥聯(lián)合創(chuàng)立的DaoCloud現(xiàn)已啟動運營,Docker相關(guān)產(chǎn)品的研發(fā)工作也隨即展開。對于Docker有可能在軟件開發(fā)層面引發(fā)的變革,他有一個樂觀的預(yù)測:“現(xiàn)在的軟件發(fā)布通常是‘源代碼+配置文件’,而未來則更可能是直接發(fā)布軟件的Docker版本,或者容器版本。這樣的質(zhì)變有可能在未來的12~18個月內(nèi)變成現(xiàn)實。”喻勇說。
他同時表示,即便變革不會在這一期限內(nèi)發(fā)生,在面向傳統(tǒng)企業(yè)和垂直領(lǐng)域互聯(lián)網(wǎng)企業(yè)的開發(fā)流程容器化方面,技術(shù)服務(wù)的創(chuàng)新同樣有非常大的市場空間。除此之外,大數(shù)據(jù)應(yīng)用的深度推進,以及分布式計算的普及,也會為容器技術(shù)持續(xù)營造出新的業(yè)務(wù)機會。
王利俊的開發(fā)團隊開發(fā)的cSphere,近期正保持著相當(dāng)頻密的版本發(fā)布節(jié)奏。按照規(guī)劃,cSphere每個月都會有一個大的版本發(fā)布,直至在2015年上半年發(fā)布cSphere 1.0版本。而在此基礎(chǔ)上,云棧科技的研發(fā)方向還包括基于Docker的網(wǎng)絡(luò)、存儲、安全功能,以及Docker管理工具等,并且計劃推出SaaS化的Docker管理服務(wù),以及跨云的CaaS服務(wù)。
“從我們目前接觸用戶的情況看,中國用戶對Docker的關(guān)注點集中在技術(shù)和流程兩方面。網(wǎng)絡(luò)的動態(tài)擴展性、安全性是用戶最關(guān)心的技術(shù)話題。而在流程方面,很多客戶開始關(guān)注企業(yè)現(xiàn)有的開發(fā)流程能否適應(yīng)Docker帶來的變化。”王利俊說。他表示,目前容器技術(shù)落地企業(yè)環(huán)境所面臨的瓶頸主要集中在網(wǎng)絡(luò)和與原有IT流程對接方面,同時應(yīng)用的開發(fā)和運維流程也與傳統(tǒng)流程有所區(qū)別。尤其是運維,原有的工具會部分失效。在這一過程中,容器技術(shù)與企業(yè)原有IT規(guī)范的碰撞與博弈,是用戶所必須經(jīng)歷的。
王利俊同樣相信,容器最終會成為運行軟件的標準環(huán)境,演變?yōu)榱硪环N形式的Linux。談到Docker現(xiàn)階段在企業(yè)環(huán)境中的實際應(yīng)用場景,王利俊表示,具體的場景包括虛擬機、應(yīng)用快速部署、微服務(wù)、多租戶、軟件交付、開發(fā)/測試/生產(chǎn)的環(huán)境一致化,以及混合云環(huán)境下的應(yīng)用遷移等。“Docker正在快速地進入企業(yè)的生產(chǎn)環(huán)境。在這樣的潮流之下,Docker的創(chuàng)業(yè)者們將會找到更多的業(yè)務(wù)創(chuàng)新機會。比方說為企業(yè)做應(yīng)用的集成與適配,去消除企業(yè)將工作負載遷移到容器的障礙;或者提供集成服務(wù)、鏡像打包等咨詢服務(wù)等。”王利俊說。
寫在最后:暗流中涌起新博弈
技術(shù)上的創(chuàng)新之外,Docker的瞬間崛起也快速在商業(yè)層面攪動起一股新的暗流。曾經(jīng)為Docker的推廣做出巨大貢獻的Linux服務(wù)器操作系統(tǒng)供應(yīng)商CoreOS在2014年12月宣布,啟動研發(fā)自己的開源容器運行時Rocket,Rocket的首個版本已經(jīng)提交到Github。
從全力支持Docker,到開發(fā)自己的容器引擎,開源容器世界的這一次小小裂變,讓人不禁聯(lián)想起開源云平臺OpenStack橫空出世后,該項目早期的重要貢獻者思杰(Citrix)轉(zhuǎn)而支持自己的收購資產(chǎn)、同類的開源項目CloudStack。當(dāng)時,思杰將轉(zhuǎn)向支持CloudStack的原因歸因于OpenStack的不成熟。而CoreOS則把開發(fā)Rocket的目的歸結(jié)為Docker在安全性等方面的缺陷。從2012年到2014年,開源項目之間的制衡大戲就這樣又一次重演。
技術(shù)的創(chuàng)新從來都不是發(fā)生在真空中的,而多元化的技術(shù)選擇也是新技術(shù)走向成熟的重要標志。無論是Docker、Rocket,還是其他的容器技術(shù),當(dāng)下最需要解決的問題都與解決用戶需求、將技術(shù)創(chuàng)新轉(zhuǎn)化為客戶價值最為相關(guān)。“真正贏得用戶的心”,兩年前就已崛起的OpenStack目前仍然行進在這條征途之上,Docker腳下的道路也不會是一片坦途。
【附言】
為了幫助您更加全面地了解以Docker為代表的容器技術(shù),以及它們對云計算產(chǎn)業(yè)走向所帶來的實際影響,我們特別為您推薦接下來的兩篇文章,真誠地邀請您繼續(xù)閱讀。
■ 《容器戰(zhàn)爭》:如果您還不太了解Docker近期如此火爆的原因,以及它相比虛擬機的進化之處,不妨看看這篇美國《Network World》的原創(chuàng)文章。
■ 《從Docker的流行談云計算的走向》:這是《網(wǎng)絡(luò)世界》的特約撰稿人逸凡寫下的自己對Docker的思考。他認為,無論是Docker、PaaS還是其他的云計算服務(wù),商業(yè)模式的塑造和運營都是最為關(guān)鍵的,也是現(xiàn)階段云計算發(fā)展的最長短板。從“集中部署、分散服務(wù)”逐步向“移動互聯(lián)、數(shù)據(jù)驅(qū)動”轉(zhuǎn)變,或許是一個新的突破點。