Potepuški

Docker Vs Vagrant

Docker Vs Vagrant

Razvojne in operativne skupine se že od začetka ukvarjajo s kompleksnostjo programskih okolij. Pogosta težava je, da delujoča koda v enem okolju ne deluje v drugem.

Tako docker kot potepuh pomagata ustvariti predvidljiva in ponovljiva razvojna okolja. Vendar pa Docker za dosego tega cilja uporablja tehnologijo zabojnikov, medtem ko vagrant uporablja virtualne stroje. Razumevanje prednosti in slabosti Dockerja in Vagranta bo razvijalcem pomagalo, da bodo ta orodja pomešala in se ujemala, da bodo dosegli želene rezultate.

Najprej začnimo z osnovnimi tehnologijami.

Navidezni stroj

Navidezni stroj (VM) posnema fizični računalnik. Na voljo je z lastnim celotnim operacijskim sistemom in dodeljevanjem virov. Gostiteljski stroj zagotavlja potrebne fizične vire, vendar virtualizirano okolje deluje kot neodvisen stroj z lastnim BIOS-om, CPU-jem, pomnilnikom in omrežnimi vmesniki.

Čeprav je VMware danes najbolj znan po sodobni tehnologiji VM, ideja o navideznem stroju obstaja že dolgo.

Leta 1965 je raziskovalni center IBM Yorktown potreboval način za merjenje učinkovitosti različnih idej računalništva. Raziskovalna skupina je želela preklopiti med funkcijami in izmeriti rezultate. Skupina je oblikovala shemo za razdelitev enega stroja na manjše predelne stene. Manjše particije bi upravljale lastna sredstva. Bili bi majhni virtualni stroji.

Ideja o VM je bila uspešna. IBM je začel izdelovati operacijske sisteme, ki temeljijo na navideznih strojih. IBM System 370 (S / 370) in IBM System 390 (S / 390), oba sistema, ki temeljita na IBM VM / ESA, sta postala priljubljena med podjetji in univerzami, ker sta institucijam dovoljevala, da uporabnikom delijo računalniške vire, ne da bi to vplivalo na okolje drug drugega. Ideja je pomagala tudi pri ustvarjanju operacijskega sistema Unix in programskega jezika Java.

Sodobni navidezni stroji delujejo na hipervizorjih. Hipervizorji so programska oprema, strojna ali strojna oprema, odgovorna za ustvarjanje in izvajanje VM-jev. Na trgu je na voljo veliko hipervizorjev. KVM, Red Hat Enterprise Virtualization (RHEV), XenServer, Microsoft Hyper-V in VMware vSphere / ESXi so pomembni igralci.

Danes so navidezni stroji spodbudili rast računalništva v oblaku. Podjetja Amazon AWS, Microsoft Azure, Google Cloud, Digital Ocean in druga podjetja v oblaku so močno odvisna od tehnologije za virtualizacijo.

Zabojniki

Zabojniki ustvarjajo virtualizacijo na ravni operacijskega sistema. Delujejo kot izvršljiv programski paket, ki aplikacije ločuje od okolice. Znotraj paketa ima vsebnik potrebne lastnosti, kot so koda, izvajalno okolje, sistemske knjižnice in orodja, da aplikacija ostane ločena od zunanjih vplivov. Deluje v operacijskem sistemu gostiteljskega računalnika. Zabojniki si knjižnice in binarne datoteke delijo, kadar je to mogoče, in ločujejo le nujno potrebne vire.

Leta 1979 so sistemski klici »chroot« lahko izolirali procese za Unix. To je bilo prvo seme ideje o posodi. Zgodnja tehnologija zabojnikov se je začela z FreeBSD Jails leta 2000. Leto kasneje je Linux VServer dovolil, da je več računalnikov Linux delovalo na enem samem gostitelju. Leta 2004 so Oracle Solaris Zones nudili podobno funkcionalnost kot FreeBSD Jails. V letih 2006–2007 je Google razvil procesni vsebnik in ga nato združil v jedro Linuxa. Linux Containers (LXC) je bil ustvarjen leta 2008, da bi izkoristil prednosti skupin Linux in razmika imen. Leta 2013 je bil Docker ustvarjen s kombiniranjem idej LXC. Dodala je tudi orodja za enostavno gradnjo in pridobivanje slik posod.

Docker

Docker je odprtokodna tehnologija zabojnikov, ki temelji na LXC. Priljubljen je, ker olajša ustvarjanje, zagon in uvajanje aplikacij v samostojnem okolju. Docker ne ustvari celotnega operacijskega sistema, kot je navidezni stroj. Namesto tega uporablja jedro gostiteljskega operacijskega sistema in ustvarja virtualizacijo samo za aplikacijo in potrebne knjižnice. Zaradi tega pristopa je veliko lažji od virtualnih strojev.

Docker zabojniki so ustvarjeni iz Docker Images. Slike Dockerja lahko razumemo kot posnetke strojev. Uporabniki lahko posodo enostavno zaženejo s slike. Slike so ustvarjene kot plasti. Recimo, da razvojna skupina potrebuje vsebnik z Apachejem in Pythonom, nameščenim v določeni različici Linuxa. Razvijalec lahko prenese sliko Linuxa iz Docker Hub, zažene vsebnik, namesti Apache in Python, ustvari novo sliko iz vsebnika in to sliko da v skupno rabo. Ostalim članom ekipe ni treba iti skozi isto namestitev. Pomaga ohranjati dosledno okolje za vse.

Docker podpira tudi skriptne programe in programe z več vsebniki. Uporabniki lahko z besedilno datoteko Dockerfile definirajo zahteve in nato gradijo vsebnike prek programa Docker Compose. Zgornji primer ustvarjanja strežnika Apache / Python / Linux je mogoče doseči tudi s tem postopkom. Z Docker Compose morajo ekipe deliti Dockerfile samo za ustvarjanje istega okolja.

Docker ima bolj specializirana orodja za zapletene naloge. Docker Swarm pomaga organizirati obsežne postavitve dockerjev.

Potepuški

Vagrant je odprtokodno orodje, ki pomaga ustvarjati in vzdrževati navidezne stroje. Deluje z VirtualBox, VMWare, AWS in drugimi ponudniki.

Vagrant poenostavlja upravljanje VM-jev. Z uporabo datoteke Vagrant lahko razvijalci opredelijo lastnosti navideznega stroja, kot so operacijski sistem, namestitve programske opreme in druge. Besedilno datoteko Vagrant lahko delite z nadzorom različic in s preprostim ukazom, kot je "vagrant up", zaženete potrebno napravo. Uporabniki se lahko nato v stroj prijavijo kot fizični strežnik.

Kdaj uporabiti Docker ali Vagrant

Uporaba Dockerja ali Vagranta pogosto prihaja do potrebe po zabojnikih ali navideznih strojih. Tu je nekaj podobnosti in razlik med Dockerjem in Vagrantom glede uporabe:

Podobnosti

Tako Docker kot Vagrant imata enostavno nastavljivo okolje, ki ga je mogoče nadzorovati s pomočjo skriptov. So tudi oblaku prijazni.

Razlike

Navidezni stroj Vagrant zagotavlja ločevanje varnosti na osnovi jedra. Zaradi ločitve so virtualni stroji manj tvegani kot zabojniki. Toda Dockerjevi zabojniki so zelo lahki. Uporabljajo manj virov in so hitri pri izvedbi. Tako lahko imate na enem gostitelju veliko več vsebnikov kot navidezni stroji. Tudi zagon in zaustavitev zabojnikov je skoraj takojšen v primerjavi z VM-ji. VM preidejo skozi celoten cikel zagona BIOS-a in operacijskega sistema.

Varnostno ločevanje navideznega stroja naredi okvaro VM bolj samostojno. Po drugi strani pa si vsebniki delijo vire in imajo lahko kaskadni učinek zrušitve. Tudi grožnje varnosti vsebnika lahko dosežejo jedro gostiteljskega operacijskega sistema.

Vendar pa hitrost izvedbe in majhen odtis posod omogočata Docker zelo privlačnost za razvoj. Z arhitekturo mikro storitev lahko posode delujejo dobro, ker se dejavniki tveganja zmanjšajo z uporabo mikro storitev. Prav tako napreduje, da je Docker vsak dan bolj varen.

Zaključek

Docker in Vagrant sta uporabni tehnologiji, ki razvijalcem lahko pomagata izboljšati produktivnost. Če je skrb za varnost zaskrbljujoča, je morda dobra uporaba uporaba programov Vagrant in VM. Za hiter razvoj in skupno rabo ima Docker prednost. Večina ekip uporablja obe za nemoteno delovanje.

Reference:

Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...
Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...