Valkata

Dockeris prieš valkata

Dockeris prieš valkata

Kūrimo ir operacijų komandos nuo pat pradžių sprendė programinės įrangos aplinkos sudėtingumą. Tai dažna problema, kai darbo kodas vienoje aplinkoje neveikia kitoje.

Tiek dokeris, tiek valkata padeda sukurti nuspėjamą ir pakartotiną vystymosi aplinką. Tačiau dokeris naudojasi konteinerių technologija, o valkatos šiam tikslui pasiekti naudoja virtualias mašinas. Supratimas apie „Docker“ ir „Vagrant“ stipriąsias ir silpnąsias puses padės kūrėjams sumaišyti šiuos įrankius ir pasiekti norimus rezultatus.

Pirmiausia pradėkime nuo pagrindinių technologijų.

Virtuali mašina

Virtuali mašina (VM) imituoja fizinį kompiuterį. Jis tiekiamas su visa savo operacine sistema ir išteklių paskirstymu. Pagrindinė mašina teikia reikiamus fizinius išteklius, tačiau virtualizuota aplinka veikia kaip nepriklausoma mašina, turinti savo BIOS, procesorių, saugyklą ir tinklo adapterius.

Nors šiandien „VMware“ labiausiai garsėja šiuolaikine VM technologija, virtualios mašinos idėja egzistuoja jau seniai.

1965 m. IBM Yorktown tyrimų centrui reikėjo išmatuoti skirtingų informatikos idėjų efektyvumą. Tyrėjų grupė norėjo perjungti funkcijas ir įvertinti rezultatus. Komanda sukūrė schemą, kaip vieną mašiną padalyti į mažesnes pertvaras. Mažesnės pertvaros valdytų savo išteklius. Tai būtų mažos virtualios mašinos.

VM idėja buvo sėkminga. IBM pradėjo kurti operacines sistemas, pagrįstas virtualiomis mašinomis. „IBM System 370“ (S / 370) ir „IBM System 390“ (S / 390), tiek „IBM VM / ESA“ pagrįstos sistemos, išpopuliarėjo verslas ir universitetai, nes jie leido institucijoms leisti savo vartotojams dalytis skaičiavimo ištekliais, nedarant įtakos vienas kito aplinkai. Idėja taip pat padėjo sukurti „Unix“ operacinę sistemą ir „Java“ programavimo kalbą.

Šiuolaikinės virtualios mašinos veikia su hipervizoriais. Hipervizoriai yra programinė įranga, programinė-aparatinė arba aparatinė įranga, atsakinga už VM sukūrimą ir vykdymą. Rinkoje yra daugybė hipervizorių. Svarbiausi žaidėjai yra KVM, „Red Hat Enterprise Virtualization“ (RHEV), „XenServer“, „Microsoft Hyper-V“ ir „VMware vSphere / ESXi“.

Šiandien virtualios mašinos paskatino debesų kompiuterijos plėtrą. „Amazon AWS“, „Microsoft Azure“, „Google Cloud“, „Digital Ocean“ ir kitos debesų kompanijos labai priklauso nuo virtualizavimo technologijos.

Konteineriai

Konteineriai sukuria virtualizaciją operacinės sistemos lygiu. Jie veikia kaip vykdomas programinės įrangos paketas, izoliuojantis programas nuo supančios aplinkos. Pakuotės viduje sudėtinis rodinys turi būtinas savybes, tokias kaip kodas, vykdymo laikas, sistemos bibliotekos ir įrankiai, kad programa būtų atskirta nuo išorinės įtakos. Jis veikia pagrindinio kompiuterio operacinėje sistemoje. Konteineriai, kai įmanoma, dalijasi bibliotekomis ir dvejetainiais failais ir atskiria tik būtinus išteklius.

1979 m. „Chroot“ sistemos skambučiai galėjo izoliuoti „Unix“ procesus. Tai buvo pirmoji konteinerio idėjos sėkla. Ankstyvoji konteinerių technologija prasidėjo nuo „FreeBSD Jails“ 2000 m. Po metų „Linux VServer“ leido kelioms „Linux“ mašinoms veikti viename pagrindiniame kompiuteryje. 2004 m. „Oracle Solaris Zones“ suteikė panašias funkcijas kaip „FreeBSD Jails“. 2006–2007 m. „Google“ sukūrė „Process Container“ ir sujungė ją su „Linux“ branduoliu. „Linux Containers“ (LXC) buvo sukurtas 2008 m., Siekiant pasinaudoti „Linux“ grupės ir vardų srities pranašumais. 2013 m. „Docker“ buvo sukurtas derinant LXC idėjas. Ji taip pat pridėjo įrankių, skirtų lengvai kurti ir gauti konteinerių vaizdus.

Dokeris

„Docker“ yra atviro kodo konteinerių technologija, pagrįsta LXC. Jis yra populiarus, nes palengvina programų kūrimą, vykdymą ir diegimą savarankiškoje aplinkoje. „Docker“ nesukuria visos operacinės sistemos, tokios kaip virtuali mašina. Vietoj to, jis naudoja pagrindinio kompiuterio operacinės sistemos branduolį ir sukuria virtualizaciją tik programai ir reikalingoms bibliotekoms. Šis požiūris daro jį daug lengvesnį nei virtualios mašinos.

„Docker“ konteineriai sukurti iš „Docker Images“. „Docker Images“ galima laikyti mašinų momentinėmis nuotraukomis. Vartotojai gali lengvai paleisti sudėtinį rodinį iš paveikslėlio. Vaizdai kuriami kaip sluoksniai. Tarkime, kad kūrimo komandai reikalingas konteineris su „Apache“ ir „Python“, įdiegtu tam tikroje „Linux“ versijoje. Kūrėjas gali atsisiųsti „Linux“ vaizdą iš „Docker Hub“, paleisti sudėtinį rodinį, įdiegti „Apache“ ir „Python“, iš konteinerio sukurti naują vaizdą ir bendrinti tą vaizdą. Kiti komandos nariai neturi atlikti tos pačios instaliacijos. Tai padeda išlaikyti nuoseklią aplinką visiems.

„Docker“ taip pat palaiko scenarijų ir kelių talpyklų programas. Vartotojai gali naudoti tekstinį „Dockerfile“, kad apibrėžtų reikalavimus, o tada sukurs konteinerius per „Docker Compose“. Aukščiau pateiktą „Apache / Python / Linux“ serverio kūrimo pavyzdį taip pat galima pasiekti naudojant šį procesą. Naudojant „Docker Compose“, komandos turi dalytis tik „Dockerfile“, kad sukurtų tą pačią aplinką.

„Docker“ turi daugiau specializuotų įrankių sudėtingoms užduotims atlikti. „Docker Swarm“ padeda organizuoti didelio masto dokų diegimą.

Valkata

„Vagrant“ yra atviro kodo įrankis, padedantis kurti ir prižiūrėti virtualias mašinas. Jis veikia su „VirtualBox“, „VMWare“, AWS ir kitais teikėjais.

„Vagrant“ supaprastina VM valdymą. Naudodami „Vagrantfile“, kūrėjai gali apibrėžti virtualios mašinos ypatybes, pvz., Operacinę sistemą, programinės įrangos diegimą ir kt. Teksto pagrindu sukurta „Vagrantfile“ galima bendrinti naudojant versijų valdymą ir reikiamą mašiną galima paleisti naudojant paprastą komandą, pvz., „Valkata“. Tada vartotojai gali prisijungti prie kompiuterio kaip fizinis serveris.

Kada naudoti „Docker“ ar „Vagrant“

„Docker“ ar „Vagrant“ naudojimas dažnai priklauso nuo konteinerių ar virtualių mašinų būtinybės. Štai keletas „Docker“ ir „Vagrant“ naudojimo panašumų ir skirtumų:

Panašumai

Tiek „Docker“, tiek „Vagrant“ turi lengvai konfigūruojamą aplinką, kurią galima valdyti scenarijais. Jie taip pat yra draugiški debesims.

Skirtumai

„Vagrant“ virtuali mašina užtikrina branduolio saugumo atskyrimą. Atskyrimas daro virtualias mašinas mažiau rizikingas nei konteineriai. Tačiau „Docker“ konteineriai yra labai lengvi. Jie naudoja mažiau išteklių ir yra greitai vykdomi. Taigi viename pagrindiniame kompiuteryje galite turėti daug daugiau talpyklų nei virtualios mašinos. Be to, konteinerių paleidimas ir sustabdymas yra beveik momentinis, palyginti su VM. VM pereina visą BIOS ir operacinės sistemos įkrovos ciklą.

Saugus virtualiosios mašinos atskyrimas daro VM gedimą savarankiškesnį. Kita vertus, konteineriai dalijasi ištekliais ir gali sukelti pakopinį avarijos efektą. Be to, konteinerių saugumo grėsmės gali pasiekti pagrindinės operacinės sistemos branduolį.

Tačiau vykdymo greitis ir lengvas konteinerių plotas daro „Docker“ labai patrauklų plėtrai. Naudojant mikropaslaugų architektūrą, konteineriai gali veikti gerai, nes naudojant mikropaslaugas rizikos veiksniai sušvelninami. Be to, daroma pažanga, kad „Docker“ būtų saugesnė kiekvieną dieną.

Išvada

„Docker“ ir „Vagrant“ yra naudingos technologijos, kurios gali padėti kūrėjams pagerinti jų produktyvumą. Jei programos saugumas kelia nerimą, „Vagrant“ ir „VM“ naudojimas gali būti gera idėja. Norėdami greitai vystytis ir dalytis, „Docker“ suteikia pranašumą. Daugelis komandų naudoja sklandų darbą.

Nuorodos:

5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...
Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...
Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...