云計(jì)算之Docker:顛覆者還是曇花一現(xiàn)?
在云計(jì)算產(chǎn)業(yè)界,一場由一個(gè)技術(shù)掀起的革命正在悄悄上演:名不見經(jīng)傳的小公司橫插進(jìn)IT大佬構(gòu)筑的云生態(tài)產(chǎn)業(yè)鏈,各路IT企業(yè)紛紛擁抱該技術(shù)并接納該公司,云計(jì)算的構(gòu)建方式和實(shí)施方式也即將發(fā)生或多或少的改變。這個(gè)技術(shù)就是Docker,這個(gè)公司便是dotCloud。
DotCloud本是家新創(chuàng)業(yè)小公司,基本無事可表,而其無心發(fā)掘的一個(gè)技術(shù)Docker,卻在技術(shù)圈和業(yè)界受到廣泛關(guān)注。
易上手的開源容器技術(shù)Docker
Docker的魅力是讓大家看到了軟件行業(yè)全面走向服務(wù)化的趨勢,很可能提高IT應(yīng)用各個(gè)環(huán)節(jié)10%~30%的整體效率。
Docker是一個(gè)開源項(xiàng)目,誕生于2013年年初,最初是dotCloud公司內(nèi)部的一個(gè)業(yè)余項(xiàng)目,它基于谷歌推出的Go語言實(shí)現(xiàn)。
Docker以Linux容器LXC為基礎(chǔ),實(shí)現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案。在LXC的基礎(chǔ)上Docker進(jìn)行了進(jìn)一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡便。用戶操作Docker的容器就像操作一個(gè)快速輕量級的虛擬機(jī)一樣簡單。
簡單來說,Docker是一種容器技術(shù)。青云(QingCloud)系統(tǒng)工程師楊錦濤向《中國電子報(bào)》記者介紹,Docker本質(zhì)上是一個(gè)上層管理工具,是對Linux內(nèi)核的各命名空間、網(wǎng)絡(luò)、cgroup和安全等方面項(xiàng)目的調(diào)用與整合,并暴露了一個(gè)不錯(cuò)的管理接口。其本身并不復(fù)雜,復(fù)雜性在于更底層的Linux內(nèi)核、網(wǎng)絡(luò)和安全方面。而Docker的魅力從服務(wù)角度來說,是它讓大家看到了一種可能或者一種趨勢,即軟件行業(yè)全面走向服務(wù)化的趨勢。Docker生態(tài)圈里已有的豐富的Image才是Docker真正的價(jià)值所在。
云??萍几笨偛檬P裾J(rèn)為,Docker目前的影響主要集中在兩方面,一方面是從IT基礎(chǔ)架構(gòu)方面來講,Docker提供了輕量/快速/可移植性更好的虛擬化方案,這就為進(jìn)一步釋放IT生產(chǎn)力/特別是釋放計(jì)算能力提供了可能性;另一方面,Docker可能會深刻影響到目前各種IT應(yīng)用的整個(gè)生命周期,包括開發(fā)、測試、部署、維護(hù)等各個(gè)環(huán)節(jié)。如果理想的話,Docker很有可能***限度地提高IT應(yīng)用的各個(gè)環(huán)節(jié)的效率。例如,10%~30%的整體的效率提升是有可能的,換個(gè)角度,這也就意味著10%~30%的成本節(jié)約。
目前,一些業(yè)內(nèi)人士提出可以將容器作為服務(wù)提供的觀點(diǎn)(CAAS,Containers as a Service),也有一些新興公司在嘗試CAAS。簡單點(diǎn)說,CAAS有些類似IAAS,但I(xiàn)AAS提供虛擬機(jī),CAAS則在IAAS之上提供容器。石海旭認(rèn)為,CAAS為跨IAAS平臺實(shí)現(xiàn)動(dòng)態(tài)調(diào)度容器、移動(dòng)容器提供了可能性。即某種程度上用戶不再需要關(guān)心他的容器到底是運(yùn)行在AWS還是阿里云或者私有云上,因?yàn)镃AAS服務(wù)商將提供自動(dòng)化或者定制化的服務(wù)幫助用戶進(jìn)行資源調(diào)配,幫助客戶選擇最適合的云平臺。
各大IT巨頭擁抱Docker
知名的云計(jì)算公司以及軟件、操作系統(tǒng)、系統(tǒng)集成廠商、配置管理軟件、大數(shù)據(jù)廠商以及開源軟件都在向Docker靠攏。
在2014年1年的時(shí)間里,Docker的生態(tài)系統(tǒng)發(fā)展迅猛,知名的云計(jì)算公司以及軟件、操作系統(tǒng)、系統(tǒng)集成廠商、配置管理軟件、大數(shù)據(jù)廠商以及開源軟件都在向Docker靠攏,不管在哪個(gè)領(lǐng)域,Docker都在滲入和影響現(xiàn)有的體系。
亞馬遜AWS在去年11月的亞馬遜大會上推出了Amazon EC2 Container服務(wù),支持Docker。用戶可在托管的EC2實(shí)例集群上輕松地發(fā)布、管理和擴(kuò)展從1個(gè)到數(shù)十萬個(gè)容器,而之前想達(dá)到這個(gè)效果用戶只能自己開發(fā)軟件或使用開源工具。亞馬遜是***個(gè)將Docker應(yīng)用于公有云集群服務(wù)的廠商。
另外,微軟也稱將在下一個(gè)版本的Windows Server中支持Docker,雖然微軟早在之前就開發(fā)了自己的容器技術(shù),但是卻在自己的Server里選擇了支持Docker。
回到國內(nèi)的公有云服務(wù)企業(yè),阿里云曾在去年10月在自己的博客上透露,用戶可以使用阿里云云服務(wù)器(ECS)部署Docker容器應(yīng)用,在ECS上把應(yīng)用打包成Docker鏡像、運(yùn)行Docker容器,從阿里云提供的鏡像庫中快速下載官方鏡像,或者部署自己的私有鏡像庫。不過,《中國電子報(bào)》記者就此求證阿里云時(shí),其內(nèi)部人員表示阿里云其實(shí)只是表面支持了下Docker,并沒有深入使用。
楊錦濤透露,青云預(yù)計(jì)將在今年年中支持Docker。“從產(chǎn)品的角度來說,我們首先強(qiáng)力支持用戶在我們的IaaS平臺上基于容器技術(shù)提供服務(wù)(我們已經(jīng)有很多這樣的用戶),其次我們自己也會在容器方面做工作,比如會提供支持Docker的Image、Docker Cluster服務(wù),甚至?xí)紤]自己開發(fā)且運(yùn)營Docker cluster。”他說。
而UCloud目前也已經(jīng)將Docker用到產(chǎn)品中去。UCloud主機(jī)開發(fā)部經(jīng)理葉理燈告訴《中國電子報(bào)》記者,分布式數(shù)據(jù)處理UDDP和數(shù)據(jù)庫UDB中應(yīng)用了Docker,公司內(nèi)部業(yè)務(wù)也將逐步Docker化。他認(rèn)為,將內(nèi)部業(yè)務(wù)通過Docker打包,便于快速部署,運(yùn)行時(shí)節(jié)省資源,特別適合將重復(fù)性的服務(wù)進(jìn)行快速擴(kuò)展。
不過,相對云服務(wù)企業(yè)和互聯(lián)網(wǎng)企業(yè),絕大部分公司對Docker的使用還停留在觀望狀態(tài),并且將Docker應(yīng)用于生產(chǎn)環(huán)境的公司少之又少。
若不再開源Docker去向難料
有人認(rèn)為其***顛覆性,也有人表示其僅是云生態(tài)的一部分。
對于Docker的影響力,業(yè)界公認(rèn)其是近年來發(fā)展最快的用于云計(jì)算的技術(shù)之一,有人認(rèn)為其***顛覆性,也有人表示其僅是云生態(tài)的一部分。
例如微軟、亞馬遜、谷歌、IBM、Facebook、Twitter、紅帽以及公有云和混合云服務(wù)商Rackspace、SaaS服務(wù)商Salesforce等諸多公司都十分樂意接納并談?wù)揇ocker技術(shù),還在自己的產(chǎn)品中集成Docker。事實(shí)上,Docker僅僅是從2014年才起步,僅1年的時(shí)間就獲得了諸多IT巨頭的認(rèn)可,這和其技術(shù)的領(lǐng)先性和開源策略分不開。
不過,最近一段時(shí)間Docker的創(chuàng)始公司dotCloud似乎有意將這個(gè)開源項(xiàng)目轉(zhuǎn)向閉源。2014年11月當(dāng)另一個(gè)開源項(xiàng)目團(tuán)隊(duì)CoreOS發(fā)布了自己的容器引擎Rocket時(shí),他們指責(zé)Docker已忘初心。楊錦濤對《中國電子報(bào)》記者坦言,Docker目前走的路其實(shí)和當(dāng)年的虛擬化技術(shù)XEN看起來很像,XEN最初是完全開源的項(xiàng)目,后來他們開始發(fā)現(xiàn)事情不大對,“I need to make money”,然后就開始兩條腿走路,一方面繼續(xù)開源,另一方面在管理層面的項(xiàng)目走閉源,后來整個(gè)XEN項(xiàng)目走著走著就基本走死了。
而且,楊錦濤表示,容器技術(shù)相對虛擬化技術(shù)要簡單得多,這意味著容器技術(shù)很可能不會像虛擬化項(xiàng)目那樣鳳毛麟角。前段時(shí)間除了CoreOS推出的Rocket之外,還有VMWare的CloudFoudry、紅帽的Openshift、谷歌的Imctfy等等,都是容器技術(shù),這些公司的技術(shù),都會與Docker競爭。青云對Docker項(xiàng)目的態(tài)度是關(guān)注且持謹(jǐn)慎態(tài)度的,甚至青云也會做自己的容器項(xiàng)目。
另外,Docker也有不足。葉理燈告訴《中國電子報(bào)》記者,由于Docker現(xiàn)階段的隔離還不是特別完全,出于安全性的考慮,直接運(yùn)行在物理機(jī)上的Docker產(chǎn)品還不能替代現(xiàn)在的虛擬機(jī)產(chǎn)品向公眾推出。但在私有云產(chǎn)品上,UCloud看好Docker產(chǎn)品的進(jìn)一步發(fā)展。
微觀點(diǎn)
好評
@MES哥:據(jù)我的理解,雖然我還不是特別理解Docker的原理,但我覺得它在系統(tǒng)自動(dòng)化運(yùn)維方面開啟了新的篇章,空間很大。我也希望能夠在運(yùn)維方面掌握這門技術(shù)。
@創(chuàng)業(yè)者馬鈞:Docker剛出來的時(shí)候就關(guān)注過,只是當(dāng)時(shí)還太簡陋,缺少很多功能,因此選擇了Vagrant。最近回過頭來,重新拾起Docker,發(fā)現(xiàn)不管是系統(tǒng)本身,還是社區(qū)生態(tài),都有了巨大的提升。這幾天使用下來,發(fā)現(xiàn)能有效提升工作效率,原來很多繁瑣的安裝步驟,現(xiàn)在直接一行命令,下載并運(yùn)行就可以搞定。
@鞏小東-gordon:Coreos用ext4+overlayfs替換了btrfs,感覺這公司舍不得投基礎(chǔ)設(shè)施,走回頭路。和Docker競爭,不看好。
@蔣濤CSDN:拜訪Docker,2014年最紅的技術(shù)公司!從PaaS轉(zhuǎn)型到Container大獲成功,小團(tuán)隊(duì)開創(chuàng)的新技術(shù),獲得amazon、google、微軟、vmware全力支持,2015會更加紅火。
@獅巴達(dá)克詩:Docker做云效果很好,就是技術(shù)太新了,變化太快。
差評
@itudoumao:Docker安裝過幾次,也成功運(yùn)行過一次,但感覺像個(gè)半殘品似的,想要在企業(yè)里用,估計(jì)還得要一段時(shí)間。有人說Vmware與Docker結(jié)合會更棒,現(xiàn)在像這種容器,市面上還是有些產(chǎn)品的,希望越來越好。
@群猩2014:我目前感覺Docker使用的難點(diǎn)有:一是Docker內(nèi)部和真正的linux還是有一定差距的,比如mount之類,實(shí)現(xiàn)時(shí)需要解決這些小麻煩,二是網(wǎng)絡(luò)設(shè)置問題目前沒太好的簡單解決方案,隔離程度不如傳統(tǒng)VM那么方便。
@雨吁的噓:在Windows使用Docker仍是一個(gè)非常糟糕的體驗(yàn)。虛擬機(jī)經(jīng)常在初始化時(shí)停住了,應(yīng)該是VirtualBox的問題。
@謝瑞璇:Docker難點(diǎn)就是每次操作只能針對單個(gè)容器或鏡像,枯燥呆板,命令行參數(shù)還特別多、特別長,并且特別難記。
觀望
@LUPA開源社區(qū):CoreOS在發(fā)布Rocket時(shí)曾指出,有些人需要更“純凈”的容器。換句話說,Rocket是“App Container Specification”的標(biāo)準(zhǔn)實(shí)現(xiàn)。
@peter_cz_peng:Docker如何解決多個(gè)相同服務(wù)的隔離,如何利用相同的物理硬件提供比虛擬機(jī)更好的性能和效率,是我當(dāng)前認(rèn)為***的問題。
@marks72:我的感覺是,VM更加瘦身、輕便了。難點(diǎn)是這仍然是一個(gè)發(fā)展待成熟的系統(tǒng),不敢用到核心生產(chǎn)應(yīng)用上。
@羅比陳:互聯(lián)網(wǎng)金融平臺與Docker的必然關(guān)系:1.降低運(yùn)營成本,一臺服務(wù)器成本7萬~8萬,怎么***限度壓榨服務(wù)器的產(chǎn)出。2.金融平臺組件復(fù)雜,業(yè)務(wù)特點(diǎn)不允許出現(xiàn)服務(wù)中斷,怎樣保證業(yè)務(wù)的強(qiáng)連續(xù)性。3.技術(shù)驅(qū)動(dòng)的公司需要***的技術(shù)人員,***的技術(shù)人員喜歡***的技術(shù)。
@i劉Z:剛出來的時(shí)候草草看了一下,功能太low,不知道現(xiàn)在發(fā)展怎么樣,聽介紹感覺在各種環(huán)境部署上省去了麻煩,Coreos感覺略坑。Docker必須要有3x內(nèi)核,所以Centos6不用想了,能滿足復(fù)合內(nèi)核要求,又不用重裝機(jī)器,又是在生產(chǎn)環(huán)境一般的條件下,就只能運(yùn)用在ubuntu系統(tǒng)里了。
@小小小小玄:KVM讓作業(yè)系統(tǒng)與硬件解耦;而Docker讓整個(gè)應(yīng)用環(huán)境和平臺解耦。
@天藍(lán)99345:好像有點(diǎn)明白了,Docker 通過不僅僅打包應(yīng)用程序,也打包應(yīng)用程序的依賴環(huán)境來解決這個(gè)問題。
原文鏈接:http://epaper.cena.com.cn/content/2015-01/20/content_251464.htm