Hulkur

Docker Vs hulkur

Docker Vs hulkur

Arendus- ja operatsioonimeeskonnad on tarkvara keskkondade keerukusega tegelenud algusest peale. See on levinud probleem, kus ühes keskkonnas töötav kood ei tööta teises.

Nii dokkija kui ka hulkur aitavad luua prognoositavaid ja korratavaid arengukeskkondi. Docker kasutab aga konteineritehnoloogiat, samas kui hulkur kasutab selle eesmärgi saavutamiseks virtuaalmasinaid. Dockeri ja Vagranti tugevuste ja nõrkuste mõistmine aitab arendajatel neid tööriistu soovitud tulemuste saavutamiseks kokku sobitada.

Alustame kõigepealt aluseks olevatest tehnoloogiatest.

Virtuaalne masin

Virtuaalmasin (VM) jäljendab füüsilist arvutit. Sellel on oma täielik operatsioonisüsteem ja ressursside eraldamine. Hostmasin pakub vajalikke füüsilisi ressursse, kuid virtualiseeritud keskkond töötab iseseisva masinana, millel on oma BIOS, CPU, salvestusruum ja võrguadapter.

Ehkki VMware on tänapäeval kõige kuulsam moodsa VM-tehnoloogia poolest, on virtuaalmasina idee olnud olemas juba pikka aega.

1965. aastal vajas IBM Yorktowni uurimiskeskus viisi arvutiteaduse erinevate ideede tõhususe mõõtmiseks. Uurimisrühm soovis funktsioonide vahel vahetada ja tulemusi mõõta. Meeskond töötas välja skeemi ühe masina jagamiseks väiksemateks partitsioonideks. Väiksemad vaheseinad haldaksid oma ressursse. Need oleksid väikesed virtuaalsed masinad.

VM idee oli edukas. IBM hakkas valmistama operatsioonisüsteeme virtuaalsete masinate baasil. IBM System 370 (S / 370) ja IBM System 390 (S / 390), mõlemad IBM VM / ESA-põhised süsteemid, said ettevõtete ja ülikoolide seas populaarseks, kuna need võimaldasid asutustel lasta oma kasutajatel jagada arvutiressursse, mõjutamata üksteise keskkonda. Idee aitas luua ka Unixi operatsioonisüsteemi ja Java programmeerimiskeelt.

Kaasaegsed virtuaalsed masinad töötavad hüpervisoritega. Hüpervisorid on tarkvara, püsivara või riistvara, mis vastutab VM-ide loomise ja käivitamise eest. Turul on saadaval palju hüpervisoreid. Silmapaistvamad mängijad on KVM, Red Hat Enterprise Virtualization (RHEV), XenServer, Microsoft Hyper-V ja VMware vSphere / ESXi.

Täna on virtuaalsed masinad hoogustanud pilvandmetöötluse kasvu. Amazon AWS, Microsoft Azure, Google Cloud, Digital Ocean ja teised pilveettevõtted sõltuvad suuresti virtualiseerimistehnoloogiast.

Konteinerid

Konteinerid loovad virtualiseerimise operatsioonisüsteemi tasandil. Need töötavad käivitatava tarkvarapaketina, mis eraldab rakendused ümbritsevast keskkonnast. Pakendi sees on konteineril vajalikud omadused nagu kood, käitusaeg, süsteemiteegid ja tööriistad, et hoida rakendust välisest mõjust eraldi. See töötab hostmasina operatsioonisüsteemis. Konteinerid jagavad raamatukogusid ja binaarkaasse võimaluse korral ja eraldavad ainult hädavajalikud ressursid.

1979. aastal võisid „chroot“ süsteemikõned eraldada protsessid Unixi jaoks. See oli konteineride idee esimene seeme. Varajane konteinerite tehnoloogia sai alguse FreeBSD Jailsist 2000. aastal. Aasta hiljem lubas Linux VServer mitmel Linuxi masinal töötada ühes hostis. 2004. aastal pakkusid Oracle Solarise tsoonid sarnaseid funktsioone nagu FreeBSD Jails. Aastatel 2006-2007 töötas Google välja Process Containeri ja liitis selle seejärel Linuxi tuumaga. Linuxi konteinerid (LXC) loodi 2008. aastal, et kasutada ära Linuxi grupirühmi ja nimeruumi. 2013. aastal loodi Docker LXC ideede ühendamise kaudu. Samuti lisas see tööriistu konteinerite piltide hõlpsaks koostamiseks ja hankimiseks.

Docker

Docker on LXC-l põhinev avatud lähtekoodiga konteinerite tehnoloogia. See on populaarne, kuna see hõlbustab iseseisvas keskkonnas rakenduste loomist, käitamist ja juurutamist. Docker ei loo tervet operatsioonisüsteemi nagu virtuaalset masinat. Selle asemel kasutab see hosti operatsioonisüsteemi tuuma ja loob virtualiseerimise ainult rakenduse ja vajalike teekide jaoks. See lähenemine muudab selle palju kergemaks kui virtuaalsed masinad.

Dockeri konteinerid on loodud rakendusest Docker Images. Dockeri pilte võib pidada masinate hetktõmmisteks. Kasutajad saavad konteinerit hõlpsalt pildilt käivitada. Kujutised luuakse kihtidena. Oletame, et arendustiim vajab konteinerit, mille Apache ja Python on installitud Linuxi teatud versiooni. Arendaja saab Docker Hubist alla laadida Linuxi pildi, käivitada konteineri, installida Apache ja Pythoni, luua konteinerist uue pildi ja jagada seda pilti. Teistel meeskonnaliikmetel pole vaja sama installi läbida. See aitab säilitada ühtlast keskkonda kõigile.

Docker toetab ka skriptimist ja mitme konteineri rakendusi. Kasutajad saavad nõuete määratlemiseks kasutada tekstipõhist Dockerfile'i ja seejärel Docker Compose'i kaudu konteinereid ehitada. Selle protsessi abil on võimalik saavutada ka ülaltoodud näide Apache / Python / Linuxi serveri loomisest. Docker Compose'i abil peavad meeskonnad sama keskkonna loomiseks jagama ainult Dockerfile'i.

Dockeril on keerukamate ülesannete jaoks spetsiaalsemad tööriistad. Docker Swarm aitab korraldada suuremahulisi dokkerite juurutusi.

Hulkur

Vagrant on avatud lähtekoodiga tööriist, mis aitab luua ja hooldada virtuaalmasinaid. See töötab VirtualBoxi, VMWare'i, AWS-i ja teiste pakkujatega.

Vagrant lihtsustab VM-ide haldamist. Vagrantfile'i abil saavad arendajad määratleda virtuaalse masina atribuudid, nagu operatsioonisüsteem, tarkvara installid ja muud. Tekstipõhist Vagrantfile'i saab jagada versioonihalduse kaudu ja vajaliku masina saab käivitada lihtsa käsklusega, näiteks “vagrant up”. Seejärel saavad kasutajad masinasse sisse logida nagu füüsiline server.

Millal Dockerit või Vagrantit kasutada

Dockeri või Vagranti kasutamine taandub sageli konteinerite või virtuaalsete masinate vajadusele. Siin on mõned sarnasused ja erinevused Dockeri ja Vagrandi vahel kasutamise osas:

Sarnasused

Nii Dockeril kui ka Vagrantil on hõlpsasti konfigureeritavad keskkonnad, mida saab skriptide abil juhtida. Nad on ka pilvesõbralikud.

Erinevused

Vagrant virtuaalne masin pakub kernelipõhist turvasidet. Eraldamine muudab virtuaalmasinad vähem riskantseks kui konteinerid. Kuid Dockeri konteinerid on väga kerged. Nad kasutavad vähem ressursse ja on kiiresti täidetavad. Nii et ühes hostis võib olla palju rohkem konteinereid kui virtuaalsetes masinates. Samuti on konteinerite käivitamine ja peatamine peaaegu kohene võrreldes VM-idega. VM-id läbivad täieliku BIOS-i ja operatsioonisüsteemi alglaadimistsükli.

Virtuaalmasina turvalisuse eraldamine muudab VM-i tõrke iseseisvamaks. Teisalt jagavad konteinerid ressursse ja neil võib olla kaskaadiline krahhi efekt. Samuti võivad konteineri turvaohud jõuda hosti operatsioonisüsteemi tuumani.

Kuid teostamise kiirus ja konteinerite kerge jalajälg muudavad Dockeri arendamise jaoks väga atraktiivseks. Mikroteenuse arhitektuuri korral võivad konteinerid hästi toimida, kuna mikroteenuste kasutamisega leevendatakse riskitegureid. Samuti tehakse edusamme Dockeri turvalisemaks muutmiseks iga päev.

Järeldus

Docker ja Vagrant on mõlemad kasulikud tehnoloogiad, mis aitavad arendajatel oma tootlikkust parandada. Kui muret tekitab rakenduste turvalisus, võib Vagranti ja VM-ide kasutamine olla hea mõte. Kiireks arendamiseks ja jagamiseks pakub Docker eelise. Enamik meeskondi kasutab sujuva töö tagamiseks mõlemat.

Viited:

10 parimat mängu, mida Ubuntu kaudu mängida
Windowsi platvorm on olnud üks mängude domineerivaid platvorme, kuna tohutu protsent mänge areneb täna Windowsi loomupäraseks toetamiseks. Kas keegi s...
5 parimat arkaadmängu Linuxile
Tänapäeval on arvutid tõsised mängimiseks kasutatavad masinad. Kui te ei saa uut rekordit, teate, mida ma mõtlen. Selles postituses saate teada mõnda ...
Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...