A fizikai hardver virtualizálása a 21. század egyik legígéretesebb trendje volt. Csendes megállapodás született arról, hogy a modern számítástechnikának a fizikai hardver határain túl kell lépnie. Mivel a piacon két legnépszerűbb virtuális erőforrás-megoldás, Dokkmunkás és virtuális gépek A virtuális erőforrás-gazdálkodás hozzájárult a virtualizált erőforrás-gazdálkodás felé történő áttéréshez.
Ugyanakkor sokan megragadtak a választás mellett. Attól függően, hogy ki kérdezi, a Docker és a virtuális gépek mindegyikének megvannak a saját előnyei. Ebben a cikkben a Docker vs virtuális gépek vitát vizsgáljuk meg, hogy megnézhessük, milyen előnyökkel járhat az egyes szervezetek.
Mi az a Docker??
Dokkmunkás egy nyílt forráskódú eszköz, amely tárolókat használ a létrehozáshoz, deploy, és az elosztott alkalmazások kezelése. A fejlesztők tárolókat használnak olyan csomagok létrehozására, amelyek olyan alkalmazásokat tartalmaznak, amelyek tartalmazzák az összes alapvető összetevőt (például könyvtárakat), amelyek az alkalmazás elszigetelten történő futtatásához szükségesek. A tároló eltávolítása a futó gépről biztosítja, hogy az alkalmazás akkor is fut, ha a felhasználók egyéni beállításokat futtatnak a Linux számítógépen, és a számítógép-erőforrások felhasználásának minimalizálására szolgál..
A Docker 2014-es megjelenése óta elérte a kritikusok által elismert státuszt. Számos szervezet úgy dönt, hogy a Docker-t virtuális gépek felett használja, mivel a felajánlott teljesítmény előnyei vannak. Manapság olyan cégek, mint a Visa és a PayPal, telepítették a Dockert, hogy segítsék alkalmazásuk kezelését.
Mi az a virtuális gép??
A A virtuális gép egy fájl (gyakran a hypervisor), amely fizikai számítógépként működik. Virtuális gép a működő eszköz fizikai erőforrásait használja a fizikai eszköz környezetének megismétlésére. Mint minden más program, a virtuális gépnek is van saját ablaka az eszközön. Több virtuális gépet futtathat egy eszközön.
Míg egy virtuális gép a számítógép erőforrásait használja működéséhez, valójában saját virtuális hardvert biztosít. A virtuális gép virtuális hardvere tartalmazza processzor, memória, merevlemezek, és hálózati interfészek. A számítógép hatékonyságának megőrzése érdekében ezt a virtuális hardvert hozzárendelik az eszköz fizikai hardveréhez.
A virtuális gépeket elkülönítik a fizikai eszköz rendszerétől és egy a ponton belül működnek sandbox. Más szavakkal, a virtuális gép teljesen önálló. Ez ideálissá teszi őket biztonsági másolat készítéséhez és a szoftver futtatásához. A piacon a legnépszerűbb termékek VMWare és VirtualBox.
Miért kell használni a Dockert??
A Docker egyik fő oka a virtuális gépek alternatívája. A dokkolót alternatívaként használják, mert vannak több könnyű erőforrások szempontjából, mint virtuális gépek. A konténerek megosztják az operációs rendszereket, míg a virtuális gépeket a virtuális hardverek emulálására tervezték. Az operációs rendszerek megosztásával a Docker alkalmazások futhatnak, miközben a virtuális gép erőforrásainak egy részét felhasználják.
A Docker a Docker motort használja, amely egy Linux példány felett található, nem pedig a virtuális gépek által használt virtuális erőforrásintenzív gépek helyett. Ez a szerkezet azt jelenti, hogy a Docker tárolók képesek a kiszolgálóalkalmazás-példányok ötszörösének fenntartása, mint amennyit egy virtuális gépen lehetne. A Docker elterjedt elfogadását az is segítette, hogy a fejlesztők saját kódot adhatnak hozzá a karcsú alkalmazások testreszabásához és telepítéséhez. Ezek az alkalmazások ezután egyenesen a gépekre vagy a felhőbe telepíthetők.
Miért van szükségem virtuális gépre??
Noha a Docker előnye van erőforrás-lábnyoma szempontjából, a virtuális gépek hihetetlenül fontosak maradnak a modern szervezetek számára. Még mindig megbízható eszközként szolgálnak a fizikai hardver költségeinek korlátozására. Az infrastruktúra virtuális gépekkel történő virtualizálása a hálózati erőforrások hatékonyabb felhasználását teszi lehetővé. Például nem kell kimerítenie az energiát és a rajongói erőforrásokat ahhoz, hogy a virtuális gépet fenntartsa úgy, ahogy azt egy fizikai számítógép tenné..
A virtuális gépekkel sokkal hatékonyabban tud biztosítani az erőforrásokat. A virtuális gépek áttelepíthetők kiszolgálókról kiszolgálókra annak biztosítása érdekében, hogy a számítási erőforrások egyenletesen oszlanak el az eszközök között. A rendszergazdák a virtuális gépeket úgy zsongálhatják, hogy a fizikai tárolási és feldolgozási képességek egyenletesen oszlanak meg több számítógép között.
A virtuális gépek szintén csökkentik az infrastruktúra meghibásodásának kockázatát. Míg egy fizikai eszköz a teljesítmény romlásával szembesülhet, és idővel meghibásodhat, a virtuális hardver nem. Ennek következtében sok rendszergazda elkezdte a virtuális gépeket katasztrófa utáni helyreállítási megoldásként használni és adatainak biztonsági másolatát készíteni.
Docker vs virtuális gépek fejről fejre
Kevésbé hatékony | Hatékonyabb |
A virtuális gépek saját operációs rendszert futtatnak | A konténerek megosztják a host operációs rendszert |
Hardver virtualizáció | OS virtualizáció |
Biztonságosabb (szegregált) | Kevésbé biztonságos (folyamat szintű elszigetelés) |
Teljesítmény
Mint láthatja, a Dockernek van néhány velejáró előnye a szerkezete. Az egyik tároló megoszthatja a kernelt és az alkalmazáskönyvtárakat oly módon, ahogyan a virtuális gépek nem tudják. Hasonlóképpen, A Docker kevesebb számítástechnikai erőforrást igényel, mint a virtuális gépek, ami jobb élményt nyújt az alkalmazáson belül.
Valós idejű Docker kevésbé erőforrás-igényes és sokkal gyorsabban indul el, mint a virtuális gépek. Ennek oka az, hogy a virtuális gépeknek minden indításkor be kell tölteniük az operációs rendszert. Hasonlóképpen, a virtuális gépekhez hasonlóan nem kell erőforrásokat elkülönítenie a konténerekre.
vezetés
A menedzsment szempontjából ezek a technológiák rugalmasabb megközelítést kínálnak az erőforrás-ellátás felé. Ennek ellenére mindkét technológiát továbbra is hatékonyan kell kezelni annak érdekében, hogy jól működjön a környezetében. A tárolókkal a biztonsági problémák kezelése és annak biztosítása, hogy a megosztott operációs rendszer ne találjon hibákat.
A virtuális gépekkel a bonyolult feladat a virtuális erőforrások kezelése. Például te a sávszélességre és a feldolgozási kapacitásra szükségük van a virtuális gépek támogatásához (különösen, ha több virtuális gépet futtat egy eszközön). Ha nem osztja ki a szükséges erőforrásokat, akkor a virtuális gépek nem fognak hatékonyan működni.
A rendszergazdának azt is figyelembe kell vennie, hogy miként hangolják össze a virtuális gép használatát a hálózaton elérhető erőforrásokkal. Noha a virtuális gépek mozgatása nagyszerű az erőforrások hatékonyabb felhasználása szempontjából, ez magában foglalja annak szükségességét, hogy biztosítsa az erőforrások egyenletes eloszlását. Ugyanez igaz a Dockerre is, ám kevésbé súlyos teljesítménye miatt kevésbé kérdéses.
Természetesen, még ha az erőforrásokat is tökéletesen kezeli, továbbra is számos kockázat kapcsolódik a virtuális gépekhez. Ott van a a rendelkezésre álló források túllépésének kockázata vagy egyetlen hardverhiba, egy sor virtuális gép törlésével. Ez extra nyomást gyakorol az adminisztrátorra, hogy minden apró felhasználási részlet mellett maradjon. Ez a probléma nem csak a virtuális gépekre jellemző, de nekik minden bizonnyal inkább problémát jelent, mint a Docker tárolók számára.
Hordozhatóság
Az egyes technológiák hordozhatósága releváns azok számára, akik optimalizálni akarják a hálózati erőforrásokat. A Docker tárolók önálló csomagok, amelyek a szükséges alkalmazást futtatják. A Docker konténerek könnyen hordozhatók, mivel nincsenek külön operációs rendszerük. A hordozás után másodpercek alatt elindulhatnak, és így hordozhatóbb alternatívavá válnak.
Ezzel szemben a virtuális gépek nem olyan hordozhatóak, mert mindegyikük rendelkezik saját operációs rendszerrel. Ez megnehezíti őket, mivel az operációs rendszert nem lehet átmásolni egy másik platformon és jól működni. Olyan környezetben, ahol különféle alkalmazásokat kell telepítenie a különböző problémákra, jobban jár a Docker. Az operációs rendszer elválasztása a gazda eszköz operációs rendszerétől biztosítja, hogy az alkalmazások szükségtelen megszakítások nélkül futhassanak.
Biztonság
A virtuális gépek támogatása és a Docker közötti vita egyik kulcsfontosságú területe a biztonságosabb telepítés. Ez egy különösen összetett terület, mivel számos tényezőt meg kell vitatni, a Docker veleszületett sebezhetőségétől kezdve a virtuális gép hipervizorának egyetlen meghibásodási pontjáig. Ebben a szakaszban megvizsgáljuk a technológiák biztonságának két legnagyobb veszélyét.
OS szegregáció
Mind a Docker, mind a virtuális gépek elválasztják az alkalmazásokat egymástól. Ez azt jelenti, hogy ha egy alkalmazásból áll, akkor az nem érinti a többi alkalmazást. Elméletileg ez biztosítja a tökéletes védelmet, de a Dockernek van egy alapvető problémája; minden alkalmazás megoszt egy operációs rendszert. Ha az operációs rendszert sérül egy kompromittált alkalmazás, akkor a támadás az összes tárolót egyszerre érinti.
A virtuális gépek ezt a problémát megoldják az alkalmazás vezérlésére használt operációs rendszer elkülönítése a hipervizortól amely kölcsönhatásba lép a hardverrel. Van egy operációs rendszer, amellyel a felhasználó interakcióba léphet az alkalmazás használatához, de ez nem engedélyezi a hardverrel való interakciót. Ez azt jelenti, hogy ha egy alkalmazás hibája van, akkor rendkívül valószínűtlen, hogy káros hatással legyen a gazdarendszer hardverére.
Ebben az értelemben a virtuális gépek nagyobb biztonságot nyújtanak az operációs rendszer hibáival és a biztonsági megsértésekkel szemben, mint a Docker tárolók. Az az alkalmazás szétválasztásának modellje, amelyet a Docker az erőforrás-felhasználás optimalizálására használ a biztonság költségén. A virtuális gépeknek az az előnye, hogy a operációs rendszert külön tartják a hardvertől, hogy minimalizálják a sérülések kockázatát.
Egyetlen hibahely: hipervizor
Ugyanakkor csak azért, mert a virtuális gépek biztonságosabbak az alkalmazások elválasztása szempontjából, ez nem azt jelenti, hogy nincsenek saját sebezhetőségük. Virtuális gépekben A hipervizorok a kudarc egyetlen pontja. Ha a hipervizor sikertelen, akkor egy csomó alkalmazás lecsökkenhet egy lépéssel. Ez azt jelenti, hogy ha egy számítógépes támadó meg akarja ártani a hálózatát, akkor rosszindulatú programokat küldhet a virtuális gépre.
Összehasonlítva, A Docker konténereknek nincs egyetlen meghibásodási pontja. Bár az egyetlen meghibásodási pont miatt az alkalmazások sebezhetők lehetnek, a hipervizorokat nagyon nehéz megsérteni. Noha a számítógépes támadó megsértheti a hipervizort, ez nagyon valószínűtlen a használt kód összetettsége miatt. Ezen a ponton a hipervizor kudarca inkább a bizonytalanság potenciális területe, mint egy széles körben kihasznált belépési pont.
Költség
A Docker és a virtuális gépek költsége egy másik olyan terület, amelyet nehéz megmérni. 451 A kutatások azt sugallják, hogy a konténerek alacsonyabb TCO-val vagy teljes birtoklási költségekkel bírnak, mint a hardver virtualizálása. Ennek oka az, hogy a Docker tárolók hatékonyabban használják az erőforrásokat. Minden virtuális gépnek megvan a saját operációs rendszere, amelyet a gazdarendszernek fenntartania kell. Ehhez olyan számítógépes erőforrásokra van szükség, amelyek növelik a hosszú távú fizikai hardverköltségeket.
A Docker kiküszöböli ezt a problémát egy operációs rendszer használatával az összes alkalmazásához. A konténerek megosztják egy operációs rendszert az erőforrás-igény minimalizálása érdekében. Több alkalmazás futtatásakor ez különösen releváns, mert sokféle alkalmazást futtathat egyetlen operációs rendszerrel. Összehasonlításképpen, a virtuális gépek minden operációs rendszerhez rendelkezzen operációs rendszerrel, ami azt jelenti, hogy több erőforrás van, amelyért fizetnie kell.
A Docker konténerek közvetlen költségmegtakarítását nehéz mérni, de számos tényezőt kell figyelembe venni. Több kilométert képes elérni a jelenlegi hálózati infrastruktúrából konténerekkel, mint virtuális gépekkel. Hasonlóképpen, ha előrelépést kell tennie, akkor kevesebb erőforrással megteheti, miközben több energiát fogyaszt a virtuális gépek fenntartásához.
Melyiket kell használni és mikor?
Noha a Docker előnye a hatékonyság és a teljesítmény szempontjából, ne hibáztassa azt, ha azt gondolja, hogy a konténerek eredendően jobbak, mint a virtuális gépek. A Docker és a virtuális gépeknek vannak saját előnyeik bizonyos helyzetekben. Annak meghatározása, hogy egy alkalmazás tárolóba vagy virtuális gépbe kerül-e, teljesen függ a felhasználási követelményektől. Ebben a szakaszban megvizsgáljuk, hogyan lehet választani a kettő között.
alkalmazás típusa
Az első tényező, amelyet a választáskor figyelembe kell vennie, az a telepítendő alkalmazás típusa. A konténereket olyan alkalmazások fenntartására tervezték, amelyek nem kapcsolódnak a gazda operációs rendszerhez. A Docker-tárolók azokhoz az alkalmazásokhoz készülnek, amelyeket futtatni kíván, függetlenül a gazdarendszer infrastruktúrájától. Ez azt jelenti, hogy ha olyan beágyazott rendszereket szeretne fenntartani, amelyek szorosabban integrálódnak a gazdaeszközhöz, akkor jobb, ha a virtuális gépet választja..
Méret
A következő tényezőt, amelyet figyelembe kell vennie a kettő közötti választáskor, az alkalmazás mérete. Az alkalmazás hatékonyan futtatásához szükséges számítási erőforrások mennyisége meghatározza, melyiket választja. Ha olyan alkalmazások fenntartására törekszik, amelyeknek csak egy gépen kell futniuk egy számítógépen, például mikroszolgáltatásokon, akkor a Docker tároló a természetes választás. Ezzel szemben egy virtuális gép lenne a jobb választás a magas prioritású szolgáltatások, például az adatbázisok számára.
Használjon tokot
Infrastruktúra | Nem | Igen |
Konténer környezetgazda | Nem | Igen |
adatbázisok | Nem | Igen |
Legacy Apps | Igen | Nem |
Microservices | Igen | Nem |
Webes alkalmazások | Igen | Nem |
Amint látod, A virtuális gépeknek három fő használati esetben van előnye: infrastruktúra, konténer környezet gazdagépei, és adatbázisok. A fő terület az infrastruktúrával rendelkezik. A virtuális gépek útválasztók és tűzfalak formájában hozhatnak létre hálózati infrastruktúrát oly módon, amely a Dockernél nem lehetséges. A virtuális gépek képesek a virtuális hardver szintjén kölcsönhatásba lépni, és lehetővé teszik a felhasználó számára, hogy módosítsa az infrastruktúrát. A virtuális gépeket gyakran használják konténergazdaként, mivel képesek a hardverrel való interakcióra.
Másrészről, A Docker könnyű módszert kínál a régi alkalmazások telepítéséhez szinte bármilyen környezetben. Ha a könyvtárak az alkalmazás mellett vannak, azok könnyen telepíthetők. A mikroszolgáltatások ideálisak a Docker számára is, mivel az egyszerű konténerszerkezet jól alkalmazható egy alapvető feladatot nyújtó alkalmazások számára (szemben a sok különböző felelősségű alkalmazáskal)..
Docker vs virtuális gépek: nagyobb együtt
Bár a Docker és a virtuális gépek előnyeik vannak a hardver eszközökkel szemben, a Docker a két közül a források felhasználása szempontjából hatékonyabb. Ha két szervezet teljesen azonos és ugyanazt a hardvert üzemelteti, akkor a Dockert használó cég képes több alkalmazást fenntartani. A Docker az alkalmazások kezelésének és telepítésének képessége egyszerűen mérföldön meghaladja a virtuális gépek lehetőségeit.
Végül ez a virtuális gépek belső architektúrájára vezethető vissza. A fizikai infrastruktúra emulálása talán könnyebb, mint a hardver eszköznél, de még mindig túl sok zsír van ahhoz, hogy lépést tartson a Dockerrel. Kétségtelen, hogy mindkét technológiát gondosan kell kezelni a hatékonyság maximalizálása érdekében.
Ne aggódjon azonban a virtuális gépek teljes leírásában. A kettő együttes kombinációja lehetővé teszi számos felhasználási eset lefedését, és lehetővé teszi a virtuális erőforrások lehető rugalmasabbá tételét. Élvezheti a virtuális gépek biztonságát különösen fontos alkalmazásokon, valamint a Docker alacsony számítási követelményeit is.
Lásd még: Virtuálisgép felügyeleti eszközök és szoftverek
kre telepíthetők, és nem igényelnek különösebb konfigurációt. A Docker használata lehetővé teszi a fejlesztők számára, hogy gyorsan és hatékonyan telepítsék és futtassák az alkalmazásokat, miközben minimalizálják a számítógép erőforrásainak felhasználását. A Docker előnyei közé tartozik a könnyű telepítés, a gyors indítás és a magas hordozhatóság. Miért van szükségem virtuális gépre?? A virtuális gépek használata akkor javasolt, ha olyan alkalmazásokat kell futtatni, amelyek nem kompatibilisek a Dockerrel vagy amelyek nagyobb erőforrásokat igényelnek. A virtuális gépek lehetővé teszik a felhasználók számára, hogy különböző operációs rendszereket futtassanak ugyanazon a számítógépen, és lehetővé teszik a szoftverek tesztelését különböző környezetekben. A virtuális gépek előnyei közé tartozik a magas biztonság, az operációs rendszerek szegregációja és a könnyű telepítés. Docker vs virtuális gépek fejről fejre A Docker és a virtuális gépek közötti választás attól függ, hogy milyen alkalmazásokat kell futtatni, és milyen erőforrások állnak rendelkezésre. Az alábbiakban összehasonlítjuk a Docker és a virtuális gépek előnyeit és hátrányait. Teljesítmény A Docker általában jobb teljesítményt nyújt, mint a virtuális gépek, mivel a konténerek megosztják az operációs rendszert, és nem igényelnek virtuális hardverek emulálását. A Docker konténerek gyorsabban indíthatók és futtathatók, mint a virtuális gépek. A virtuális gépek azonban jobb teljesítményt nyújtanak olyan alkalmazások futtatásához, amelyek nagyobb erőforrásokat igényelnek, mivel a virtuális gépek különálló virtuális hardvert biztosítanak az alkalmazások számára. vezetés A Docker könnyebb vezérlést biztosít, mint a virtuális gépek, mivel a konténerek könnyen telepíthetők és futtathatók. A Docker konténerek könnyen skálázhatók, és lehetővé teszik a fejlesztők számára, hogy gyorsan és hatékonyan telepítsék és futtassák az alkalmazásokat. A virtuális gépek azonban jobb vezérlést biztosítanak olyan alkalmazások futtatásához, amelyek nagyobb erőforrásokat igényelnek, mivel a virtuális gépek különálló virtuális hardvert biztosítanak az alkalmazások számára. Hordozhatóság A Docker nagyon hordozható, mivel a konténerek megosztják az operációs rendszert, és nem igényelnek virtuális hardverek emulálását. A Docker konténerek könnyen telepíthetők és futtathatók bármilyen számítógépen, amely támogatja a Docker-t. A virtuális gépek azonban kevésbé hordozhatók, mivel a virtuális gépek különálló virtuális hardvert biztosítanak az alkalmazások számára, és nem kompatibilisek minden számítóg