Skitnica

Docker protiv Vagranta

Docker protiv Vagranta

Razvojni i operativni timovi od početka se bave složenošću softverskih okruženja. Čest je problem kada radni kod u jednom okruženju ne radi u drugom.

I docker i skitnica pomažu u stvaranju predvidljivih i ponovljivih razvojnih okruženja. Međutim, docker koristi tehnologiju kontejnera, dok vagrant koristi virtualne strojeve da bi postigao taj cilj. Razumijevanje snaga i slabosti Dockera i Vagranta pomoći će programerima da pomiješaju i usklade ove alate kako bi postigli željene rezultate.

Krenimo prvo s temeljnim tehnologijama.

Virtualni stroj

Virtualni stroj (VM) oponaša fizičko računalo. Dolazi sa vlastitim kompletnim operativnim sustavom i raspodjelom resursa. Stroj domaćin pruža potrebne fizičke resurse, ali virtualizirano okruženje djeluje kao neovisni stroj s vlastitim BIOS-om, CPU-om, pohranom i mrežnim adapterima.

Iako je VMware danas najpoznatiji po modernoj VM tehnologiji, ideja o virtualnom stroju postoji već dugo vremena.

1965. godine istraživački centar IBM Yorktown trebao je način za mjerenje učinkovitosti različitih ideja računalnih znanosti. Istraživački tim želio je prebacivati ​​se između značajki i mjeriti rezultate. Tim je osmislio shemu za podjelu pojedinog stroja na manje pregrade. Manje pregrade upravljale bi vlastitim resursima. Bili bi to mali virtualni strojevi.

Ideja o VM bila je uspješna. IBM je počeo izrađivati ​​operativne sustave temeljene na virtualnim strojevima. IBM System 370 (S / 370) i ​​IBM System 390 (S / 390), oba sustava zasnovana na IBM VM / ESA, postali su popularni među tvrtkama i sveučilištima jer su institucijama omogućili da svojim korisnicima dijele računalne resurse bez utjecaja na međusobno okruženje. Ideja je također pomogla u stvaranju operativnog sustava Unix i programskog jezika Java.

Suvremeni virtualni strojevi rade na hipervizorima. Hipervizori su softver, firmver ili hardver odgovorni za stvaranje i izvršavanje VM-ova. Na tržištu je dostupno puno hipervizora. KVM, Red Hat Enterprise Virtualization (RHEV), XenServer, Microsoft Hyper-V i VMware vSphere / ESXi istaknuti su igrači.

Danas su virtualni strojevi potaknuli rast računalstva u oblaku. Amazon AWS, Microsoft Azure, Google Cloud, Digital Ocean i druge tvrtke u oblaku uvelike ovise o tehnologiji virtualizacije.

Spremnici

Spremnici stvaraju virtualizaciju na razini operativnog sustava. Oni rade kao izvršni softverski paket koji izolira aplikacije od okolnog okruženja. Unutar paketa, spremnik ima potrebna svojstva kao što su kôd, vrijeme izvođenja, sistemske knjižnice i alati kako bi aplikacija bila odvojena od vanjskog utjecaja. Izvodi se na operacijskom sustavu glavnog računala. Spremnici dijele knjižnice i binarne datoteke kad god je to moguće i odvajaju prijeko potrebne resurse.

1979. sistemski pozivi "chroot" mogli bi izolirati procese za Unix. Bilo je to prvo sjeme ideje o kontejneru. Rana tehnologija kontejnera započela je s zatvorima FreeBSD 2000. godine. Godinu dana kasnije, Linux VServer omogućio je radu više Linux računala na jednom hostu. 2004. godine Oracle Solaris Zones pružili su slične funkcije kao i FreeBSD zatvori. U razdoblju od 2006. do 2007. Google je razvio Process Container, a zatim ga spojio u Linux Kernel. Linux kontejneri (LXC) stvoreni su 2008. godine kako bi iskoristili prednosti Linux grupa i prostora za razmjenu imena. 2013. godine Docker je stvoren kombiniranjem LXC ideja. Također je dodao alate za jednostavnu izradu i dohvaćanje slika spremnika.

Lučki radnik

Docker je tehnologija kontejnera otvorenog koda koja se temelji na LXC. Popularna je jer olakšava stvaranje, pokretanje i postavljanje aplikacija u samostalnom okruženju. Docker ne stvara čitav operativni sustav poput virtualnog stroja. Umjesto toga koristi jezgru operacijskog sustava hosta i stvara virtualizaciju samo za aplikaciju i potrebne knjižnice. Ovaj pristup čini ga mnogo lakšim od virtualnih strojeva.

Docker spremnici kreiraju se iz Docker slika. Slike Dockera mogu se smatrati snimkama strojeva. Korisnici mogu lako pokrenuti spremnik sa slike. Slike su stvorene kao slojevi. Pretpostavimo da razvojnom timu treba spremnik s Apacheom i Pythonom instaliranim na određenoj verziji Linuxa. Programer može preuzeti Linux sliku s Docker Hub-a, pokrenuti spremnik, instalirati Apache i Python, stvoriti novu sliku iz spremnika i podijeliti tu sliku. Ostali članovi tima ne trebaju proći istu instalaciju. Pomaže u održavanju dosljednog okruženja za sve.

Docker također podržava skriptiranje i programe s više spremnika. Korisnici mogu koristiti tekstualnu Dockerfile za definiranje zahtjeva i zatim graditi spremnike putem Docker Compose. Gornji primjer stvaranja Apache / Python / Linux poslužitelja također se može postići ovim postupkom. Uz Docker Compose, timovi trebaju dijeliti Dockerfile samo da bi stvorili isto okruženje.

Docker ima više specijaliziranih alata za složene zadatke. Docker Swarm pomaže u organiziranju velikih primjena dockera.

Skitnica

Vagrant je alat otvorenog koda koji pomaže u stvaranju i održavanju virtualnih strojeva. Surađuje s VirtualBoxom, VMWareom, AWS-om i drugim davateljima usluga.

Vagrant pojednostavljuje upravljanje VM-ovima. Koristeći Vagrantfile, programeri mogu definirati svojstva virtualnog stroja poput operativnog sustava, instalacija softvera i drugih. Datoteka Vagrant koja se temelji na tekstu može se dijeliti putem kontrole verzija i potreban stroj može se pokrenuti pomoću jednostavne naredbe poput "vagrant up". Korisnici se tada mogu prijaviti u stroj poput fizičkog poslužitelja.

Kada koristiti Docker ili Vagrant

Korištenje Dockera ili Vagranta često se svodi na potrebu za spremnicima ili virtualnim strojevima. Evo nekoliko sličnosti i razlika između Dockera i Vagranta u smislu upotrebe:

Sličnosti

I Docker i Vagrant imaju lako podesiva okruženja kojima se može upravljati putem skripti. Oni su također pogodni za oblake.

Razlike

Vagrant virtualni stroj pruža sigurnosno razdvajanje na temelju kernela. Odvajanje virtualne strojeve čini manje rizičnima od kontejnera. No, Dockerovi spremnici vrlo su lagani. Koriste manje resursa i brze su u izvršenju. Dakle, možete imati puno više spremnika na jednom hostu od virtualnih strojeva. Također, pokretanje i zaustavljanje spremnika gotovo je trenutno u usporedbi s VM-ovima. VM-ovi prolaze kroz puni ciklus pokretanja BIOS-a i operativnog sustava.

Sigurnosno razdvajanje virtualnog stroja čini neuspjeh VM-a samostalnijim. S druge strane, spremnici dijele resurse i mogu imati kaskadni učinak pada. Također, sigurnosne prijetnje spremnika mogu doći do jezgre operativnog sustava domaćina.

Međutim, brzina izvođenja i lagani otisci kontejnera čine Docker vrlo atraktivnim za razvoj. S arhitekturom mikroservisa spremnici mogu imati dobru izvedbu jer se faktori rizika ublažavaju uporabom mikroservisa. Također, napreduje se u tome da Docker bude sigurniji svaki dan.

Zaključak

Docker i Vagrant korisne su tehnologije koje programerima mogu pomoći da poboljšaju produktivnost. Ako je sigurnost aplikacije zabrinjavajuća, tada bi dobra ideja bila upotreba Vagranta i VM-ova. Za brzi razvoj i dijeljenje, Docker pruža prednost. Većina timova koristi oba za nesmetano odvijanje.

Reference:

Kako promijeniti pokazivač miša i veličinu, boju i shemu pokazivača na sustavu Windows 10
Pokazivač i pokazivač miša u sustavu Windows 10 vrlo su važni aspekti operativnog sustava. To se može reći i za druge operativne sustave, tako da u is...
Besplatni i otvoreni kodni pokretački programi za razvoj Linux igara
Ovaj će članak pokriti popis besplatnih i open source pokretačkih igara koje se mogu koristiti za razvoj 2D i 3D igara na Linuxu. Brojni su takvi moto...
Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...