LFCA: Lærðu grunnhugtökin við notkun gáma - Hluti 22


Með tímanum, þar sem eftirspurn eftir hröðum prófunum og dreifingu forrita jókst ásamt hraðari viðskiptasveiflum, neyddust stofnanir til að gera nýsköpun til að halda í við hraðskreiða viðskiptaumhverfið.

Leitin að nútímavæða forrit og byggja ný til að búa til lipur vinnuflæði leiddi til hugmyndarinnar um að nota ílát. Gámatæknin er næstum jafngömul og sýndarvæðing. Hins vegar kveiktu gámar ekki mikla spennu fyrr en Docker sprakk inn á svæðið árið 2013 og vakti æðislegan áhuga meðal þróunaraðila og annarra upplýsingatæknifræðinga.

Eins og er, hafa allar risastóru tæknifyrirtækin eins og Google, Amazon, Microsoft og Red Hat, svo eitthvað sé nefnt, stokkið á vagninn.

Af hverju gámar?

Ein af áskorunum sem verktaki stóð frammi fyrir er munurinn á tölvuumhverfi á öllum stigum hugbúnaðarþróunar. Vandamál koma upp þegar hugbúnaðarumhverfið er öðruvísi frá einu stigi til annars.

Til dæmis getur forrit keyrt óaðfinnanlega í prófunarumhverfi með því að keyra Python 3.6. Hins vegar hagar forritið sér undarlega, skilar einhverjum villum eða hrynur með öllu þegar það er flutt í framleiðsluumhverfi sem keyrir Python 3.9.

Gámar komu til sögunnar til að takast á við þessa áskorun og tryggja að forrit keyri á áreiðanlegan hátt þegar þau eru flutt úr einu tölvuumhverfi til annars á öllum stigum hugbúnaðarþróunar – frá tölvu þróunaraðila alla leið til framleiðsluumhverfis. Og það er ekki bara hugbúnaðarumhverfið sem getur valdið slíku ósamræmi, heldur einnig munurinn á öryggisstefnu.

Hvað eru gámar?

Gámur er einangruð hugbúnaðareining sem pakkar öllum tvíundarkóða, bókasöfnum, keyrslum, ósjálfstæðum og stillingarskrám í einn pakka á þann hátt að forritið gangi snurðulaust þegar það er flutt úr einu tölvuumhverfi í annað. Það kemur ekki með stýrikerfismynd sem gerir það létt og auðvelt að flytja það.

Gámamynd er sjálfstæður, léttur og keyranlegur pakki sem inniheldur allt sem þarf til að keyra forritið. Á keyrslutíma breytist gámamynd í gám. Þegar um Docker er að ræða, til dæmis, verður Docker mynd að docker ílát þegar hún er keyrð á Docker Engine. Docker er keyrsluumhverfi notað til að byggja gámaforrit.

Gámar keyra í algjörri einangrun frá undirliggjandi stýrikerfi og gámaforrit munu alltaf keyra stöðugt óháð tölvuumhverfi eða innviðum. Það er af þessari ástæðu að verktaki getur þróað forrit úr þægindum þessarar fartölvu og auðveldlega sett það á netþjón.

Samkvæmni og áreiðanleiki keyrandi gáma veitir þróunaraðilum hugarró í að vita að forritin þeirra munu keyra eins og búist er við, sama hvar þau eru sett upp.

Hvernig eru gámar frábrugðnir sýndarvélum?

Algengt sem gámar og sýndarvélar deila er að þeir starfa í sýndarvæddu umhverfi. Gámavæðing, í vissum skilningi, er mynd af sýndartækni. Hins vegar eru gámar frábrugðnir sýndarvélum á fleiri en einn hátt.

Sýndarvél, einnig kölluð sýndartilvik eða VM í stuttu máli, er eftirlíking af líkamlegum netþjóni eða tölvu. Sýndarvæðing er tækni sem gerir það mögulegt að búa til sýndarvélar. Hugmyndin um sýndarvæðingu nær aftur til snemma á áttunda áratugnum og lagði grunninn að fyrstu kynslóð skýjatækni.

Í sýndarvæðingu er abstraktlag búið til ofan á berum málmþjóni eða tölvubúnaði. Þetta gerir það mögulegt fyrir vélbúnaðarauðlindir eins netþjóns að deila á margar sýndarvélar.

Hugbúnaðurinn sem notaður er til að búa til abstraktlag er nefndur hypervisor. Yfirvísirinn tekur sýndarvélina og gestastýrikerfið út úr raunverulegum berum málmi eða tölvubúnaði. Þannig situr sýndarvél ofan á hypervisornum sem gerir vélbúnaðarauðlindirnar aðgengilegar þökk sé abstraktlaginu.

Sýndarvélar keyra fullkomið stýrikerfi (gestastýrikerfi) sem er óháð undirliggjandi stýrikerfi (hýsingarkerfi) sem hypervisorinn er settur upp á. Gesta stýrikerfið býður síðan upp á vettvang til að smíða, prófa og dreifa forritum samhliða bókasöfnum sínum og tvöföldum.

[Þér gæti líka líkað við: Hvernig á að setja upp KVM á CentOS/RHEL 8 ]

Það eru tvær tegundir af Hypervisors:

Þessi hypervisor er settur upp beint á líkamlegum netþjóni eða undirliggjandi vélbúnaði. Það er ekkert stýrikerfi sem situr á milli hypervisor og tölvuvélbúnaðar, þess vegna merkisheitið bare-metal hypervisor. Það veitir framúrskarandi stuðning þar sem auðlindum er ekki deilt með gestgjafastýrikerfinu.

Vegna skilvirkni þeirra eru tegund 1 hypervisorar aðallega notaðir í fyrirtækjaumhverfi. Framleiðendur hypervisor af tegund 1 innihalda VMware Esxi og KVM.

Þetta er líka litið á sem hýst yfirsýn. Það er sett upp ofan á stýrikerfi gestgjafans og deilir undirliggjandi vélbúnaðarauðlindum með stýrikerfi gestgjafans.

Hypervisorar af tegund 2 eru tilvalin fyrir lítið tölvuumhverfi og eru aðallega notaðir til að prófa stýrikerfi og rannsóknir. Framleiðendur hypervisor af tegund 2 innihalda VMware Workstation Pro.

Sýndarvélar hafa tilhneigingu til að vera gríðarstórar að stærð (Geta tekið upp nokkra GB), hægt að byrja og stoppa og gleypa mikið af kerfisauðlindum sem leiðir til stöðvunar og hægs afkösts vegna takmarkaðs fjármagns. Sem slík er sýndarvél talin fyrirferðarmikil og er tengd miklum kostnaði.

Gámar

Ólíkt sýndarvél, þarf gámur ekki yfirsýnara. Gámur situr ofan á líkamlegum netþjóni og stýrikerfi hans og deilir sama kjarna og stýrikerfið meðal annars eins og bókasöfn og tvöfaldur. Margir gámar geta keyrt á sama kerfinu, hver keyrir sitt eigið sett af forritum og ferlum frá hinum. Vinsælir gámapallar eru Docker og Podman.

Ólíkt sýndarvélum keyra gámar í algjörri einangrun frá undirliggjandi stýrikerfi. Gámar eru einstaklega léttir - aðeins nokkur megabæt - taka minna pláss og eru auðlindavænir. Auðvelt er að ræsa og stöðva þær og geta séð um fleiri forrit en sýndarvél.

Gámar bjóða upp á þægilega leið til að hanna, prófa og dreifa forritum frá tölvunni þinni beint í framleiðsluumhverfi, hvort sem það er á forsendunni eða í skýinu. Hér eru nokkrir kostir þess að nota gámaforrit.

Fyrir gáma höfðum við gamaldags einlita líkanið þar sem heilt forrit sem samanstendur af bæði framenda- og bakendahlutum var sett saman í einn pakka. Gámar gera það mögulegt að skipta forriti í marga einstaka íhluti sem geta átt samskipti sín á milli.

Þannig geta þróunarteymi unnið saman að ýmsum hlutum forrits að því tilskildu að engar stórar breytingar séu gerðar með tilliti til þess hvernig forritin hafa samskipti sín á milli.

Þetta er það sem hugmyndin um örþjónustu byggir á.

Meiri mát þýðir meiri framleiðni þar sem forritarar geta unnið að einstökum hlutum forritsins og villur villur mun hraðar en áður.

Í samanburði við sýndarvélar og önnur hefðbundin tölvuumhverfi nota gámar færri kerfisauðlindir þar sem þeir innihalda ekki stýrikerfi. Þetta kemur í veg fyrir óþarfa útgjöld til að útvega dýra netþjóna til að smíða og prófa forrit.

Vegna lítils fótspors þeirra er auðvelt að dreifa gámaforritum í mörg tölvuumhverfi/stýrikerfi.

Gámar leyfa hraðri dreifingu og stærðarstærð forrita. Þeir veita einnig mjög nauðsynlegan sveigjanleika til að dreifa forritum í mörgum hugbúnaðarumhverfi.

Hvernig gagnast gámar DevOps teymum?

Gámar gegna lykilhlutverki í DevOps og það væri ómögulegt að ímynda sér hvernig ástandið væri án gámaforrita. Svo, hvað koma gámar á borðið?

Í fyrsta lagi styðja gámar smáþjónustuarkitektúrinn, sem gerir kleift að þróa, dreifa og stækka byggingareiningar heils forrits sjálfstætt. Eins og getið er, skapar þetta meiri samvinnu og hraðari dreifingu forrita.

Gámavæðing gegnir einnig stóru hlutverki í að auðvelda CI/CD leiðslur með því að bjóða upp á stýrt og stöðugt umhverfi fyrir byggingarforrit. Öll söfn og ósjálfstæði eru pakkað ásamt kóðanum í eina einingu fyrir hraðari og auðveldari uppsetningu. Forritið sem prófað er mun vera nákvæmlega hugbúnaðurinn sem verður notaður í framleiðslu.

Að auki auka gámar útsetningu plástra og uppfærslur þegar forriti er skipt í margar örþjónustur., hverja í sérstökum íláti. Hægt er að skoða einstaka ílát, plástra og endurræsa án þess að trufla restina af forritinu.

Sérhver stofnun sem leitast við að ná þroska í DevOps ætti að íhuga að nýta kraft gáma fyrir lipur og óaðfinnanlegur uppsetning. Áskorunin felst í því að vita hvernig á að stilla, tryggja og dreifa þeim óaðfinnanlega í mörg umhverfi.