Klaidonis

Dokers Vs klaidonis

Dokers Vs klaidonis

Izstrādes un operāciju grupas kopš sākuma ir nodarbojušās ar programmatūras vides sarežģītību. Tā ir izplatīta problēma, kad darba kods vienā vidē nedarbojas citā.

Gan dokeris, gan klaidonis palīdz radīt paredzamu un atkārtojamu attīstības vidi. Tomēr dokeris izmanto konteineru tehnoloģiju, savukārt klaidonis izmanto virtuālās mašīnas, lai sasniegtu šo mērķi. Docker un Vagrant stiprās un vājās puses izpratne palīdzēs izstrādātājiem sajaukt un saskaņot šos rīkus, lai sasniegtu vēlamos rezultātus.

Vispirms sāksim ar pamatā esošajām tehnoloģijām.

Virtuālā iekārta

Virtuālā mašīna (VM) līdzinās fiziskam datoram. Tam ir sava pilnīga operētājsistēma un resursu piešķiršana. Saimniekmašīna nodrošina nepieciešamos fiziskos resursus, bet virtualizētā vide darbojas kā neatkarīga mašīna ar savu BIOS, CPU, atmiņu un tīkla adapteriem.

Lai arī mūsdienās VMware ir visvairāk slavena ar moderno VM tehnoloģiju, virtuālās mašīnas ideja pastāv jau ilgu laiku.

1965. gadā IBM Yorktown Research Center bija nepieciešams veids, kā izmērīt dažādu datorzinātņu ideju efektivitāti. Pētnieku grupa vēlējās pārslēgties starp funkcijām un izmērīt rezultātus. Komanda izstrādāja shēmu, kā vienu mašīnu sadalīt mazākās starpsienās. Mazāki nodalījumi pārvaldītu savus resursus. Tās būtu mazas virtuālās mašīnas.

VM ideja bija veiksmīga. IBM sāka veidot operētājsistēmas, kuru pamatā ir virtuālās mašīnas. IBM System 370 (S / 370) un IBM System 390 (S / 390), abas uz IBM VM / ESA balstītās sistēmas, kļuva populāras uzņēmumos un universitātēs, jo tās ļāva iestādēm ļaut lietotājiem koplietot skaitļošanas resursus, neietekmējot viens otra vidi. Ideja arī palīdzēja izveidot Unix operētājsistēmu un Java programmēšanas valodu.

Mūsdienu virtuālās mašīnas darbojas ar hipervizoriem. Hipervizori ir programmatūra, programmaparatūra vai aparatūra, kas atbild par VM izveidošanu un izpildi. Tirgū ir pieejams daudz hipervizoru. KVM, Red Hat Enterprise Virtualization (RHEV), XenServer, Microsoft Hyper-V un VMware vSphere / ESXi ir nozīmīgākie spēlētāji.

Mūsdienās virtuālās mašīnas ir veicinājušas mākoņdatošanas izaugsmi. Amazon AWS, Microsoft Azure, Google Cloud, Digital Ocean un citi mākoņu uzņēmumi ir ļoti atkarīgi no virtualizācijas tehnoloģijas.

Konteineri

Konteineri veido virtualizāciju operētājsistēmas līmenī. Tie darbojas kā izpildāma programmatūras pakotne, kas izolē lietojumprogrammas no apkārtējās vides. Iepakojuma iekšpusē konteineram ir nepieciešamās īpašības, piemēram, kods, izpildlaiks, sistēmas bibliotēkas un rīki, lai lietojumprogramma būtu atdalīta no ārējas ietekmes. Tas darbojas uz saimniekdatora operētājsistēmas. Konteineri, ja iespējams, koplieto bibliotēkas un bināros failus un atdala tikai absolūti nepieciešamos resursus.

1979. gadā “chroot” sistēmas zvani varēja izolēt Unix procesus. Tā bija konteineru idejas pirmā sēkla. Agrīnā konteineru tehnoloģija sākās ar FreeBSD Jails 2000. gadā. Gadu vēlāk Linux VServer ļāva vairākām Linux mašīnām darboties vienā resursdatorā. 2004. gadā Oracle Solaris Zones nodrošināja līdzīgu funkcionalitāti kā FreeBSD Jails. 2006.-2007. Gadā Google izstrādāja Process Container un pēc tam to apvienoja Linux kodolā. Linux Containers (LXC) tika izveidots 2008. gadā, lai izmantotu Linux grupas un vārdu atstarpes priekšrocības. 2013. gadā Docker tika izveidots, apvienojot LXC idejas. Tas arī pievienoja rīkus, lai ērti izveidotu un izgūtu konteineru attēlus.

Dokers

Docker ir atvērtā koda konteineru tehnoloģija, kuras pamatā ir LXC. Tas ir populārs, jo tas atvieglo lietojumprogrammu izveidi, palaišanu un izvietošanu patstāvīgā vidē. Docker neizveido visu operētājsistēmu, piemēram, virtuālo mašīnu. Tā vietā tas izmanto resursdatora operētājsistēmas kodolu un veido virtualizāciju tikai lietojumprogrammai un nepieciešamajām bibliotēkām. Šī pieeja padara to daudz vieglāku nekā virtuālās mašīnas.

Docker konteineri tiek veidoti no Docker Images. Docker Images var uzskatīt par mašīnu momentuzņēmumiem. Lietotāji var viegli sākt konteineru no attēla. Attēli tiek veidoti kā slāņi. Pieņemsim, ka izstrādes komandai ir nepieciešams konteiners ar Apache un Python, kas instalēts noteiktā Linux versijā. Izstrādātājs var lejupielādēt Docker Hub Linux attēlu, startēt konteineru, instalēt Apache un Python, izveidot no konteinera jaunu attēlu un kopīgot šo attēlu. Citiem komandas dalībniekiem nav jāveic tā pati instalācija. Tas palīdz uzturēt konsekventu vidi visiem.

Docker atbalsta arī skriptu un vairāku konteineru lietojumprogrammas. Lietotāji var izmantot teksta Dockerfile, lai definētu prasības un pēc tam izveidotu konteinerus, izmantojot Docker Compose. Iepriekš minēto Apache / Python / Linux servera izveides piemēru var sasniegt arī ar šo procesu. Izmantojot Docker Compose, komandām ir jādalās tikai ar Dockerfile, lai izveidotu to pašu vidi.

Docker ir vairāk specializētu rīku sarežģītu uzdevumu veikšanai. Docker Swarm palīdz organizēt liela apjoma docker izvietojumus.

Klaidonis

Vagrant ir atvērtā koda rīks, kas palīdz izveidot un uzturēt virtuālās mašīnas. Tas darbojas ar VirtualBox, VMWare, AWS un citiem pakalpojumu sniedzējiem.

Vagrant vienkāršo VM pārvaldību. Izmantojot Vagrantfile, izstrādātāji var definēt virtuālās mašīnas rekvizītus, piemēram, operētājsistēmu, programmatūras instalācijas un citus. Teksta bāzes Vagrantfile var koplietot, izmantojot versiju kontroli, un nepieciešamo mašīnu var palaist, izmantojot vienkāršu komandu, piemēram, “vagrant up”. Pēc tam lietotāji var pieteikties mašīnā kā fizisks serveris.

Kad lietot Docker vai Vagrant

Docker vai Vagrant izmantošana bieži ir saistīta ar nepieciešamību pēc konteineriem vai virtuālajām mašīnām. Šeit ir dažas līdzības un atšķirības starp Docker un Vagrant lietošanas ziņā:

Līdzības

Gan Docker, gan Vagrant ir viegli konfigurējama vide, kuru var kontrolēt, izmantojot skriptus. Viņi ir arī draudzīgi mākoņiem.

Atšķirības

Vagrant virtuālā mašīna nodrošina kodola drošības atdalīšanu. Atdalīšana padara virtuālās mašīnas mazāk riskantas nekā konteineri. Bet Docker konteineri ir ļoti viegli. Viņi izmanto mazāk resursu un tiek ātri izpildīti. Tātad vienā resursdatorā var būt daudz vairāk konteineru nekā virtuālajās mašīnās. Arī konteineru palaišana un apturēšana ir gandrīz acumirklīga, salīdzinot ar VM. VM iziet visu BIOS un operētājsistēmas sāknēšanas ciklu.

Virtuālās mašīnas drošības nošķiršana padara VM kļūmi patstāvīgāku. No otras puses, konteineriem ir kopīgi resursi, un tiem var būt kaskādes avārijas efekts. Konteineru drošības draudi var sasniegt arī resursdatora operētājsistēmas kodolu.

Tomēr izpildes ātrums un vieglais konteineru nospiedums padara Docker ļoti pievilcīgu attīstībai. Izmantojot mikropakalpojumu arhitektūru, konteineri var darboties labi, jo, izmantojot mikropakalpojumus, riska faktori tiek mazināti. Tāpat tiek panākts progress, lai katru dienu padarītu Dokeru drošāku.

Secinājums

Docker un Vagrant ir abas noderīgas tehnoloģijas, kas var palīdzēt izstrādātājiem uzlabot viņu produktivitāti. Ja bažas rada lietojumprogrammu drošība, varētu būt laba ideja izmantot Vagrant un VM. Ātrai attīstībai un koplietošanai Docker nodrošina priekšrocības. Lai nodrošinātu nevainojamu darbību, lielākā daļa komandu izmanto abus.

Atsauces:

Vulkan Linux lietotājiem
Ar katru jauno grafisko karšu paaudzi mēs redzam, kā spēļu izstrādātāji pārspēj grafiskās uzticamības robežas un tuvojas fotoreālismam. Neskatoties uz...
OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...