LFCA: Konteýnerleri ulanmagyň esasy düşünjelerini öwreniň - 22-nji bölüm


Wagtyň geçmegi bilen, çalt synag we amaly programmalary ýerleşdirmek islegi has çalt iş siklleri bilen birleşip, çalt depginde iş gurşawyny dowam etdirmek üçin guramalar täzelenmäge mejbur boldular.

Programmalary döwrebaplaşdyrmak we çeýe iş akymlaryny döretmek üçin täzelerini gurmak, konteýnerleri ulanmak düşünjesine sebäp boldy. Konteýnerizasiýa tehnologiýasy wirtuallaşdyrma ýaly köne. Şeýle-de bolsa, konteýnerler Docker 2013-nji ýylda sahna çykyp, işläp düzüjileriň we beýleki IT hünärmenleriniň arasynda uly gyzyklanma döredýänçä, uly tolgunma döretmedi.

Häzirki wagtda Google, Amazon, Microsoft we Red Hat ýaly ägirt uly tehnologiýa guramalarynyň birnäçesini bellemek üçin zolakdan bökdi.

Näme üçin konteýnerler?

Döredijileriň ýüzbe-ýüz bolýan kynçylyklaryndan biri, programma üpjünçiligini ösdürmegiň her bir basgançagynda hasaplaýyş gurşawynyň tapawudy. Programma üpjünçiligi gurşawy bir basgançakdan tapawutly bolanda ýüze çykýar.

Mysal üçin, bir programma Python 3.6 ulanyp, synag gurşawynda bökdençsiz işläp biler. Şeýle-de bolsa, programma geň hereket edýär, Python 3.9 işleýän önümçilik gurşawyna ugradylanda käbir ýalňyşlyklary ýa-da düýbünden ýykylýar.

Konteýnerler bu kynçylygy çözmek we programma üpjünçiligini ösdürmegiň her bir basgançagynda - hasaplaýyş gurşawyndan beýlekisine - işläp düzüjileriň kompýuterinden önümçilik gurşawyna çenli programmalaryň ygtybarly işlemegini üpjün etmek üçin sahna geldiler. Munuň ýaly gapma-garşylyklary diňe bir programma üpjünçiligi gurşawy däl, eýsem howpsuzlyk syýasatlarynyň tapawudyny hem döredip biler.

Konteýnerler näme?

Konteýner, ikilik koduny, kitaphanalary, ýerine ýetirip bolýan zatlary, garaşlylyklary we konfigurasiýa faýllaryny bir hasaplaýyş gurşawyndan beýlekisine göçürilende programma birkemsiz işlejek aýratyn programma üpjünçiligi bölümidir. Ony ýeňil we göterip bolýan operasiýa ulgamynyň şekili bilen däl.

Konteýner şekili, programmany ýerine ýetirmek üçin zerur zatlary birleşdirýän özbaşdak, ýeňil we ýerine ýetirip bolýan paketdir. Iş wagty konteýner şekili konteýner görnüşine öwrülýär. Mysal üçin, Docker meselesinde Docker motorynda ýerine ýetirilende Docker şekili doker konteýnerine öwrülýär. Docker, konteýnerleşdirilen programmalary gurmak üçin ulanylýan iş wagty.

Konteýnerler esasy operasiýa ulgamyndan doly izolýasiýa bilen işleýär we konteýnerleşdirilen programmalar hasaplaýyş gurşawyna ýa-da infrastrukturasyna garamazdan hemişe yzygiderli işleýär. Şol sebäpli bir dörediji bu noutbukyň amatlylygyndan bir programma döredip we ony aňsatlyk bilen serwerde ýerleşdirip biler.

Işleýän konteýnerleriň yzygiderliligi we ygtybarlylygy işläp düzüjilere nirede ýerleşýändigine garamazdan amaly programmalarynyň garaşylşy ýaly işlejekdigini bilmekde rahatlyk berýär.

Konteýnerler wirtual maşynlardan nähili tapawutlanýar?

Konteýnerleriň we wirtual maşynlaryň paýlaşýan umumy zady, wirtual gurşawda işlemegi. Konteýnerizasiýa, belli bir derejede wirtuallaşdyrylan tehnologiýanyň bir görnüşidir. Şeýle-de bolsa, gaplar wirtual maşynlardan birden köp tapawutlanýar.

Wirtual maşyn ýa-da gysgaça VM diýlip hem atlandyrylýan wirtual maşyn, fiziki serweriň ýa-da kompýuteriň emulýasiýasydyr. Wirtuallaşdyrma, wirtual maşynlary döretmäge mümkinçilik berýän tehnologiýa. Wirtuallaşdyrma düşünjesi 1970-nji ýyllaryň başlaryndan başlap, bulut tehnologiýasynyň ilkinji nesli üçin esas döretdi.

Wirtuallaşdyrmada ýalaňaç metal serweriň ýa-da kompýuter enjamlarynyň üstünde abstraksiýa gatlagy döredilýär. Bu, bir serweriň apparat çeşmelerini birnäçe wirtual maşynlarda paýlaşmaga mümkinçilik berýär.

Abstraksiýa gatlagyny ýasamak üçin ulanylýan programma üpjünçiligine giperwizor diýilýär. Giperwizor wirtual maşyny we myhman OS-ny hakyky ýalaňaç metaldan ýa-da kompýuter enjamlaryndan abstrakt edýär. Şeýlelik bilen, abstraksiýa gatlagynyň kömegi bilen apparat çeşmelerini elýeterli edýän giperwizoryň üstünde wirtual maşyn oturýar.

Wirtual maşynlar, giperwizoryň gurlan esasy operasiýa ulgamyndan (host OS) garaşsyz doly operasiýa ulgamyny (myhman OS) işleýär. Myhman OS soňra kitaphanalary we ikilikleri bilen birlikde programmalary gurmak, synagdan geçirmek we ýerleşdirmek üçin platforma üpjün edýär.

[Şeýle hem halamagyňyz mümkin: CentOS/RHEL 8-de KVM-ni nädip gurmaly]

Giperwizorlaryň iki görnüşi bar:

Bu giperwizor gönüden-göni fiziki serwerde ýa-da esasy enjamda gurnalýar. Giperwizor bilen kompýuter enjamlarynyň arasynda oturan operasiýa ulgamy ýok, şonuň üçin belligiň ady ýalaňaç metal giperwizor. Resurslar baş operasiýa ulgamy bilen paýlaşylmaýandygy sebäpli ajaýyp goldaw berýär.

Netijeliligi sebäpli, 1-nji görnüşli görnüş esasan kärhananyň şertlerinde ulanylýar. 1-nji görnüş

Şeýle hem, kabul edilen giperwizor hökmünde kabul edilýär. Baş operasiýa ulgamynyň üstünde gurnalan we esasy enjam çeşmelerini host OS bilen paýlaşýar.

2-nji görnüşli giperwizorlar kiçi hasaplaýyş gurşawy üçin amatly we esasan operasiýa ulgamlaryny we gözlegleri üçin ulanylýar. 2-nji görnüşli giperwizor satyjylaryna VMware Workstation Pro girýär.

Wirtual maşynlar ululygyna ullakan bolýarlar (Birnäçe GB alyp biler), başlamaga we saklamaga haýal, köp sanly çeşme çeşmeleri sebäpli asylmaga we haýal işlemäge sebäp bolýar. Şonuň üçin wirtual maşyn uly hasaplanýar we ýokary çykdajylar bilen baglanyşykly.

Konteýnerler

Wirtual maşyndan tapawutlylykda, bir konteýner giperwizor talap etmeýär. Konteýner fiziki serweriň we operasiýa ulgamynyň üstünde oturýar we kitaphanalar we ikilikler ýaly beýleki zatlaryň arasynda OS ýaly ýadrosy paýlaşýar. Birnäçe konteýner bir ulgamda işläp biler, hersiniň öz goşundylary we amallary toplumy işleýär. Meşhur konteýner platformalarynda Docker we Podman bar.

Wirtual maşynlardan tapawutlylykda konteýnerler esasy operasiýa ulgamyndan doly izolýasiýa bilen işleýär. Konteýnerler gaty ýeňil - bary-ýogy birnäçe Megabaýt - az ýer tutýarlar we serişde üçin amatly. Başlamak we duruzmak aňsat we wirtual maşyndan has köp programmany dolandyryp bilýär.

Konteýnerler, kompýuteriňizden önümçilik gurşawyna programma ýa-da bulut bolsun, programmalary dizaýn etmegiň, synagdan geçirmegiň we ýerleşdirmegiň amatly usulyny üpjün edýär. Konteýnerleşdirilen programmalary ulanmagyň käbir peýdalary.

Konteýnerlerden ozal bizde köne monolit modeli bardy, onda öň we arka böleklerinden ybarat bir programma bir bukja birikdiriler. Konteýnerler, programmany biri-biri bilen aragatnaşyk gurup bilýän birnäçe aýratyn böleklere bölmek mümkinçiligini berýär.

Şeýlelik bilen, ösüş toparlary programmanyň biri-biri bilen gatnaşygy barada düýpli üýtgeşmeler girizilmedik ýagdaýynda programmanyň dürli böleklerinde hyzmatdaşlyk edip bilerler.

Mikroperatorlaryň düşünjesidir.

Has köp modullyk has köp öndürijiligi aňladýar, sebäbi döredijiler programmanyň aýry-aýry bölekleriniň üstünde işlemäge we ýalňyşlyklary düzetmäge öňkülerinden has çalt ukyply.

Wirtual maşynlar we beýleki adaty hasaplaýyş gurşawlary bilen deňeşdirilende, konteýnerler operasiýa ulgamyny öz içine almaýandygy sebäpli has az ulgam çeşmelerini ulanýarlar. Programmalary gurmak we synagdan geçirmek üçin gymmat serwerleri satyn almak üçin zerur çykdajylaryň öňüni alýar.

Kiçijik aýak yzlary sebäpli konteýnerleşdirilen programmalar köp sanly hasaplaýyş gurşawyna/operasiýa ulgamyna aňsatlyk bilen ýerleşdirilýär.

Konteýnerler programmalary çalt ýerleşdirmäge we ulaltmaga mümkinçilik berýär. Şeýle hem, programma üpjünçiligini köp gurşawda ýerleşdirmek üçin gaty zerur çeýeligi üpjün edýärler.

Konteýnerler DevOps toparlaryna nähili peýdaly?

Konteýnerler DevOps-da möhüm rol oýnaýar we konteýner goýmalar bolmazdan ýagdaýyň nähili boljakdygyny göz öňüne getirmek mümkin däl. Konteýnerler stoluň başyna näme getirýär?

Ilki bilen, gaplar mikroservis arhitekturasynyň esasyny düzýär, bu bolsa ähli programmanyň gurluş bloklaryny özbaşdak ösdürmäge, ýerleşdirmäge we ulaltmaga mümkinçilik berýär. Mentionedokarda aýdylyşy ýaly, bu has köp hyzmatdaşlygy we amaly programmalary çalt ýerleşdirmegi üpjün edýär.

Coder-CON-leri gurmak üçin derňew işlerini üpjün etmek we çözmek üçin gözegçilik we yzygiderli bir gurşaw edip, möhüm rol oýnaýar. Ähli kitaphanalar we baglylykda kod has çalt we has aňsat ýerleşdirmek üçin bir bir birlikde bir birlikde bir birlik bilen bilelikde gapma-garşy dur. Programma synagdan geçennama önümçiliginde ýerleşdiriljek takyk programma programma bolar.

Mundan başga-da, konteýnerler, bir programma birnäçe mikroservislere bölünende, ýamalaryň we täzelenmeleriň köpelmegini güýçlendirýär. Aýry-aýry gaplar, programmanyň galan bölegine päsgel bermezden gözden geçirilip, ýasalyp we täzeden işledilip bilner.

“DevOps” -da kämillik ýaşyna ýetmek isleýän islendik gurama, konteýnerleriň güýjüni çalt we bökdençsiz ýerleşdirmek üçin ulanmagy göz öňünde tutmalydyr. Kynçylyk, nädip köp gurşawda sazlamalydygyny, howpsuzlygyny we bökdençsiz ýerleşdirilmegini bilmekden ybarat.