国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Docker技術(shù)實現(xiàn)分析

2015-05-13 23:45:08陳清金陳存香
信息通信技術(shù) 2015年2期
關(guān)鍵詞:鏡像開源虛擬化

陳清金 陳存香 張 巖

1 中國聯(lián)通云數(shù)據(jù)有限公司 北京 100032

2 中國聯(lián)合網(wǎng)絡(luò)通信有限公司 北京 100033

隨著互聯(lián)網(wǎng)的迅猛發(fā)展,云計算作為一種商業(yè)計算模式在搜索服務(wù)、移動商務(wù)、開放協(xié)作等多樣化需求的推動下迅速發(fā)展起來[1]。云計算以動態(tài)的、易擴展等優(yōu)勢提供了虛擬化資源的計算和存儲方式,并受到Google、IBM、Amazon、Microsoft等IT廠商的大力推廣和應(yīng)用[2]。

云計算包括基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service,IaaS),平臺即服務(wù)(Platform as a Service,PaaS)和軟件即服務(wù)(Software as a Service,SaaS)[3]?;赑aaS平臺,用戶/開發(fā)者可以便捷地開發(fā)和部署應(yīng)用程序,將應(yīng)用程序托管在PaaS管理的云基礎(chǔ)設(shè)施中,從而節(jié)省大量的平臺搭建和維護工作,并達(dá)到縮短開發(fā)周期,降低運維成本的目的[4]。Docker作為輕量級的虛擬化方式,實現(xiàn)了PaaS平臺的高效部署、運行和維護。

1 研究背景

PaaS的核心技術(shù)之一就是虛擬化。維基百科將虛擬化定義為:虛擬化技術(shù)是一種資源管理技術(shù),是將計算機的各種實體資源,如服務(wù)器、網(wǎng)絡(luò)、內(nèi)存及存儲等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間的不可切割的障礙,使用戶可以用比原本的組態(tài)更好的方式來應(yīng)用這些資源[5]。

虛擬化主要分為兩大類,即基于硬件的虛擬化和基于軟件的虛擬化?;谲浖奶摂M化分為應(yīng)用虛擬化和平臺虛擬化。虛擬機(Virtual Machine,VM)技術(shù)屬于平臺虛擬化。應(yīng)用虛擬化可細(xì)分為完全虛擬化、硬件輔助虛擬化、部分虛擬化、超虛擬化、操作系統(tǒng)級虛擬化。Docker屬于操作系統(tǒng)級的虛擬化。

2 Docker技術(shù)剖析

Docker是PaaS提供商dotCloud開源的一個基于LXC的高級容器引擎,基于go語言并遵從Apache2.0協(xié)議[6]。目前,已經(jīng)有很多相關(guān)項目,逐漸形成了Docker生態(tài)圈。Docker自2013年發(fā)布以來,就成為了炙手可熱的PaaS項目。Redhat[7]、Google[8]、IBM[9]、百度[10]、阿里巴巴[11]等都相繼集成了對Docker的支持。

Docker的最終目的是實現(xiàn)“build、ship and run any app、anywhere”,即通過對應(yīng)用組件的封裝(Packaging)、分發(fā)、部署、運行等生命周期的管理,達(dá)到應(yīng)用組件級別的“一次封裝,隨處運行”。應(yīng)用組件包括Web應(yīng)用、數(shù)據(jù)庫服務(wù)、操作系統(tǒng)或編譯器。

2.1 Docker體系機構(gòu)

Docker是一個客戶/服務(wù)器(Client/Server,CS)架構(gòu)(見圖1)。Docker客戶端是遠(yuǎn)程控制器,可通過TCP/REST向Docker Host發(fā)送請求,包括創(chuàng)建容器、運行容器、保存容器、刪除容器等請求。Docker服務(wù)端的Daemon對客戶端的請求進行相應(yīng)的管理,隨后通過driver轉(zhuǎn)發(fā)至容器中的libcontainer執(zhí)行環(huán)境。libcontainer提供與不同Linux內(nèi)核隔離的接口,類似命名空間及控制組。這種架構(gòu)允許多個容器在共享同一個Linux內(nèi)核的情況下完全隔離地運行。由于Docker容器并不需要專用操作系統(tǒng),因此,實現(xiàn)了輕量級的要求。

圖1 Docker體系架構(gòu)

2.2 Docker關(guān)鍵要素

Docker的核心要素有鏡像(Image)、容器(Container)和倉庫(Registry)。鏡像是一個面向Docker引擎的只讀模板,包含文件系統(tǒng),它是構(gòu)建容器的基礎(chǔ)。一個鏡像中可以包含完整的操作系統(tǒng)及相應(yīng)的應(yīng)用軟件。用戶可以根據(jù)需求自己創(chuàng)建或者下載他人創(chuàng)建的鏡像。容器是從鏡像創(chuàng)建的運行實例。鏡像可以理解為構(gòu)建或打包階段,而容器可理解為啟動或執(zhí)行階段。Registry用來保存用戶創(chuàng)建的鏡像。鏡像來源主要有用戶定制和Docker自有兩種,前者稱為私有Registry,后者稱為公共Registry,也叫做Docker Hub。

2.3 Docker優(yōu)勢

Docker虛擬化的主要優(yōu)勢有4個方面。1)簡化服務(wù)器遷移帶來的環(huán)境再部署,提高工作效率,并降低部署過程中出現(xiàn)問題的風(fēng)險系數(shù)。2)縮短環(huán)境交付和部署的周期。使用Docker,開發(fā)人員可通過鏡像快速部署開發(fā)環(huán)境,并能在開發(fā)結(jié)束后,平滑移交給運維和測試人員。同時,容器的維護相對簡單快捷,節(jié)約開發(fā)、測試、部署時間,可實現(xiàn)快速迭代。3)提高物理資源的利用率。由于Docker容器所占的存儲空間相對較小,同時刪除容器后,相應(yīng)的文件也會被刪除,這樣可大大提高物理資源的使用率。4)更簡單快捷的迭代策略。Dockersf i le實現(xiàn)了開發(fā)環(huán)境中的配置更新可快速反饋到生產(chǎn)環(huán)境中,實現(xiàn)了自動化的高效管理。

3 Docker和VM分析比較

從上述Docker分析中可以發(fā)現(xiàn)VM和Docker存在一定的差異,下面對兩者之間的技術(shù)實現(xiàn)和性能進行對比分析。

3.1 VM和Docker技術(shù)實現(xiàn)分析

Docker中容器停止后,對創(chuàng)建容器時鏡像的初始狀態(tài)所做的操作都會丟失。虛擬機停止后,大部分文件(除去部分臨時文件)不會被刪除。這就使得虛擬機所占的存儲空間遠(yuǎn)遠(yuǎn)大于Docker。

Docker可采用標(biāo)準(zhǔn)的IPC機制進行通信,如隧道、Sockets等,虛擬機只能通過以太網(wǎng)的方式進行通信。

Docker可直接運行于宿主機的內(nèi)核上,不同容器可以共享同一個Linux內(nèi)核,虛擬機則需要運行于Hypervisor之上(見圖2)。

圖2 VM與Docker虛擬化實現(xiàn)方式對比

3.2 VM和Docker性能分析

作為一種輕量級的虛擬化方式,Docker在性能上還是略優(yōu)于VM的,具體的性能分析比較見表1。

表1 Docker與虛擬機性能對比

從表1中的分析比較可以明顯發(fā)現(xiàn),利用Docker技術(shù),物理服務(wù)器可以承載更多的容器,資源的使用率大大提高,這也是云計算需要達(dá)到的真正目的。

4 Docker與OpenStack結(jié)合

OpenStack是一個旨在為公共及私有云的建設(shè)與管理提供軟件的開源項目[12]。該項目得到了AMD、IBM、Intel的青睞。同時,也成為2014年最受關(guān)注的開源項目;因此,Docker與OpenStack的結(jié)合是未來PaaS平臺發(fā)展的一大趨勢。二者的結(jié)合主要基于Heat和Nova兩種,下面分別就這兩種方式進行分析。

1) Docker與Nova集成。通過driver形式實現(xiàn)了Docker與Openstack的集成(見圖3)。Openstack的Nova中,command和dashboard通過API接口與compute連接,compute與Docker的driver通過API連接,由此實現(xiàn)了二者的關(guān)聯(lián)。Docker的registry鏡像以及driver的數(shù)據(jù)都將反饋給Glance。這個過程中Docker容器當(dāng)作虛擬機來使用。

圖3 Docker與Nova集成

2) Docker與Heat集成(見圖4)。Docker與Nova的集成中將Docker以虛擬機的形式使用,無法發(fā)揮出容器的獨有優(yōu)勢;因此,出現(xiàn)了Heat與Docker的集成方案。Heat通過Plugin API與相應(yīng)插件關(guān)聯(lián),進而通過API或者HTTP關(guān)聯(lián)Docker。利用Heat中的插件機制,可實現(xiàn)Openstack部署和管理Docker容器。

圖4 Docker與Heat集成

5 總結(jié)

Docker自發(fā)布以來,一直受到業(yè)界的熱捧。這個開源的容器引擎使得開發(fā)者可以通過鏡像打包自己的應(yīng)用以及運行環(huán)境,實現(xiàn)快速開發(fā)、快速部署、快速迭代。同時,沙箱機制可降低接口之間的數(shù)據(jù)開銷,提高硬件的資源利用率。但是關(guān)于Docker與現(xiàn)有開源架構(gòu)的研究還需進一步完善。

參考文獻

[1]袁璐,李仁發(fā).云環(huán)境下動態(tài)信任模型研究綜述[D/OL].(2010-10-20)[2015-02-02].http://www.paper.edu.cn/html/releasepaper/2010/10/364/

[2]Daniel Nations.What is Cloud Computing?[EB/OL].[2015-01-05].http://webtrends.about.com/od/enterprise20/a/cloud-computing.htm

[3]互動百科.云計算[EB/OL].[2015-02-02].http://www.hudong.com/wiki/%E4%BA%91%E8%AE%A1%E7%AE%97

[4]林琳,滕騰,李偉彬.PaaS的范疇及架構(gòu)標(biāo)準(zhǔn)化研究[J].信息技術(shù)與標(biāo)準(zhǔn)化,2012(10):25-32

[5]虛擬化技術(shù)[EB/OL].[2015-02-02].http://zh.wikipedia.org/wiki/%E8%99%9B%E6%93%AC%E5%8C%96

[6]Dua,Bangalore,Raja.Virtualization vs Containerization to Support PaaS[J].IEEE,2014,41:610-614

[7]Red Hat推出專為Docker定制的Linux發(fā)行版[EB/OL].[2015-02-02].http://www.infoq.com/cn/news/2015/03/redhat-docker-linux.2015

[8]Google擁抱Docker:把互聯(lián)網(wǎng)變成一個巨大的計算機[EB/OL].[2015-2-02].http://www.pingwest.com/google-docker/

[9]IBM和Docker宣布建立戰(zhàn)略伙伴關(guān)系[EB/OL].[2015-02-02].http://www.oschina.net/news/58186/ibm-docker

[10]國內(nèi)“BAT”先鋒企業(yè)百度Baidu App Engine(BAE)平臺[EB/OL].[2015-02-02].http://www.xueliedu.com/a/xinwenzixun/2015/0220/280618.html

[11]Docker周報:阿里云ECS支持Docker[EB/OL].[2015-02-02].http://www.infoq.com/cn/news/2014/10/dockeraliyun-ecs?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

[12]誰在掌管著OpenStack項目[EB/OL].[2015-02-02].http://os.51cto.com/art/201111/304714.htm

猜你喜歡
鏡像開源虛擬化
鏡像
五毛錢能買多少頭牛
基于OpenStack虛擬化網(wǎng)絡(luò)管理平臺的設(shè)計與實現(xiàn)
電子制作(2019年10期)2019-06-17 11:45:10
鏡像
小康(2018年23期)2018-08-23 06:18:52
對基于Docker的虛擬化技術(shù)的幾點探討
電子制作(2018年14期)2018-08-21 01:38:20
虛擬化技術(shù)在計算機技術(shù)創(chuàng)造中的應(yīng)用
電子測試(2017年11期)2017-12-15 08:57:56
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
存儲虛擬化還有優(yōu)勢嗎?
開源計算機輔助翻譯工具研究
特克斯县| 尤溪县| 承德县| 洞头县| 轮台县| 团风县| 左云县| 枣阳市| 井陉县| 通化县| 双牌县| 桃园县| 吉安市| 通许县| 洪湖市| 益阳市| 马关县| 贺兰县| 桐梓县| 南澳县| 红原县| 新安县| 龙泉市| 谢通门县| 美姑县| 信宜市| 泗洪县| 文水县| 比如县| 涟水县| 西充县| 赣榆县| 浦县| 北辰区| 临泉县| 嘉禾县| 青川县| 会理县| 新龙县| 凤凰县| 湘潭县|