LFCA: DevOps-yň esasy düşünjelerini öwreniň - 21-nji bölüm


“DevOps” ep-esli wagt bäri ýörgünli tema bolup, tehnologiýa hünärmenleriniň we kärhanalaryň ünsüni özüne çekmegi başardy. Bir öwrenje hökmünde, DevOps düşünjesine kelläňizi ýapmak kyn bolup biler we bu mowzukda bu internet sözüniň esasy düşünjelerini öwreneris.

Başlamak üçin, DevOps iki sözden ybarat portmanteau: Ösüş we amallar. Ösüş toparlary (Devs) we amallar (Ops) arasynda hyzmatdaşlygy ösdürýän tejribe we gurallar toplumy. “DevOps” -yň maksady programma üpjünçiligini işläp düzmegiň ömrüni tertipleşdirmek, şowsuzlyk derejesini azaltmak, ýerleşdirmegiň ýygylygyny giňeltmek we ýokary hilli programma üpjünçiligini gazanmak.

Häzirki zaman IT gurşawynda DevOps-a has gowy düşünmek üçin, enjamlaşdyryş modeliniň DevOps gelmezinden ozal nähili bolandygyna göz aýlalyň.

Adaty IT amallary

DevOps-dan öň ösüş toparlary we QA inersenerleri şarlawuk nusgawy modelini ulandylar. Iş peýza .y köplenç dymdy we programmalary synagdan geçirmek we ýerleşdirmek doly izolýasiýa edildi. Netijede, wezipeleriň biri-birine gabat gelmegi, boşluklar, seslenmeleriň gijä galmagy we taslamany tamamlamak üçin goşmaça wagt talap edýän beýleki netijesizlikler ýüze çykdy. Çäklendirilen we gijikdirilen seslenme programma üpjünçiliginiň hiliniň ösüşiň soňky tapgyryna çenli düýpli barlanmandygyny aňladýardy.

Mundan başga-da, koduň el bilen ýerleşdirilmegi adam ýalňyşlyklary bilen ýüze çykypdyr we şonuň üçin programmalary düzetmekde has köp wagt talap edipdir. Mundan başga-da, dürli toparlaryň öz wezipelerini ýerine ýetirmek üçin dürli möhletleri bardy we ahyrky önümiň durmuşa geçirilmeginde yza süýşürilmegine sebäp bolýan möhletleriň sinhrondan çykmagy seýrek däldi.

“DevOps” düşünjesi 2007-nji we 2010-njy ýyllaryň arasynda iki dörediji: Endrýu Şafer we Patrik Debois tarapyndan döredildi. Döredileli bäri, programma üpjünçiligini işläp düzmegiň ömrüniň her ädiminde iş we ösüş toparlarynyň arasynda rahat hyzmatdaşlygy ösdürdi. Bu, üznüksiz integrasiýa (CI) we üznüksiz eltip bermek (CD) ýaly täze düşünjeleri we programma üpjünçiliginiň çalt berilmegine goşant goşýan başga-da köp habar berdi.

“DevOps” modeli we amaly

“DevOps” diňe bir hyzmatdaşlyga we bir maksada ýetmek üçin dogry pikirlenmäge degişli däldir. Iň gysga wagtyň içinde hil we bazara taýyn programma üpjünçiligini bermäge kömek edýän iň oňat tejribeleri öz içine alýar. Koduň netijeliligini we çalt gowşurylmagyna kömek etjek bu iň oňat tejribeleriň käbirine göz aýlalyň.

Üznüksiz integrasiýa, programma üpjünçiligini işläp düzüjiler, kod üýtgemelerini bir merkezi ammarda birleşdirýär. Ondan soň kodda awtomatiki synaglar we gurluşlar ýerine ýetirilýär. Üznüksiz integrasiýanyň maksady, programmalary düzetmegi çaltlaşdyrmak, täze programma üpjünçiliginiň täzelenmelerini çykarmak üçin wagty azaltmak we programma üpjünçiliginiň hilini ýokarlandyrmak.

Üznüksiz eltip bermek (CD) koddaky üýtgeşmeler awtomatiki usulda gurulýar we güýçli synag üçin ýerleşdirilýär. Soň bolsa, döredijilere kemçilikleri ýüze çykarmaga we düzetmäge mümkinçilik bermek üçin ýerleşdirilen koda garşy awtomatiki synaglar geçirilýär. Adatça, kody kem-kemden birnäçe synag gurşawyna sezewar edilýär, bu ýerde adaty awtomatlaşdyrylan prosedura arkaly kod iň ýokary hil belligine ýetýär.

Meşhur CI/CD gurallaryna Jenkins, Travis CI, Circle CI, Azure DevOps we AWS Code build girýär.

Üznüksiz synagyň maksady, ahyrky önümde ýüze çykjak ýalňyşlyklary azaltmak üçin programma üpjünçiligini işläp düzmegiň ömrüniň başlangyç döwründe kemçilikleri we bolup biljek töwekgelçilikleri ýüze çykarmakdyr. Kod güýçli synaglardan şowsuz bolanda, baha bermek we funksional synag üçin hiliň barlagy bölümine geçirilmezden ozal täzeden işlemek üçin işläp düzüjä iberilýär. Giňden ulanylýan üznüksiz synag gurallaryna Travis we Selenium girýär.

Garaşyşyňyz ýaly, amaly programmalar we esasy infrastruktura, öndürijilik şahsyýetiniň haýsydyr bir ýalňyşlygy ýa-da kemçiligini barlamak we dürli pudak standartlaryna laýyklygyny üpjün etmek üçin yzygiderli gözegçilik etmegi talap edýär. Dürli ölçeglere gözegçilik edilýär:

  • oryat we CPU ulanylyşy
  • Disk giňişligini ulanmak
  • Zolak giňligini ulanmak
  • Müşderiniň özara gatnaşygy

Programmalar tarapyndan döredilen maglumatlary we surnallary gözegçilikde saklamak we seljermek arkaly döredijiler aýratynlyklaryň ýa-da konfigurasiýalaryň ulanyjylara nähili täsir edýändigi barada aňsatlyk bilen düşünip bilerler. Mundan başga-da, duýduryşlary düzmek her ädimde ýalňyşlyklary ýa-da islenmeýän üýtgeşmeleri ýüze çykarmaga kömek eder. Netijede, üznüksiz gözegçilik programmalaryň ýokary elýeterliligini üpjün edýär we zatlaryň garaşylşy ýaly işleýändigine ynam döredýär.

Meşhur gözegçilik gurallaryna Prometheus, Netdata degişlidir.

IaC diýip gysgaldylan, Kod ýaly infrastruktura wirtual serwerler ýaly çeşmeleri ýerleşdirmek we dolandyrmak we interaktiw konfigurasiýa gurallaryndan tapawutlylykda maşyn okalýan konfigurasiýa faýllaryny ulanyp ýük balanslary hökmünde suratlandyrylýar. Bu, esasanam AWS ýaly bulut şertlerinde möhümdir, bu ýerde konfigurasiýa faýlynda mysalyň jikme-jikliklerini kesgitlemek we çeşmeleri ýerleşdirmek üçin Terraform ýaly gurallary ulanmak arkaly hasaplaýyş mysallaryny aňsatlyk bilen aýlap bilersiňiz.

Mysal üçin, Amazon AWS ulanyjylara buýruk setirinden “Cloud” platformasy bilen programma taýdan aragatnaşyk saklamaga mümkinçilik berýän API-ler bilen üpjün edýär. Bu, el bilen edilýän amallary we ýalňyşlygy ýok edip, çeşmeleriň çalt ýerleşdirilmegini aňsatlaşdyrýar. Plyönekeý söz bilen aýdylanda, IaC gysga wagtyň içinde has köp iş bitirýär.

Mikroservis arhitekturasy, bir programma dürli kiçi birleşdirilen hyzmatlaryň birleşmegi ýa-da birleşmegi bolup durýar. Her hyzmat özbaşdak işleýär we HTTP esasly API-leri ulanyp, galan programmalar bilen aragatnaşyk saklaýar. Mikroservisler hyzmatlar topary ýa-da bir hyzmat hökmünde ýerleşdirilip bilner

Mikroservis arhitekturasy adaty monolit arhitekturasyndan ep-esli tapawutlanýar. Adaty arhitekturada amaly programmalar bir derejeli bolup, kod we UI ýaly ähli komponentler bir programma birikdirilýär.

Mikroservisler garaşsyz ýerleşdirmegi we çeşmeleri dolandyrmagy aňsatlaşdyrýar. Şeýle hem, şowsuzlygyň bir nokadynyň öňüni alyp, ýokary elýeterliligi üpjün edýärler. ýekeje programma ýykylanda, galanlary işlemegini dowam etdirer.

DevOps modeliniň peýdalary

“DevOps” -yň iň oňat tejribelerine göz aýlap, indi “DevOps” modelini kabul etmegiň artykmaçlyklaryna üns bereliň.

Ösüş we operasiýa toparlarynyň arasyndaky hyzmatdaşlyk, netijede öndürijiligi ýokarlandyrýan we toparyň gatnaşygyny ýokarlandyrýan bilelikdäki jogapkärçilige terjime edilýär.

Hyzmatdaşlyk toparlara ahyrky tapgyra çykmazdan ozal her tapgyrda kody aňsatlyk bilen düzetmäge mümkinçilik berýär. Bu ýokary hilli we bazara taýyn programma üpjünçiligini berýär.

Programmany ýerleşdirmek, DevOps-yň üpjün edýän awtomatlaşdyryş gurallary (Ansible, Chef we Gurjak ýaly) we ösen üznüksiz integrasiýa (CI) kömegi bilen has tertipli we has çalt.

Önüm bilimleri dürli bölümlere ýaýradylandygy sebäpli, önümiň her bir basgançagynda has gowy karar kabul edilmegine terjime edilip, önüm hakda aýdyň maksat we gözýetim bar.

Ösüş we operasiýa toparlarynyň hemişelik aýratyn işlemelidigi baradaky kök köne we kemçiliklerdir. Ümsüm pelsepe käbir pudaklarda henizem diri bolup biler, ýöne bu ýolda netijesizlige sebäp boldy.

“DevOps” ösüş we iş toparlaryny birleşdirmäge we koddaky ýalňyşlyklary azaltmak, programma üpjünçiliginiň hilini ýokarlandyrmak, gowşuryş wagtyny çaltlaşdyrmak we umumy öndürijiligi ýokarlandyrmak üçin silosda işlemegiň köne usulyndan tandemde işlemäge medeni üýtgeşikligi ösdürmäge çalyşýar. Netijede, ahyrky ulanyjy ýokary hilli önüm bilen öz wagtynda gutarýar.