LFCA: Tgħallem il-Kunċetti Bażiċi ta' DevOps - Parti 21


DevOps ilu suġġett trending għal żmien mhux ħażin issa u rnexxielu jiġbed l-attenzjoni tal-professjonisti tat-teknoloġija u l-intrapriżi bl-istess mod. Bħala Bidu, jista 'jkun ta' sfida li tgeżwer rasek madwar il-kunċett ta 'DevOps, u f'dan is-suġġett, aħna se nilħqu l-kunċetti bażiċi ta' dan il-buzzword tal-internet.

Biex nibda, DevOps huwa portmanteau ta 'żewġ kelmiet: Żvilupp u Operazzjonijiet. Huwa sett ta 'prattiċi u għodod li jippromwovu l-kollaborazzjoni bejn timijiet ta' żvilupp (Devs) u operazzjonijiet (Ops). L-għan ta 'DevOps huwa li jissimplifika ċ-ċiklu tal-ħajja tal-iżvilupp tas-softwer, jimminimizza r-rati ta' falliment, iżid il-frekwenza tal-iskjeramenti, u jikseb softwer ta 'kwalità għolja.

Biex nifhmu aħjar id-DevOps fl-ambjent modern tal-IT tal-lum, ejja nagħtu ħarsa lejn kif kien il-mudell ta 'skjerament qabel il-miġja ta' DevOps.

Prattiċi Tradizzjonali tal-IT

Qabel DevOps, timijiet ta 'żvilupp u inġiniera tal-QA użaw il-mudell klassiku tal-kaskata. Il-pajsaġġ tax-xogħol kien fil-biċċa l-kbira mgħaqqad u l-ittestjar u l-iskjerament tal-applikazzjonijiet seħħew f'iżolament sħiħ. Dan irriżulta f'koinċidenza ta' dmirijiet, nuqqasijiet, dewmien fir-rispons, u ineffiċjenzi oħra li kienu jeħtieġu żmien addizzjonali biex jitlesta l-proġett. Feedback limitat u mdewma kien ifisser li l-kwalità tas-softwer ma ġietx verifikata bir-reqqa sal-aħħar fażi tal-iżvilupp.

Barra minn hekk, l-iskjerament manwali tal-kodiċi kien ikkawżat minn żbalji umani u għalhekk talab aktar ħin fl-applikazzjonijiet tad-debugging. Barra minn hekk, timijiet differenti kellhom diversi skedi ta’ żmien għat-tlestija tal-kompiti tagħhom u ma kienx rari li l-iskedi ta’ żmien ma kinux sinkronizzati li jwasslu għal aktar dewmien fit-twettiq tal-prodott finali.

Il-kunċett ta 'DevOps kien maħsub f'xi żmien bejn l-2007 u l-2010 minn żewġ żviluppaturi: Andrew Shafer u Patrick Debois. Mill-bidu tagħha, trawwem kollaborazzjoni bla xkiel bejn it-timijiet tal-operat u tal-iżvilupp f'kull pass taċ-ċiklu tal-ħajja tal-iżvilupp tas-softwer. Dan ħabbar kunċetti ġodda bħall-Integrazzjoni Kontinwa (CI) u Kunsinna Kontinwa (CD) u ħafna oħrajn li jikkontribwixxu għal twassil rapidu tas-softwer.

Mudell u Prattiki DevOps

DevOps mhix biss dwar il-kollaborazzjoni u li jkollok il-mentalità t-tajba lejn il-kisba ta 'għan. Tinkludi l-aħjar prattiki li huma mmirati biex jgħinu biex iwasslu softwer ta' kwalità u lest għas-suq fl-iqsar żmien possibbli. Ejja nagħtu ħarsa lejn xi wħud minn dawn l-aħjar prattiki li jgħinuk issaħħaħ l-effiċjenza u l-kunsinna mgħaġġla tal-kodiċi.

L-Integrazzjoni Kontinwa hija prattika ta' żvilupp ta' softwer fejn l-iżviluppaturi jingħaqdu l-bidliet tal-kodiċi f'repożitorju ċentrali wieħed. Minn hemm 'il quddiem, testijiet u bini awtomatizzati huma esegwiti fuq il-kodiċi. L-għan tal-Integrazzjoni Kontinwa huwa li tħaffef id-debugging tal-applikazzjonijiet, tnaqqas iż-żmien meħud biex jiġu rilaxxati aġġornamenti ġodda tas-softwer, u ttejjeb il-kwalità tas-softwer.

Il-Konsenja Kontinwa (CD) hija prattika oħra fejn il-bidliet fil-kodiċi jinbnew awtomatikament, u jiġu skjerati għal ttestjar qawwi. Aktar tard, testijiet awtomatizzati huma esegwiti kontra l-kodiċi skjerat sabiex jippermettu lill-iżviluppaturi jidentifikaw u jiffissaw il-bugs. Normalment, il-kodiċi huwa suġġett progressivament għal ambjenti ta 'ttestjar multipli fejn permezz ta' proċedura awtomatizzata standard, il-kodiċi jikseb l-ogħla marka ta 'kwalità.

Għodod CI/CD popolari jinkludu Jenkins, Travis CI, Circle CI, Azure DevOps, u AWS Code build.

L-għan ta 'ttestjar kontinwu huwa li jiġu identifikati bugs u riskji potenzjali fl-istadji bikrija taċ-ċiklu tal-ħajja tal-iżvilupp tas-softwer sabiex jiġu minimizzati l-iżbalji li jimmanifestaw fil-prodott finali. Meta l-kodiċi jonqos mit-testijiet vigorużi, normalment jintbagħat lura lill-iżviluppatur għal reviżjoni qabel ma jgħaddi lid-dipartiment tal-Assigurazzjoni tal-Kwalità għall-evalwazzjonijiet u l-ittestjar funzjonali. Għodod ta 'ttestjar kontinwu użati ħafna jinkludu Travis u Selenium.

Kif tistenna, l-applikazzjonijiet u l-infrastruttura sottostanti jeħtieġu monitoraġġ kontinwu biex jiċċekkjaw l-identità tal-prestazzjoni tagħhom kwalunkwe żball jew difett, u jiżguraw konformità ma 'diversi standards tal-industrija. Varjetà wiesgħa ta' metriċi huma mmonitorjati inklużi:

  • Użu tal-memorja u CPU
  • Użu tal-ispazju tad-disk
  • Użu tal-bandwidth
  • Interazzjoni mal-klijent

Billi jimmonitorjaw u janalizzaw dejta u zkuk ġġenerati mill-applikazzjonijiet, l-iżviluppaturi jistgħu faċilment jiksbu għarfien dwar kif il-karatteristiċi jew il-konfigurazzjonijiet għandhom impatt fuq l-utenti. Barra minn hekk, il-konfigurazzjoni tat-twissijiet tgħin fl-identifikazzjoni ta 'żbalji jew bidliet mhux mixtieqa f'kull pass tat-triq. Fl-aħħar mill-aħħar, il-monitoraġġ kontinwu jiżgura d-disponibbiltà għolja tal-applikazzjonijiet u jispira fiduċja li l-affarijiet qed jaħdmu kif mistenni.

Għodod ta 'monitoraġġ popolari jinkludu Prometheus, Netdata biex insemmu xi ftit.

Imqassar bħala IaC, Infrastructure as Code hija deskritta bħala l-iskjerament u l-ġestjoni ta’ riżorsi bħal servers virtwali, & load balancers li jużaw fajls ta’ konfigurazzjoni li jinqraw mill-magni għall-kuntrarju ta’ għodod ta’ konfigurazzjoni interattivi. Dan huwa partikolarment essenzjali f'ambjenti Cloud bħal AWS fejn inti tista 'faċilment spin up istanzi ta' komputazzjoni billi tiddefinixxi d-dettalji tal-istanza f'fajl ta 'konfigurazzjoni u tisfrutta għodod bħal Terraform biex tuża r-riżorsi.

Pereżempju, Amazon AWS tipprovdi APIs li jippermettu lill-utenti jinteraġixxu b'mod programmatiku mal-pjattaforma Cloud mil-linja tal-kmand. Dan jiffaċilita l-iskjerament rapidu tar-riżorsi billi jelimina proċessi manwali u slack. Fi kliem sempliċi, IaC jagħmel aktar xogħol fi żmien qasir.

L-arkitettura tal-mikroservizzi hija fejn applikazzjoni waħda hija integrazzjoni jew amalgamazzjoni ta’ diversi servizzi iżgħar akkoppjati b’mod laxk. Kull servizz jaħdem b'mod indipendenti u jikkomunika mal-bqija tal-applikazzjonijiet billi juża APIs ibbażati fuq HTTP. Il-mikroservizzi jistgħu jiġu skjerati bħala grupp ta' servizzi jew servizz wieħed

L-arkitettura tal-mikroservizzi hija differenti ħafna mill-arkitettura monolitika tradizzjonali. Fl-arkitettura tradizzjonali, l-applikazzjonijiet huma f'saffi wieħed u l-komponenti kollha, inklużi l-kodiċi u l-UI, huma miġbura fi programm wieħed.

Il-mikroservizzi jiffaċilitaw l-iskjerament u l-ġestjoni indipendenti tar-riżorsi. Jiżguraw ukoll disponibbiltà għolja billi jipprevjenu punt wieħed ta' falliment. meta applikazzjoni waħda tiġġarraf, il-bqija se tkompli taħdem.

Benefiċċji tal-Mudell DevOps

Wara li ħares lejn l-aħjar prattiki DevOps, ejja issa niffukaw fuq il-benefiċċji tal-adozzjoni tal-mudell DevOps.

Il-kollaborazzjoni bejn it-timijiet tal-iżvilupp u l-operat tissarraf f’responsabbiltà konġunta, li fl-aħħar iżżid il-produttività u trawwem l-involviment tat-tim.

Il-kollaborazzjoni tippermetti wkoll li t-timijiet jiddebugjaw faċilment il-kodiċi f'kull stadju qabel ma jaslu għall-fażi finali. Dan jagħti softwer ta' kwalità għolja u lest għas-suq.

L-iskjerament tal-applikazzjoni huwa aktar issimplifikat u ħafna aktar mgħaġġel grazzi għall-għodod ta 'awtomazzjoni li jipprovdi DevOps (bħal Ansible, Chef, u Puppet) u integrazzjoni kontinwa avvanzata (CI).

Peress li l-għarfien tal-prodott huwa mifrux f'diversi dipartimenti, hemm għan u viżjoni ċara dwar il-prodott, li jissarrfu għal teħid ta' deċiżjonijiet aħjar f'kull stadju tal-iżvilupp.

It-twemmin sod li t-timijiet tal-iżvilupp u l-operat iridu jaħdmu għal dejjem separatament ilu skadut u difetti. Il-filosofija siled tista 'tkun għadha ħajja f'xi industriji, iżda dan irriżulta f'ineffiċjenzi evidenti tul it-triq.

DevOps tfittex li tintegra timijiet ta 'żvilupp u operazzjoni u trawwem bidla kulturali mill-mod antik ta' xogħol f'silos għal xogħol flimkien biex jitnaqqsu l-iżbalji fil-kodiċi, ittejjeb il-kwalità tas-softwer, tħaffef il-ħinijiet tal-kunsinna u tingħata spinta lill-produttività ġenerali. Fl-aħħar mill-aħħar l-utent aħħari jispiċċa bi prodott ta 'kwalità għolja fil-ħin.