Programiranje

Zakaj bi morali uporabljati Docker in posode

Knjiga, izdana leta 1981, z naslovomPribijanje želeja na drevo, opisuje programsko opremo kot "meglico in težko jo je trdno prijeti." To je veljalo leta 1981 in od tega ne velja skoraj štiri desetletja. Programsko opremo, ne glede na to, ali gre za aplikacijo, ki ste jo kupili, ali za aplikacijo, ki ste jo izdelali sami, je težko namestiti, jo je težko upravljati in jo je težko zagnati.

Kontejnerji Docker omogočajo dober obisk programske opreme. Z Dockerjem lahko aplikacijo zavijete tako, da so težave z njeno uvajanjem in izvajanjem - kako jo izpostaviti v omrežju, kako upravljati njeno uporabo pomnilnika in vhoda / izhoda, kako nadzirati dovoljenja za dostop - obravnavati zunaj same aplikacije in na način, ki je skladen v vseh "vsebniških" aplikacijah. Vaš vsebnik Docker lahko zaženete na katerem koli gostitelju, združljivem z OS (Linux ali Windows), v katerem je nameščen čas izvajanja Docker.

Docker poleg te priročne kapsulacije, izolacije, prenosljivosti in nadzora ponuja še številne druge prednosti. Dockerji so majhni (megabajti). Takoj se začnejo. Imajo lastne vgrajene mehanizme za različico in ponovno uporabo komponent. Lahko jih preprosto delite prek javnega Docker Hub-a ali zasebnega skladišča.

V tem članku bom raziskal, kako Docker-jevi vsebniki olajšajo izdelavo in uvajanje programske opreme - vsebniki s težavami naslavljajo, kako jih naslavljajo, kdaj so pravi odgovor na težavo in kdaj ne.

Pred zabojniki Docker

Že več let je poslovna programska oprema običajno nameščena bodisi na „goli kovini“ (tj. Nameščena v operacijskem sistemu, ki ima popoln nadzor nad osnovno strojno opremo) bodisi v navideznem računalniku (tj. Nameščena v operacijskem sistemu, ki si deli osnovno strojno opremo z drugimi gostujočimi operacijskimi sistemi). Seveda je namestitev na golo kovino programsko opremo boleče premikala in jo je bilo težko posodobiti - dve omejitvi, zaradi katerih se je IT težko spretno odzval na spremembe poslovnih potreb.

Potem je prišla še virtualizacija. Platforme za virtualizacijo (znane tudi kot "hipervizorji") so omogočale več navideznim strojem, da si delijo en sam fizični sistem, pri čemer vsak navidezni stroj posamično posnema vedenje celotnega sistema, skupaj s svojim operacijskim sistemom, pomnilnikom in vhodno / izhodnimi operacijami. . Zdaj bi se lahko IT učinkoviteje odzval na spremembe poslovnih zahtev, ker bi lahko VM klonirali, kopirali, selili in zavrteli navzgor ali navzdol, da bi zadostili povpraševanju ali prihranili vire.

Navidezni stroji so prav tako pomagali znižati stroške, ker je bilo več VM-jev mogoče združiti na manj fizičnih strojev. Podedovane sisteme, v katerih se izvajajo starejše aplikacije, bi lahko spremenili v VM-je in jih fizično ukinili, da bi prihranili še več denarja.

Toda navidezni stroji imajo še vedno del težav. Navidezni stroji so veliki (gigabajti), od katerih vsak vsebuje celoten operacijski sistem. Samo toliko virtualiziranih aplikacij je mogoče združiti v en sam sistem. Zagotavljanje VM še vedno traja precej časa. Nazadnje je prenosljivost VM omejena. Po določeni točki VM ne morejo zagotoviti takšne hitrosti, gibčnosti in prihrankov, kot jih zahtevajo hitro razvijajoča se podjetja.

Prednosti zabojnika Docker

Zabojniki delujejo podobno kot VM-ji, vendar na bolj natančen in natančen način. Izolirajo eno aplikacijo in njene odvisnosti - vse zunanje knjižnice programske opreme, ki jih aplikacija potrebuje za zagon - tako iz osnovnega operacijskega sistema kot iz drugih vsebnikov. Vse kontejnerske aplikacije imajo en sam skupni operacijski sistem (bodisi Linux ali Windows), vendar so ločene med seboj in od celotnega sistema.

Prednosti zabojnikov Docker se pokažejo marsikje. Tu je nekaj glavnih prednosti Dockerja in posod:

Docker omogoča učinkovitejšo uporabo sistemskih virov

Primerki kontejnerskih aplikacij porabijo veliko manj pomnilnika kot navidezni stroji, hitreje se zaženejo in ustavijo, na gostiteljski strojni opremi pa jih je mogoče veliko bolj pakirati. Vse to pomeni manjšo porabo za IT.

Prihranki pri stroških se bodo razlikovali glede na to, katere aplikacije so v igri in kako dolgotrajne so, vendar posode vedno delujejo kot učinkovitejše od VM-jev. Prihranite lahko tudi pri stroških licenc za programsko opremo, ker potrebujete veliko manj primerkov operacijskega sistema za izvajanje enakih delovnih obremenitev.

Docker omogoča hitrejše cikle dostave programske opreme

Podjetniška programska oprema se mora hitro odzivati ​​na spreminjajoče se razmere. To pomeni tako enostavno prilagajanje potrebam kot tudi enostavno posodabljanje in dodajanje novih funkcij, kot to zahteva podjetje.

Docker-jevi vsebniki olajšajo hitro uporabo novih različic programske opreme z novimi poslovnimi funkcijami - in po potrebi hitro vrnitev na prejšnjo različico. Olajšajo tudi izvajanje strategij, kot so modro / zelene razmestitve.

Docker omogoča prenosljivost aplikacij

Kje zaženete aplikacijo za podjetja, je pomembno - za požarnim zidom, da so stvari blizu in varne; ali v javnem oblaku, za lažji javni dostop in visoko elastičnost virov. Ker vsebniki Docker vsebujejo vse, kar mora aplikacija zagnati (in samo te stvari), omogočajo enostavno premeščanje aplikacij med okolji. Vsak gostitelj z nameščenim izvajalnim okoljem Dockerja - najsi bo to prenosni računalnik ali primerek javnega oblaka - lahko zažene vsebnik Dockerja.

Docker je zasnovan za arhitekturo mikro storitev

Lahki, prenosni in samostojni zabojniki Docker olajšajo izdelavo programske opreme v skladu s premišljenimi smernicami, tako da jutrišnjih težav ne poskušate rešiti z včerajšnjimi razvojnimi metodami.

Eden od programskih vsebnikov, ki olajšajo vzorce, so mikro storitve, kjer so aplikacije sestavljene iz številnih ohlapno povezanih komponent. Z razgradnjo tradicionalnih, "monolitnih" aplikacij v ločene storitve omogočajo mikroservice različne dele poslovne aplikacije, da jih ločeno prilagajajo, spreminjajo in servisirajo - ločene skupine in na ločenih rokih, če to ustreza potrebam posel.

Zabojniki niso potrebni za izvajanje mikro storitev, so pa popolnoma primerni za pristop mikro storitev in za gibčne razvojne procese na splošno.

Težave Docker zabojniki ne rešijo

Pri zabojnikih morate najprej upoštevati enak nasvet, ki velja za katero koli programsko tehnologijo: to ni srebrna krogla. Docker posode sami ne more rešiti vseh težav. Še posebej:

Docker ne bo odpravil vaših varnostnih težav

Programska oprema v posodi je lahko privzeto varnejša od programske opreme, ki deluje na goli kovini, vendar je to tako, kot če bi rekli, da je hiša z zaklenjenimi vrati varnejša od hiše z odklenjenimi vrati. Ne piše nič o stanju v soseski, vidni prisotnosti dragocenosti, ki vabijo tatu, rutino ljudi, ki tam živijo, itd. Vsebniki lahko aplikaciji dodajo zaščitno plast, vendar le kot del splošnega programa za zaščito aplikacije v kontekstu.

Docker čarobno ne spremeni programov v mikro storitve

Če vsebujete obstoječo aplikacijo, lahko to zmanjša njeno porabo virov in olajša uvajanje. Vendar se samodejno ne spremeni oblikovanje aplikacije ali kako deluje z drugimi aplikacijami. Te prednosti prinašajo le čas in trud razvijalca, ne le mandat, da vse premaknete v posode.

V posodo vstavite starošolsko monolitno aplikacijo ali aplikacijo v stilu SOA in na koncu dobite staro aplikacijo v posodi. Zaradi tega ni nič bolj koristno za vaše delo; če sploh, bo morda manj uporaben.

Docker ni nadomestilo za navidezne stroje

Eden od vztrajnih mitov o zabojnikih je, da VM zastarajo. Številne aplikacije, ki so se nekoč izvajale v VM lahko v posodo, vendar to ne pomeni vse od njih lahko ali bi moral. Če ste na primer v industriji s težkimi zakonskimi zahtevami, morda ne boste mogli zamenjati vsebnikov za VM, ker VM zagotavlja več izolacije kot zabojniki.

Primer za zabojnike Docker

Dela za razvoj podjetij so znana po tem, da so skrita in se počasi odzivajo na spremembe. Podjetniški razvijalci se ves čas borijo pred takimi omejitvami - omejitvami, ki jim jih nalaga IT, in zahtevami, ki jih zahteva širše podjetje. Docker in zabojniki dajejo razvijalcem več svobode, po kateri hrepenijo, hkrati pa ponujajo načine za izdelavo poslovnih aplikacij, ki se hitro odzivajo na spreminjajoče se poslovne pogoje.

$config[zx-auto] not found$config[zx-overlay] not found