Programmēšana

Kāpēc jums vajadzētu izmantot Docker un konteinerus

1981. gadā izdota grāmata ar nosaukumuŽelejas piestiprināšana kokam, programmatūru raksturo kā “neskaidru un grūti stingri saķeramu”. Tas bija taisnība 1981. gadā, un tas ir ne mazāk taisnība gandrīz četras desmitgades kopš tā laika. Neatkarīgi no tā, vai programmatūra ir jūsu iegādāta vai pati izveidota lietojumprogramma, joprojām ir grūti izvietot, grūti pārvaldīt un palaist.

Docker konteineri nodrošina veidu, kā iegūt izpratni par programmatūru. Varat izmantot Docker, lai programmu apkopotu tā, lai tiktu apstrādāti tās izvietošanas un izpildlaika jautājumi - kā to pakļaut tīklā, kā pārvaldīt krātuves un atmiņas un I / O izmantošanu, kā kontrolēt piekļuves atļaujas. ārpus pašas lietojumprogrammas un tādā veidā, kas ir konsekvents visās “konteineros” ievietotajās lietotnēs. Docker konteineru varat palaist jebkurā ar OS saderīgā resursdatorā (Linux vai Windows), kurā ir instalēts Docker izpildlaiks.

Docker piedāvā daudzas citas priekšrocības, izņemot šo ērto iekapsulēšanu, izolāciju, pārnesamību un kontroli. Dokeru konteineri ir mazi (megabaiti). Tās sākas uzreiz. Viņiem ir savi iebūvētie mehānismi versiju un komponentu atkārtotai izmantošanai. Tos var viegli kopīgot, izmantojot publisko Docker Hub vai privāto repozitoriju.

Šajā rakstā es izpētīšu, kā Docker konteineri atvieglo programmatūras veidošanu un izvietošanu - problēmas, kas saistītas ar konteineriem, kā tās risina, kad tās ir pareizā atbilde uz problēmu un kad tā nav.

Pirms Docker konteineriem

Jau daudzus gadus uzņēmuma programmatūra parasti tiek izvietota vai nu uz “tukša metāla” (ti, instalēta operētājsistēmā, kas pilnībā kontrolē pamatā esošo aparatūru), vai virtuālajā mašīnā (ti, instalēta operētājsistēmā, kurai ir kopīga pamatā esošā aparatūra) ar citām “viesu” operētājsistēmām). Protams, instalēšana uz tukša metāla padarīja programmatūru sāpīgi apgrūtinošu un grūti atjaunināmu - divi ierobežojumi IT apgrūtināja veiklu reaģēšanu uz izmaiņām uzņēmējdarbības vajadzībām.

Tad nāca virtualizācija. Virtualizācijas platformas (sauktas arī par “hipervizoriem”) ļāva vairākām virtuālajām mašīnām koplietot vienu fizisku sistēmu, katra virtuālā mašīna izolēti atdarina visas sistēmas uzvedību, komplektā ar savu operētājsistēmu, krātuvi un I / O. . IT tagad varētu efektīvāk reaģēt uz izmaiņām uzņēmējdarbības prasībās, jo VM varētu klonēt, kopēt, migrēt un vērpt augšup vai lejup, lai apmierinātu pieprasījumu vai saglabātu resursus.

Virtuālās mašīnas arī palīdzēja samazināt izmaksas, jo vairāk VM varēja apvienot mazāk fizisko mašīnu. Mantotās sistēmas, kurās darbojas vecākas lietojumprogrammas, varētu pārveidot par VM un fiziski pārtraukt, lai ietaupītu vēl vairāk naudas.

Bet virtuālajām mašīnām joprojām ir sava daļa problēmu. Virtuālās mašīnas ir lielas (gigabaiti), katrā no tām ir pilna operētājsistēma. Tikai tik daudz virtualizēto lietotņu var apvienot vienā sistēmā. VM nodrošināšana joprojām prasa diezgan daudz laika. Visbeidzot, VM pārnesamība ir ierobežota. Pēc noteikta laika VM nespēj nodrošināt tādu ātrumu, veiklību un ietaupījumus, kādus prasa strauji augoši uzņēmumi.

Docker konteinera priekšrocības

Konteineri darbojas nedaudz kā VM, taču daudz specifiskāk un sīkāk. Viņi izolē vienu lietojumprogrammu un tās atkarības - visas ārējās programmatūras bibliotēkas, kurām lietotnei ir nepieciešams darboties - gan no operētājsistēmas, gan no citiem konteineriem. Visām konteinerizētajām lietotnēm ir viena kopēja operētājsistēma (vai nu Linux, vai Windows), taču tās ir sadalītas viena no otras un no visas sistēmas.

Docker konteineru priekšrocības parādās daudzās vietās. Šeit ir dažas no galvenajām Docker un konteineru priekšrocībām:

Docker ļauj efektīvāk izmantot sistēmas resursus

Konteinerizētu lietotņu gadījumi patērē daudz mazāk atmiņas nekā virtuālās mašīnas, tās tiek palaistas un apstājas ātrāk, un tās var daudz blīvāk iesaiņot savā resursdatora aparatūrā. Tas viss nozīmē mazākus izdevumus IT.

Izmaksu ietaupījumi mainīsies atkarībā no tā, kuras lietotnes tiek atskaņotas un cik tās var aizņemt daudz resursu, taču konteineri vienmēr darbojas kā efektīvāki nekā VM. Ir iespējams ietaupīt arī uz programmatūras licenču izmaksām, jo ​​jums ir nepieciešams daudz mazāk operētājsistēmas gadījumu, lai izpildītu vienas un tās pašas slodzes.

Docker nodrošina ātrāku programmatūras piegādes ciklu

Uzņēmuma programmatūrai ātri jāreaģē uz mainīgajiem apstākļiem. Tas nozīmē gan ērtu mērogošanu, lai apmierinātu pieprasījumu, gan vieglu atjaunināšanu, lai pievienotu jaunas funkcijas, kā to prasa bizness.

Docker konteineri ļauj ērti ātri ieviest jaunas programmatūras versijas ar jaunām biznesa funkcijām un, ja nepieciešams, ātri pāriet uz iepriekšējo versiju. Tie arī atvieglo tādu stratēģiju ieviešanu kā zilā / zaļā izvietošana.

Docker ļauj pārnest lietojumprogrammas

Kur palaist uzņēmuma lietojumprogrammu, ir svarīgi - aiz ugunsmūra, lai lietas glabātu tuvu un droši; vai publiskā mākonī, lai nodrošinātu vieglu piekļuvi sabiedrībai un augstu resursu elastību. Tā kā Docker konteineri satur visu lietojumprogrammas palaišanai nepieciešamo (un tikai šīs lietas), tie ļauj viegli pārsūtīt lietojumprogrammas starp vidēm. Jebkurš resursdators ar instalētu Docker izpildlaiku - neatkarīgi no tā, vai tas ir izstrādātāja klēpjdators vai publiska mākoņa instance - var palaist Docker konteineru.

Docker spīd mikropakalpojumu arhitektūrai

Vieglie, pārnēsājamie un patstāvīgie Docker konteineri atvieglo programmatūras izveidi, domājot par nākotni, lai jūs nemēģinātu rītdienas problēmas atrisināt ar vakardienas izstrādes metodēm.

Viens no programmatūras modeļu konteineriem atvieglo mikropakalpojumus, kur lietojumprogrammas tiek veidotas no daudziem brīvi savienotiem komponentiem. Sadalot tradicionālās, “monolītās” lietojumprogrammas atsevišķos pakalpojumos, mikropakalpojumi ļauj dažādot uzņēmējdarbības jomas lietotnes daļas mērogot, modificēt un apkalpot atsevišķi - atsevišķām komandām un atsevišķos laika grafikos, ja tas atbilst uzņēmuma vajadzībām. Bizness.

Konteineriem nav nepieciešami mikropakalpojumi, taču tie ir lieliski piemēroti mikroservisu pieejai un veikliem attīstības procesiem kopumā.

Docker konteineru problēmas neatrisina

Pirmais, kas jāpatur prātā par konteineriem, ir tas pats padoms, kas attiecas uz jebkuru programmatūras tehnoloģiju: šī nav sudraba lode. Dokeru konteineri paši nevar atrisināt katru problēmu. It īpaši:

Docker nenovērsīs jūsu drošības problēmas

Programmatūra konteinerā pēc noklusējuma var būt drošāka nekā programmatūra, kas darbojas ar kailu metālu, taču tas ir tāpat, kā teikt, ka māja ar aizslēgtām durvīm ir drošāka nekā māja ar atbloķētām durvīm. Tas neko nepasaka par apkārtnes stāvokli, zaglim vilinošu vērtīgu priekšmetu redzamo klātbūtni, tur dzīvojošo cilvēku rutīnu utt. Konteineri var pievienot lietotnei drošības slāni, bet tikai kā daļu no vispārīgas lietotnes nodrošināšanas kontekstā.

Docker programmas maģiski nepārvērš mikropakalpojumos

Ja konteineros ievietojat esošu lietotni, tas var samazināt tās resursu patēriņu un atvieglot tās izvietošanu. Bet tas automātiski nemaina dizains vai kā tā mijiedarbojas ar citām lietotnēm. Šīs priekšrocības sniedz tikai izstrādātāja laiks un pūles, nevis tikai mandāts visu pārvietot konteineros.

Ievietojiet vecās skolas monolītu vai SOA stila lietotni konteinerā, un konteinerā jūs atradīsit veco lietotni. Tas nepadara to vēl noderīgāku jūsu darbam; ja kas, tas var padarīt to mazāk noderīgu.

Docker neaizstāj virtuālās mašīnas

Viens pastāvīgs mīts par konteineriem ir tāds, ka tie padara VM novecojušus. Daudzas lietotnes, kas agrāk darbojās VM var pārvietot konteinerā, bet tas nenozīmē visi no tiem var vai vajadzētu. Piemēram, ja jūs strādājat nozarē, kurā ir stingras normatīvās prasības, iespējams, nevarēsit konteinerus nomainīt pret VM, jo VM nodrošina lielāku izolāciju nekā konteineri.

Docker konteineru korpuss

Uzņēmumu attīstības darbs ir slavens ar slēpto un lēnu reakciju uz izmaiņām. Uzņēmumu izstrādātāji visu laiku berzē pret šādiem ierobežojumiem - ierobežojumiem, kurus viņiem uzliek IT, un prasībām, ko viņiem izvirzījis bizness kopumā. Docker un konteineri dod izstrādātājiem lielāku brīvību, kādu viņi alkst, vienlaikus nodrošinot veidus, kā izveidot biznesa lietotnes, kas ātri reaģē uz mainīgajiem uzņēmējdarbības apstākļiem.

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