Docker留下的空白:關(guān)于鏡像分發(fā)的現(xiàn)狀與思考
為了獲得更高效率的云服務(wù),容器技術(shù)自誕生以來(lái)便受到了業(yè)界的廣泛支持。通過(guò)優(yōu)秀的隔離技術(shù),容器可以借由掛載不同的運(yùn)行時(shí)從而對(duì)不同的應(yīng)用提供支持。但在實(shí)際應(yīng)用中,隨著不同模板數(shù)量的增多,容器環(huán)境下的鏡像分發(fā)逐漸成為了一個(gè)令云服務(wù)管理者頭疼的問(wèn)題。而更加頭疼的是,目前業(yè)界還沒(méi)有形成完整統(tǒng)一的鏡像分發(fā)標(biāo)準(zhǔn);各個(gè)容器的使用者只能自行解決這一難題。
在日前舉辦的由51CTO主辦的WOT全球軟件與運(yùn)維技術(shù)峰會(huì)上,各方技術(shù)大咖齊聚一堂,在開源與容器技術(shù)分論壇中各抒己見(jiàn),探討了與容器相關(guān)的各種技術(shù)應(yīng)用與實(shí)踐。而在這些討論中,資深容器技術(shù)專家肖德時(shí)便就容器環(huán)境下的分布式鏡像倉(cāng)庫(kù)技術(shù)闡述了自己的觀點(diǎn)。
Docker在鏡像分發(fā)上留下的空白
在此次WOT峰會(huì)的開源與容器技術(shù)分論壇中,肖德時(shí)表示:雖然目前創(chuàng)建和啟動(dòng)容器的標(biāo)準(zhǔn)工具以及容器的運(yùn)行時(shí)和鏡像標(biāo)準(zhǔn)都已經(jīng)頒布,但OCI仍舊沒(méi)有發(fā)布針對(duì)容器環(huán)境下的鏡像分發(fā)標(biāo)準(zhǔn)。而我們所能知道的就是容器鏡像分發(fā)標(biāo)準(zhǔn)的1.0版本將圍繞Docker Registry HTTP API V2來(lái)展開。
目前能夠確定下來(lái)的容器鏡像分發(fā)標(biāo)準(zhǔn)包括:
Namespace-oriented URI Layout
PUSH/PULL registry server for V2 image manifest format
Resumable layer PUSH support
V2 Client library implementation
而包括不可變鏡像參考、多架構(gòu)支持、V2版兼容性下的遷移等標(biāo)準(zhǔn)在內(nèi)的眾多重要標(biāo)準(zhǔn)則仍舊在討論中,沒(méi)有形成共識(shí)。
從目前的實(shí)際使用情況來(lái)看,肖德時(shí)表示:官方發(fā)布的Docker registry所缺少的特性還很多,企業(yè)還無(wú)法進(jìn)行實(shí)際的商用部署。針對(duì)這一領(lǐng)域,Docker有自己的Docker Hub服務(wù)來(lái)解決容器的打包、存儲(chǔ)和分發(fā)問(wèn)題。但這一服務(wù)訪問(wèn)起來(lái)很慢,而且他是一個(gè)閉源的服務(wù),外界無(wú)法知道他是如何實(shí)現(xiàn)的。此外,Docker還發(fā)布了DTR工具;但這一工具是基于單機(jī)環(huán)境而設(shè)計(jì),本質(zhì)上無(wú)法實(shí)現(xiàn)HA擴(kuò)展,因此也無(wú)法滿足企業(yè)的高可用需求。
Docker發(fā)布的registry 2.0雖然是目前用戶***可用的開源版本,但從架構(gòu)上來(lái)看,這個(gè)工具并不適合一般的企業(yè)來(lái)用。首先,他本身并沒(méi)有對(duì)應(yīng)的授權(quán)機(jī)制,這一點(diǎn)就需要外部的組件來(lái)控制;其次,他的訪問(wèn)控制是放在工具內(nèi)部的,但真正的企業(yè)在這方面確實(shí)需要其他系統(tǒng)來(lái)統(tǒng)一控制的;第三,registry 2.0架構(gòu)內(nèi)部缺乏可用的handlers,這使得企業(yè)還需要編寫額外的組件來(lái)實(shí)現(xiàn)相應(yīng)的監(jiān)控功能;第四,也是最重要的,在存儲(chǔ)結(jié)構(gòu)方面,registry 2.0仍然是基于單機(jī)來(lái)設(shè)計(jì)的,企業(yè)需要具備很高的技術(shù)實(shí)力才能在這一基礎(chǔ)上構(gòu)建完整的高可用特性。而以上這些正是registry 2.0在商用中所遇到的主要問(wèn)題。
業(yè)界實(shí)踐
面對(duì)這些痛點(diǎn),一種業(yè)界大廠都開始了在鏡像分發(fā)方面的探索和實(shí)踐:
騰訊在這方面開發(fā)了FID系統(tǒng):A Faster Image Distribution System for Docker,效果比原生的分發(fā)功能好很多,向200個(gè)節(jié)點(diǎn)分發(fā)500M鏡像文件的速度是Docker原生的10倍;部署起來(lái)也比較方便。
阿里發(fā)布了蜻蜓系統(tǒng),這是一套基于P2P的文件分發(fā)系統(tǒng),吞吐量是原生應(yīng)用的57倍,帶寬占用僅為原來(lái)的不到1%。
VMware則面向市場(chǎng)發(fā)布了自己的Harbor系統(tǒng)來(lái)解決鏡像分發(fā)問(wèn)題,同時(shí),他也將registry 2.0本身所固有的一些問(wèn)題進(jìn)行了完善。
IBM也在展開相關(guān)方面的研究,并發(fā)布了Wharf架構(gòu)。
容器鏡像分發(fā),任重道遠(yuǎn)
在分析了眾多業(yè)界在容器鏡像分發(fā)領(lǐng)域的實(shí)踐之后肖德時(shí)表示:目前各家研究的方向和實(shí)際的效果來(lái)看,P2P技術(shù)的確可以有效提高鏡像分發(fā)的效率,而且文件體積越大、效率就越高。
另外,共享層模式將可以有效降低容器鏡像存儲(chǔ)的冗余度。
而在最重要的高可用方面,目前的所有解決方案和研究成果也還都需要更多的實(shí)踐來(lái)驗(yàn)證。
經(jīng)歷多年發(fā)展,容器技術(shù)已經(jīng)取得了良好的應(yīng)用效果,并獲得了商業(yè)用戶的廣泛認(rèn)同。但我們也不得不承認(rèn),包括容器鏡像的打包、存儲(chǔ)和分發(fā)等領(lǐng)域,目前的容器技術(shù)仍顯得相當(dāng)稚嫩。而這些領(lǐng)域也是未來(lái)IT廠商和云服務(wù)提供商將會(huì)重點(diǎn)攻克的領(lǐng)域。
在經(jīng)歷了物理機(jī)、虛擬機(jī)、云服務(wù)等一系列進(jìn)化之后,容器化必將成為未來(lái)的主流發(fā)展趨勢(shì)。而容器技術(shù)本身的發(fā)展更會(huì)因?yàn)闃I(yè)界的廣泛參與和研究而變得越來(lái)越快、越來(lái)越好。