Virtuālās mašīnas pret konteineriem: visaptverošs salīdzinājums

Vai esat neizpratnē par mākoņa virtuālajām mašīnām un konteinerizācijas tehnoloģijām? Lasiet tālāk, lai uzzinātu, kas tos atšķir, kur slēpjas viņu stiprās puses un kā visefektīvāk izmantot katru pieeju.

Virtuālās mašīnas un konteinerizācija ir divas pieejas vairāku izpildes vidi izvietošanai vienā platformā.

Šīs divas tehnoloģijas ļauj viegli izveidot virtuālo vidi, kas ir modelēta pēc fiziskās infrastruktūras, vēl vairāk ļaujot lietotājam optimizēt resursus.

Šajā rakstā ir apskatītas to līdzības un atšķirības. Tajā aplūkotas arī to priekšrocības un trūkumi dažādos lietošanas gadījumos, lai sniegtu jums labāku priekšstatu par to, kā un kad tos vislabāk izmantot.

Hipervizori un konteineru dzinēji

Daudzas vietnes un interneta lietojumprogrammas sāka darboties dalītā mitināšanas vidē, kur divas vai vairākas lietojumprogrammas koplietoja visus fiziskā servera resursus. Tas radīja problēmas, jo viena apdraudēta lietojumprogramma var ietekmēt pārējo gan drošības, gan veiktspējas ziņā. Toreiz vienkāršākais risinājums bija palaist speciālu serveri, kas diemžēl radīja palielinātas izmaksas.

Virtualizācija radīja šīs problēmas. Pirmkārt, hipervizori ļāva fiziskajam serverim mitināt vairāk nekā vienu virtuālo serveri — atkarībā no tā, cik CPU un RAM ir tam. Tas ļauj dažādām lietojumprogrammām, vietnēm vai klientiem darboties izolētā vidē par zemāku cenu, neizmantojot īpašu fizisko serveri.

Tika parādīti arī konteineri, lai vēl vairāk samazinātu izmaksas un risinātu daudzas problēmas, ar kurām izstrādātāji saskaras ar virtuālajām mašīnām. Abas tehnoloģijas mūsdienās pastāv līdzās, un katrai no tām ir savas stiprās un vājās puses.

Virtuālās mašīnas pret konteineriem

Kas ir virtuālā mašīna?

Virtuālās mašīnas vai virtuālās mašīnas ir virtualizētas datora izpildes vides veids, kas atdarina fizisko sistēmu. Virtuālā mašīna izmanto specializētu programmatūru, ko sauc par a hipervisors piekļūt konkrētiem resursiem fiziskajā infrastruktūrā, kas ļauj tai darboties kā neatkarīgai operētājsistēmai.

Virtuālās mašīnas operētājsistēmu sauc par viesu OS, savukārt operētājsistēmu fiziskajā serverī sauc par resursdatora OS. Uzņēmēja OS var mitināt vairākus viesu OS gadījumus atkarībā no tā, cik daudz atmiņas, CPU kodolu un krātuves tai ir.

Virtuālo mašīnu plusi un mīnusi

Plusi

  • Izolācija: Virtuālā mašīna ir ļoti izolēta vide, ko varat izmantot daudzām vajadzībām. Viss, kas notiek tajā, neietekmēs citas virtuālās mašīnas un otrādi. Iemesls ir tāds, ka katra virtuālā mašīna darbojas ar vienu vai vairākiem īpašiem CPU pavedieniem.
  • Aparatūras optimizācija: virtuālās mašīnas ļauj lietotājiem darbināt daudzas operētājsistēmas vienā aparatūras serverī. Šī spēja ļauj ietaupīt izmaksas.
  • Momentuzņēmumi un atcelšanas: jebkurā laikā varat tvert virtuālās mašīnas izpildes stāvokli. Šo procesu sauc par momentuzņēmumu, un atcelšana ir vienkārši funkcija, kas atgriež virtuālo mašīnu šajā precīzajā izpildes stāvoklī.
  • Elastīgums: varat palielināt vai samazināt virtuālās mašīnas mērogošanu un viegli migrēt, padarot tās par ideālu platformu lietojumprogrammu izstrādei un testēšanai.

Mīnusi

  • Ierobežota mērogojamība: Lai gan jūs varat mērogot virtuālās mašīnas, tās nav tik viegli mērogot kā konteinerus.
  • sarežģītība: virtuālo mašīnu pārvaldībai ir nepieciešams vairāk pieskaitāmo izdevumu, piemēram, atjauninājumiem un uzraudzībai, un tas var radīt problēmas liela mēroga izvietošanā.
  • Licencēšana: vairāku virtuālo mašīnu darbināšana var radīt licencēšanas izmaksas.

Kas ir konteiners?

Konteiners ir arī virtualizācijas tehnoloģija, kas ļauj lietotājam izveidot un uzturēt izolētas izpildes vides fiziskajā sistēmā, nepaļaujoties uz sistēmas hipervizoru vai tiešu piekļuvi CPU un citiem resursiem.

Konteiners tiek izveidots, kad tiek izpildīts datu faila saturs. Šo failu sauc par konteinera attēlu, un tajā ir visas bibliotēkas, kas jāinstalē resursdatora operētājsistēmā, lai izveidotu vajadzīgo konteineru.

Konteineri ir viegli un nodrošina konsekventu un pārnēsājamu vidi, kas ir ļoti noderīga mūsdienu programmatūras izstrādei. Tos var arī izpildīt blakus tajā pašā fiziskajā resursdatorā, cik vien var atbalstīt aparatūras specifikācijas.

Konteineru plusi un mīnusi

Plusi

  • Konsekventa vide: Konteinera saturs ir fiksēts un precīzs. Tas nozīmē, ka tas vienmēr radīs to pašu izpildes vidi ikreiz, kad tas tiks palaists.
  • Efektivitāte ar resursiem: Konteineri izmanto tikai tik daudz resursu, cik nepieciešams. Jums nav nepieciešams iepriekš iestatīt CPU vai piešķirt atmiņu. Tas arī ļauj kopā iesaiņot vairāk konteineru.
  • Ātra izvietošana: Konteineri ir viegli un ātri izvietojami, un bieži vien ir nepieciešamas tikai dažas sekundes, lai sāktu darbu.
  • Izolācija: Konteiners ir izolēta izpildes vide. Lai gan tas nav tik izolēts kā virtuālās mašīnas, tas joprojām ir labākais risinājums mikropakalpojumu darbināšanai, kas koncentrējas uz tikai viena darba veikšanu un tā izpildi.

Mīnusi

  • Ierobežots mantoto lietojumprogrammu atbalsts: Ja jums ir darīšana ar lietojumprogrammu, kurai nepieciešamas īpašas operētājsistēmas vai aparatūras ierīces funkcijas, konteiners var nebūt jūsu labākais risinājums.
  • Īslaicīgi dati: Viss par konteineriem tiek iznīcināts, kad konteiners tiek iznīcināts, tostarp dati. Tomēr ir veidi, kā nodrošināt pastāvīgus datus ar konteineriem.
  • Kodola atkarība: Konteineru dzinēji darbojas resursdatora operētājsistēmā, kas ierobežo to, ko varat darīt vidē.

Virtuālo mašīnu un konteineru atšķirības

Virtuālās mašīnasKonteineri
arhitektūraIetver operētājsistēmu ar bibliotēkāmIetver tikai nepieciešamās bibliotēkas
Attēla lielums10 - 150 GB5 - 600 MB
Izolācija un drošībaSalīdzinoši izolēts un drošsĻoti izolēts un drošs
Izvietošanas un palaišanas laiksVidēji 1-3 minūtesVidēji 1-3 sekundes
Resursu izmantošanavidējaisaugsts
izmaksasAugstākaZems
OrķestrācijaLabiĻoti efektīvs
Lietojiet gadījumusIzolācija, mantotās sistēmas, GUIMikropakalpojumi, DevOps, mērogošana
  • arhitektūra: Virtuālās mašīnas ir paredzētas vairāku operētājsistēmu darbināšanai blakus. Katra OS ir pilnībā izolēta un tai ir piešķirts noteikts resursu apjoms. No otras puses, konteineri darbojas vienā operētājsistēmā, bet dažādās virtuālajās vidēs. Katrs konteiners ietver tikai tam nepieciešamās bibliotēkas un koplieto pieejamos aparatūras resursus ar citiem.
  • Attēla lielums: mazākais konteinera attēls ir 4.8 MB Docker fails, kas saspiests samazinās līdz 2 MB. Lielākā daļa konteinera failu vidēji ir daži simti megabaitu, bet lielākais - aptuveni 700 MB. Savukārt virtuālās mašīnas sākas no aptuveni 10 GB un var sasniegt 150 GB lielumu.
  • Izolācija un drošība: Virtuālās mašīnas darbojas ar savu ekskluzīvo(-ajām) CPU pavedienu(-iem) un piekļūst ierobežotai fiziskās RAM apgabalam. Tas padara tos mazāk uzņēmīgus pret uzbrukumiem gan no iekšpuses, gan ārpuses. No otras puses, konteineriem ir kopīga operētājsistēma, un tas padara tos uzņēmīgākus pret uzbrukumiem neatkarīgi no to drošības ieviešanas.
  • Izvietošanas un palaišanas laiks: Tā kā ielāde un instalēšana ir pārsvarā megabaiti datu un nav nepieciešams palaist sistēmu no diskiem, konteineri ātrumā pārspēj virtuālās mašīnas. Parasta konteinera izvietošanai nepieciešamas tikai dažas sekundes, savukārt virtuālajai mašīnai būs vajadzīgas minūtes.
  • Resursu izmantošana un izmaksas: virtuālajām mašīnām ir mazāks katra fiziskā servera blīvums, jo katrai virtuālajai mašīnai ir nepieciešami īpaši CPU, RAM un krātuves resursi. Konteineru blīvums sistēmā ir atkarīgs no to kumulatīvās resursu izmantošanas.
  • Orķestrācija: Abas sistēmas var vadīt, izmantojot pareizās lietojumprogrammas. Docker Swarm un Kubernetes ir populāri konteineriem, savukārt virtuālās mašīnas var arī vadīt, izmantojot Kubernetes risinājumus.

Kurš risinājums jums ir piemērots?

Redzot atšķirības starp konteineriem un virtuālajām mašīnām, jums vienlīdz jāatzīst, ka katrai sistēmai ir scenāriji, kad tā darbojas vislabāk. Tātad tālāk ir saraksts ar to, kad lietot konteinerus un kad izmantot virtuālās mašīnas.

Kad lietot konteinerus

  • Mikropakalpojumi: Ja izmantojat izkliedētu lietojumprogrammu arhitektūru, kuras dažādās daļas ir paredzētas, lai tās darbotos neatkarīgi kā mikropakalpojumi, konteiners, iespējams, ir labākais veids.
  • Vides kontrole: Konteineri ir arī ideāli piemēroti situācijām, kad nepieciešama absolūta vides kontrole, jo katrā konteinera attēlā ir precīza un 100% replikējama izpildes vide.
  • Ātra izvietošana: konteinerus var ielādēt tikai dažu sekunžu laikā, padarot tos par ideālu tehnoloģiju ātrai lietojumprogrammu izvietošanai pēc pieprasījuma. Tie ietver programmatūras testēšanu, orķestrēšanu un ražošanas sistēmu mērogošanu.
  • Resursu efektivitāte: konteineri var labāk palielināt mašīnas aparatūras resursus to konstrukcijas dēļ, jo katrs konteiners ir elastīgs ar savu CPU un atmiņas lietojumu.
  • Horizontālā un vertikālā mērogošana: konteineri labi darbojas gan horizontālās, gan vertikālās mērogošanas situācijās. Horizontālā mērogošana ir vienkārša vairāku konteineru palaišana, lai apstrādātu lielākas darbplūsmas, savukārt vertikālā mērogošana ir konkrētā konteinera vai konteineru grupas CPU un atmiņas piešķīruma palielināšana.

Kad izmantot virtuālās mašīnas

  • Spēcīga pielietojuma izolācija: virtuālā mašīna ir labs risinājums ikreiz, kad nepieciešams izpildīt kodu vidē, kas ir pilnībā izolēta no citiem procesiem. Piemērs varētu būt programmatūras palaišana, kas, iespējams, ir inficēta ar ļaunprātīgu programmatūru.
  • GUI: virtuālā mašīna varētu būt pareizais risinājums, ja nepieciešams palaist lietojumprogrammu, kas mijiedarbojas, izmantojot grafisko lietotāja interfeisu.
  • Vertikālā mērogošana: Varat viegli mērogot VM lietojumprogrammas vertikāli, palielinot to CPU un atmiņas sadalījumu no virtualizācijas programmatūras.
  • Aparatūras līmeņa piekļuve: Virtuālās mašīnas ir lieliski piemērotas arī lietojumprogrammām, kurām ir daudz resursu vai kurām nepieciešama tieša piekļuve centrālajam procesoram vai noteiktām aparatūras konfigurācijām.
  • Mantotās lietojumprogrammas: Dažas lietojumprogrammas ir atkarīgas no konkrētām bibliotēkām vai operētājsistēmas resursiem. Tāpēc tos vislabāk var izpildīt tieši vajadzīgajā vidē.

Virtuālās mašīnas un konteineru veidošanas rīku saraksts

Ir daudz rīku un risinājumu, lai izveidotu un pārvaldītu virtuālās mašīnas un konteinerus. Tātad, šeit ir īss populārāko saraksts.

Oracle VirtualBox 
  • Oracle VirtualBox: bezmaksas un atvērtā koda virtuālās mašīnas pārvaldnieks
  • dokers: atvērtā pirmkoda konteineru izveide un pārvaldība
  • Kubernetes: atvērtā koda konteineru orķestrēšanas sistēma
  • Konteiners: konteinera izpildlaiks pieredzējušiem lietotājiem
  • VMware Workstation: palaidiet virtuālās mašīnas operētājsistēmās Linux un Windows
  • Microsoft Hyper-V: palaidiet virtuālās mašīnas operētājsistēmā Windows
  • RedHat Openshift: uzņēmuma līmeņa virtualizācijas un mākoņu pārvaldības platforma
  • Klejotāju: Orķestrācijas vadībai
  • Apache Mesos: atvērtā koda klasteru pārvaldnieks
  • fermeris: vairāku Kubernetes klasteru pārvaldībai
  • Google mākonis: Google Kubernetes dzinējs
  • AWS: Amazon tīmekļa pakalpojumi, tostarp bez servera Fargeits konteineru pārvaldnieks

Biežāk uzdotie jautājumi

Šeit ir daži bieži uzdotie jautājumi par mākoņa virtuālajām mašīnām un konteineru lietojumprogrammām.

Kas ir drošāks, virtuālā mašīna vai konteiners?

Virtuālā mašīna ir tehniski drošāka nekā konteiners.

Kāda ir lieluma atšķirība starp virtuālajām mašīnām un konteineriem?

Virtuālo mašīnu izmērs parasti ir gigabaiti, savukārt konteineri parasti ir megabaiti.

Vai virtuālās mašīnas un konteinerus var izmantot kopā?

Jā, jūs varat palaist konteinera dzinēju virtuālajā mašīnā.

Kas ir vairāk mērogojams, virtuālā mašīna vai konteiners?

Konteinerus ir vieglāk un ātrāk mērogot nekā virtuālās mašīnas.

Vai konteinerus var migrēt starp saimniekdatoriem?

Jā, konteineru var migrēt starp saimniekiem, izmantojot pareizo orķestrēšanas platformu.

Cik virtuālo mašīnu varu darbināt vienā resursdatorā?

Tas galvenokārt ir atkarīgs no pieejamo CPU kodolu un RAM daudzuma. Un zināmā mērā tas ir atkarīgs arī no slodzes veida un hipervizora efektivitātes.

Secinājumi

Mēs esam sasnieguši šīs mākoņa virtuālo mašīnu un konteineru salīdzināšanas beigas. Un, kā redzējāt, abas tehnoloģijas ir vērtīgas lietojumprogrammu izvietošanai un pārvaldībai mākonī.

Tomēr jūsu izvēle starp abiem vienmēr būs atkarīga no jūsu vajadzībām. Jebkurā laikā varat labāk izmantot virtuālo mašīnu, konteinerizācijas pieeju vai abus.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke ir datoru entuziasts, kuram patīk lasīt dažādas grāmatas. Viņš dod priekšroku Linux, nevis Windows/Mac, un ir izmantojis
Ubuntu kopš tā sākuma. Jūs varat viņu noķert Twitter, izmantojot bongotrax

Raksti: 298

Saņemiet tehnikas preces

Tehniskās tendences, starta tendences, atsauksmes, tiešsaistes ienākumi, tīmekļa rīki un mārketings vienu vai divas reizes mēnesī