自容器概念興起,就有很多人認(rèn)為:容器將取代虛擬機(jī),容器作為"虛擬化2.0"概念獲得企業(yè)和開發(fā)者的關(guān)注。筆者認(rèn)為,容器非但不會(huì)取代虛擬機(jī),相反,二者或?qū)⑿纬梢环N互為補(bǔ)充的姿態(tài),優(yōu)化企業(yè)的IT體系。
容器的代表作Docker
對于很多程序員來說,或許還不夠了解容器,但一定聽說過Docker。Docker是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,Docker稱之為:Build once,Run anywhere。
很多人都聽說過Dcoker獲得了IBM、微軟、惠普、騰訊等企業(yè)的支持,其中Docker在騰訊英雄聯(lián)盟游戲中的表現(xiàn)更讓很多人都堅(jiān)信,以Docker為代表的容器必然在不久的將來徹底代替虛擬機(jī)。
而Docker作為最流行的容器工具,和容器目前的事實(shí)標(biāo)準(zhǔn)收到越來越多人的關(guān)注,究竟容器/Docker與虛擬機(jī)之間的博弈會(huì)以何種方式收場,我們還不得而知,但筆者預(yù)測,未來容器技術(shù)可能會(huì)與虛擬化技術(shù)成為相輔相成的關(guān)系。
Docker與鏡像概念
在2016年的DockerCon大會(huì)上,Docker再次推翻了之前PaaS層定義,樹立了一個(gè)自己的新標(biāo)準(zhǔn):Serverless無服務(wù)器架構(gòu)。同時(shí),Docker的鏡像概念已經(jīng)成為很多依托Docker技術(shù)成立的云企業(yè)的賣點(diǎn)。
鏡像可以應(yīng)用程序和它的應(yīng)用環(huán)境一起打包,形成一個(gè)"集裝箱",放入倉庫。然后這個(gè)集裝箱隨時(shí)下載、解壓、應(yīng)用,減輕了開發(fā)者的負(fù)擔(dān),不但迅速還能夠保證一致性。
Docker PK虛擬機(jī)
TCO:根據(jù)相關(guān)機(jī)構(gòu)調(diào)查顯示,超過百分之四十的企業(yè)選擇用Docker是因?yàn)樗忍摂M機(jī)更便宜。由于Docker是一款開源的容器引擎,這決定了Docker本身免費(fèi)的事實(shí)。
而虛擬機(jī)是相較傳統(tǒng)物理機(jī)更為節(jié)約資源的方式,因?yàn)樗苄纬梢粋€(gè)有效的、獨(dú)立的真實(shí)機(jī)器的副本,進(jìn)而節(jié)約企業(yè)TCO,受到很多企業(yè)的歡迎。
敏捷性:當(dāng)敏捷開發(fā)、微服務(wù)等概念逐漸深入,輕量化已經(jīng)成為一種新風(fēng)向。Docker直接建立在操作系統(tǒng)上的方式在啟動(dòng)方式,讓秒級啟動(dòng)成為新常態(tài),獲得很多企業(yè)的認(rèn)可。而模塊化讓擴(kuò)展和遷移都更迅速、可靠,Docker允許我們輕松將應(yīng)用程序的功能拆分成多個(gè)獨(dú)立容器,讓Docker輕量化特點(diǎn)進(jìn)一步凸顯。
安全性:與真實(shí)的物理機(jī)相比,虛擬機(jī)因?yàn)镠ypervisor層的存在,讓小白用戶也可以對虛擬機(jī)進(jìn)行任何操作,無須擔(dān)心對機(jī)器本身造成任何損害。對于企業(yè)而言,虛擬機(jī)經(jīng)過四十余年的發(fā)展已經(jīng)成為一種成熟的IT技術(shù),在隔離性、安全性上,虛擬機(jī)也顯得更為無可挑剔,相比之下,虛擬機(jī)也更為安全。而Docker目前備受詬病的一個(gè)點(diǎn)就是:隔離性和安全性。
從實(shí)現(xiàn)原理上講,Docker有著比虛擬機(jī)更少的抽象層,不需要硬件資源池化,不需要Guest OS。與容器相比,虛擬層為用戶提供了一個(gè)完整的虛擬機(jī):包括內(nèi)核在內(nèi)的一個(gè)完整的系統(tǒng)鏡像,虛擬層可以為每個(gè)用戶分配虛擬化后的CPU、內(nèi)存和IO設(shè)備資源,為用戶提供一個(gè)隔離性更強(qiáng)的系統(tǒng)環(huán)境。
結(jié)束語
Docker或者說容器技術(shù)和虛擬機(jī)并非簡單的取舍關(guān)系,如果你希望一個(gè)完全隔離的和資源有保障的環(huán)境,那么虛擬機(jī)是你的不二選擇;如果你只希望進(jìn)程之間相互隔離,同時(shí)擁有輕量化的屬性,那么linux容器技術(shù)或者Docker,才是更好的選擇。
分享到微信 ×
打開微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。