Praegu on DevOps teema ĂŒha populaarsem. JĂ€tkuva integreerimise ja tarnimise torujuhtme loomine rakendavad kĂ”ik, kes suvavad. Kuid enamik ei pööra alati piisavalt tĂ€helepanu infosĂŒsteemide töökindluse tagamisele erinevates CI/CD torujuhtme etappides. Selles artiklis soovin jagada oma kogemusi tarkvara kvaliteedi kontrollimise automatiseerimise ja selle "ise taastumise" vĂ”imalike stsenaariumide elluviimise osas.

Töötan IT-teenuste juhtimise insenerina ettevĂ”ttes . Minu erialane suund on erinevate rakenduste jĂ”udluse ja kĂ€ttesaadavuse jĂ€lgimisse sĂŒsteemide juurutamine. Suhtlen sageli IT-klientidega erinevatest turusegmentidest, arutades nende IT-teenuste kvaliteedi jĂ€lgimise aktuaalseid kĂŒsimusi. Peamine ĂŒlesanne on tsĂŒkli vabastamise aega minimeerida ja nende vĂ€lja andmise sagedust suurendada. Loomulikult on see kĂ”ik suurepĂ€rane: rohkem vabastusi - rohkem uusi funktsioone - rohkem rahulolevaid kasutajaid - rohkem tulu. Kuid tegelikult ei Ă”nnestu kĂ”ik alati hĂ€sti. VĂ€ga kĂ”rge juurutamise tempoga kerkib kohe esile kĂŒsimus meie vĂ€ljaannete kvaliteedist. Isegi tĂ€iesti automatiseeritud konveieril on ĂŒks suurimaid probleeme teenuste ĂŒleviimine testimisest tootmisesse, mĂ”jutamata samal ajal töökatkestuste aega ja kasutajate suheldes rakendusega.
Paljude klientidega vestlemise pĂ”hjal vĂ”in öelda, et vĂ€ljaannete kvaliteedikontroll, rakenduse usaldusvÀÀrsuse probleem ja selle 'iseennast taastumise' (nĂ€iteks tagasipöördumine stabiilse versiooni juurde) vĂ”imalus CI/CD konveieri erinevates etappides on ĂŒks kĂ”ige murettekitavamaid ja aktuaalsemaid teemasid.

Hiljuti töötasin ka tellija poolel â rakendusteenuste osakonnas online-panga juures. Meie rakenduse arhitektuuris kasutati palju ise kirjutatud mikroteenuseid. KĂ”ige kurvem on see, et kĂ”ik arendajad ei jĂ”udnud kiire arengu tempoga kaasa, mistĂ”ttu kannatas osa mikroteenuste kvaliteet, mis tĂ”i kaasa naljakaid hĂŒĂŒdnimesid nende ja nende loojate jaoks. Ilmnesid lood, millest materjalist need tooted on valmistatud.

âĂlesande seadmineâ
Kohene relaktsioonide sagedus ja suur hulk mikroteenuseid muudavad kogu rakenduse toimimise mĂ”istmise keeruliseks, nii testimise kui ka kasutamise etapis. Muutused toimuvad pidevalt ja nende kontrollimine ilma korralike jĂ€lgimisvahenditeta on vĂ€ga keeruline. Tihti pĂ€rast öist vĂ€ljalaset istuvad arendajad hommikul nagu pĂŒssirohu puutikud ja ootavad, et midagi ei lĂ€heks katki, kuigi testimise etapis olid kĂ”ik kontrollid edukad.
On veel ĂŒks aspekt. Testimise etapis kontrollitakse tarkvara töövĂ”imet: rakenduse pĂ”hifunktsioonide tĂ€itmine ja vigade puudumine. Kvaliteedihindamised vĂ”ivad kas puududa vĂ”i mitte arvestada rakenduse ja integreerimiskihi kĂ”iki aspekte. MĂ”ned mÔÔdikutest vĂ”ivad isegi tĂ€iesti kontrollimata jÀÀda. Tulemuseks on see, et tehnilise toe osakond saab teada rikkest tootmiskeskkonnas alles siis, kui reaalsed kasutajad hakkavad kaebama. Soovime minimeerida halva kvaliteediga tarkvara mĂ”ju lĂ”ppkasutajatele.
Ăks vĂ”imalus lahenduseks on tarkvara kvaliteedi kontrolliprotsesside juurutamine CI/CD torujuhtme erinevates etappides, lisades erinevad stsenaariumid sĂŒsteemi taastamiseks rikke korral. Samuti peame meeles, et meil on DevOps. Ări ootab uue toote vĂ”imalikult kiiret kĂ€ttesaadavust. SeetĂ”ttu peavad kĂ”ik meie kontrollid ja stsenaariumid olema automatiseeritud.
Ălesanne jaguneb kaheks osaks:
- kogude kvaliteedi kontrollimine testimise etapis (automaatne protsess halva kvaliteediga kogumite tabamiseks);
- rakenduste kvaliteedi kontroll tootmiskeskkonnas (automaatsete probleemide tuvastamise mehhanismid ja vÔimalikud eneseteenindamise stsenaariumid).
Tööriist jÀlgimiseks ja mÔÔdikute kogumiseks
EesmĂ€rkide saavutamiseks on vajalik jĂ€lgimissĂŒsteem, mis suudab tuvastada probleeme ja edastada need automatiseerimissĂŒsteemidele CI/CD toru erinevates etappides. Kui see sĂŒsteem pakub kasulikke mÔÔdikuid erinevatele meeskondadele: arendusele, testimisele ja kĂ€itamisele, oleks see samuti positiivne. Ja veelgi parem, kui see toob ka kasu Ă€rile.
MÔÔdikute kogumiseks vĂ”ib kasutada erinevaid sĂŒsteemide kombinatsiooni (Prometheus, ELK Stack, Zabbix jne), kuid minu arvates sobivad nende ĂŒlesannete jaoks kĂ”ige paremini APM klassi lahendused (), mis suudavad teie elu oluliselt lihtsustada.
Oma töö kĂ€igus tugiteenustes alustasin sarnase projekti loomist, kasutades Dynatrace'i APM klassi lahendust. Praegu, töötades integraatorina, tunnen ma monitoringusĂŒsteemide turgu piisavalt hĂ€sti. Minu subjektiivne arvamus: Dynatrace sobib nende ĂŒlesannete lahendamiseks kĂ”ige paremini.
Dynatrace'i lahendus pakub horisontaalset vaadet iga kasutaja operatsioonile, sĂŒgava detailitasemega, kuni koodi tĂ€itmise tasemeni. Saame jĂ€lgida kogu suhtlusketti erinevate infoteenuste vahel: alates front-end veeb- ja mobiilirakendustest, back-end rakenduste serveritest, integreerimisbussist kuni konkreetse andmebaasi kutse teha.
. KĂ”ik sĂŒsteemi komponentidevahelised sĂ”ltuvused genereeritakse automaatselt.
. Teenuse operatsiooni lÀbimise tee mÀÀratakse ja genereeritakse automaatselt.
Peame samuti meeles pidama, et peame integreeruma erinevate automatiseerimistööriistadega. Sel juhul on lahendusel mugav API, mis vĂ”imaldab edastada ja vastu vĂ”tta erinevaid mÔÔdikuid ja sĂŒndmusi.
Edasi liikudes vaatame lĂ€hemalt, kuidas lahendada esitatud ĂŒlesandeid Dynatrace'i sĂŒsteemi abil.
Ălesanne 1. Kvaliteedi kontrolli automatiseerimine koostamise etapis testimise ajal.
Esimene ĂŒlesanne on leida probleemid vĂ”imalikult varakult rakenduse tarnimise konveierite etappidel. Ainult "head" koodiversioonid peavad jĂ”udma tootmiskeskkonda. Selleks peavad teie testimispipeline'is olema kaasatud tĂ€iendavad jĂ€relevalvesĂŒsteemid, et kontrollida teie teenuste kvaliteeti.

Vaatame samm-sammult, kuidas seda rakendada ja automatiseerida:

Joonisel on kujutatud automatiseeritud tarkvara kvaliteedikontrolli samme:
- jÀlgimisse sistme juurutamine (agentide installimine);
- kvaliteedi hindamise sĂŒndmuste mÀÀratlemine (mÔÔdikud ja kĂŒnnised) ja nende edastamine jĂ€lgimisse sĂŒsteemi;
- koormuse genereerimine ja jÔudlustestide lÀbiviimine;
- andmete kogumine sĂŒsteemi jĂ€lgimises jĂ”udluse ja kĂ€ttesaadavuse kohta;
- kvaliteedi hindamise sĂŒndmustel pĂ”hinevate testide andmete edastamine jĂ€lgimisse sĂŒsteemist CI/CD sĂŒsteemi. Automaatne analĂŒĂŒs versioonidest.
Samm 1. JĂ€lgimisse sĂŒsteemi juurutamine
Esiteks tuleb installida agentide teie testkeskkonda. Dynatrace lahendusel on aga meeldiv eelis â see kasutab universaalset agendi OneAgent, mis installitakse operatsioonisĂŒsteemi instantsi (Windows, Linux, AIX), tuvastab automaatselt teie teenused ja hakkab nende kohta jĂ€lgimisandmeid koguma. Te ei pea iga protsessi jaoks eraldi agenti seadistama. Sama olukord kehtib ka pilve- ja konteinerplatvormide puhul. Samuti saate agentide installimise protsessi automatiseerida. Dynatrace sobitub suurepĂ€raselt kontseptsiooniga "infrastruktuur kui kood" (): olemas on juba valmis skriptid ja juhised kĂ”ikide populaarsete platvormide jaoks. Integreerite agendi oma teenuse konfiguratsiooni ja selle juurutamisel saate kohe uue teenuse, millel töötab juba agent.
Samm 2. Teie tarkvara kvaliteedi hindamise sĂŒndmuste mÀÀramine
NĂŒĂŒd tuleb mÀÀratleda teenuste ja Ă€ritegevuste loetelu. Oluline on arvesse vĂ”tta just neid kasutajaoperatsioone, mis on teie teenuse jaoks Ă€ri kriitilise tĂ€htsusega. Siinkohal soovitan konsulteerida Ă€rialaste ja sĂŒsteemi analĂŒĂŒtikutega.
SeejĂ€rel tuleb mÀÀratleda, milliseid mÔÔdikuid soovite iga taseme kontrollimiseks kaasata. NĂ€iteks vĂ”ib see hĂ”lmata tĂ€itmisaja mÔÔtmist (keskmise, mediaani, protsentilide jms lĂ”ikes), vigu (loogilised, teenuse, infrastruktuuri jne) ja erinevaid infrastruktuurimÔÔdikuid (mĂ€lupuhver, prĂŒgikorjaja, niitide arv jne).
DevOps'i meeskonna automatiseerimise ja mugavuse huvides tekib mĂ”isted âMonitooring kui koodâ. Mida ma selle all mĂ”tlen â arendaja/testija vĂ”ib kirjutada lihtsa JSON-faili, mis mÀÀratleb tarkvara kvaliteedi kontrollimise nĂ€itajad.
Vaadakem sellise JSON-faili nÀidet. Paarina vÔtme/vÀÀrtuse kasutamiseks on objektid Dynatrace API-st (API kirjeldust saab vaadata siit. ).
{
   "timeseries": [
   {
     "timeseriesId": "service.ResponseTime",
     "aggregation": "avg",
     "tags": "Frontend",
     "severe": 250000,
     "warning": 1000000
   },
   {
     "timeseriesId": "service.ResponseTime ",
     "aggregation": "avg",
     "tags": "Backend",
     "severe": 4000000,
     "warning": 8000000
   },
   {
     "timeseriesId": "docker.Container.Cpu",
     "aggregation": "avg",
     "severe": 50,
     "warning": 70
   }
 ]
}Fail on esindab ajareaktsioonide (timeseries) mÀÀratlemise massiivi:
- timeseriesId â jĂ€lgitav mÔÔdik, nĂ€iteks reaktsiooniaeg, vigade arv, kasutatud mĂ€lu jms; Â
- kogumine â mÔÔdikute kogumise tase, meie puhul avg, kuid saate kasutada mida iganes vajate (avg, min, max, sum, count, percentile);
- mĂ€rgid â objekti silt jĂ€lgimisseernes, vĂ”i vĂ”ite mÀÀrata konkreetse objekti ID;
- severe ja warning â need nĂ€itajad reguleerivad meie mÔÔdikute lĂ€vendasid; kui testide vÀÀrtus ĂŒletab severe lĂ€ve, siis meie kogumine mĂ€rgitakse kui ebaĂ”nnestunud.
JÀrgmises joonises on toodud nÀide selliste lÀvendite kasutamisest.

Samm 3. Koormuse genereerimine
PÀrast seda, kui oleme mÀÀratlenud meie teenuse kvaliteeditasemed, tuleb genereerida testkoormus. Saate kasutada mÔnda mugavat testimistööriista, nÀiteks Jmeter, Selenium, Neotys, Gatling jne.
Dynatrace jĂ€lgimisse sĂŒsteem vĂ”imaldab koguda erinevaid metadata teavet teie testidest ja tuvastada, milline test kuulub millisesse vĂ€ljaandetsĂŒklisse ja millisele teenusele. Soovitav on lisada tĂ€iendavad pĂ€ised testikĂŒsimuste HTTP-pĂ€ringutesse.
JÀrgneval joonisel on nÀide, kus lisapealkirja X-Dynatrace-Test abil tÀhistame, et see test on seotud toote lisamise pÔhitoiminguga ostukorvi.

Iga koormustesti kĂ€ivitamisel edastate Dynatracesele tĂ€iendavat kontekstiteavet CI/CD serveri API kaudu. Nii suudab sĂŒsteem erinevaid teste omavahel eristada.
. Koormustestimise kĂ€ivitamise sĂŒndmus jĂ€lgimissĂŒsteemis
Samm 4â5. Tulemusandmete kogumine ja edastamine CI/CD sĂŒsteemi
Koos genereeritud testiga edastatakse jĂ€lgimissĂŒsteemi sĂŒndmus, mis nĂ€itab vajadust kvaliteedi nĂ€itajate andmete kogumise jĂ€rele. Samuti mÀÀratakse meie JSON-fail, mis kutsub esile vĂ”tmemÔÔdikud.
SĂŒndmus tarkvara kvaliteedi kontrollimiseks, mis genereeritakse CI/CD serveris ja saadetakse jĂ€lgimissĂŒsteemi
Meie nĂ€ites nimetatakse kvaliteedi kontrollimise sĂŒndmust perfSigDynatraceReport (Performance_Signature) â see on valmis Jenkins'iga integreerimiseks, mille on vĂ€lja töötanud T-Systems Multimedia Solutionsi meeskond. Igas kĂ€ivitamise kontrollimise sĂŒndmuses on teave teenuse, kogumise numbri ja testimise aja kohta. Plugin kogub jĂ”udlusandmed kogumise ajal, hindab neid ja vĂ”rdleb tulemusi varasemate kogumiste ja mittefunktsionaalsete nĂ”uetega.
MonitooringusĂŒsteemis sĂŒndmus kvaliteedikontrolli algusest.
PĂ€rast testi lĂ”ppu edastatakse kĂ”ik tarkvara kvaliteedi hindamise nĂ€itajad tagasi pideva integreerimise sĂŒsteemi, nĂ€iteks Jenkins, mis koostab tulemuste aruande.
Statistika kogumiste tulemuste kohta CI/CD serveris.
Iga eraldi kogumise puhul nÀeme me statistikat iga meie mÀÀratud mÔÔdiku kohta kogu testi kÀigus. Me nÀeme ka, kas teatud piirvÀÀrtustes (hoiatus ja tÔsised pinged) esines rikkumisi. Kogutud nÀitajate pÔhjal mÀrgitakse kogu kogumine stabiilseks, ebastabiilseks vÔi ebaÔnnestumiseks. Samuti saad mugavuse huvides lisada aruandesse praeguse kogumise ja eelneva vÔrdlusnÀitajad.
Detailse statistika vaatamine kogumite kohta CI/CD serveris.
Kaks erineva versiooni ĂŒksikasjalik vĂ”rdlemine
Vajadusel saab minna Dynatrace'i liidesesse ja seal pÔhjalikumalt vaadata iga teie versiooni statistikat ning vÔrrelda neid omavahel.
Statistika vÔrdlemine versioonide vahel Dynatrace'is.
Â
JĂ€reldused
KokkuvĂ”ttes saavutame teenuse âmonitooring teenusenaâ, mis on automatiseeritud pideva integreerimise torustikus. Arendajal vĂ”i testijal on vaid vaja mÀÀrata metride loend JSON-failis ning kĂ”ik muu toimub automaatselt. Saame lĂ€bipaistva kvaliteedikontrolli vĂ€ljaannetes: kĂ”ik teated jĂ”udlusest, ressursikasutamisest vĂ”i arhitektuuri regressioonidest.
Ălesanne 2. Tarkvara kvaliteedi kontrollimise automatiseerimine tootmiskeskkonnas
Nii et oleme lahendanud ĂŒlesande, kuidas automatiseerida monitooringu protsessi testimise etapis torustikus. SeelĂ€bi minimeerime madala kvaliteediga versioonide osakaalu, mis jĂ”uavad tootmiskeskkonda.
Aga mis juhtub, kui halb tarkvara ikkagi tootmisse pÀÀseb, vĂ”i kui midagi lihtsalt katki lĂ€heb. Me tahtsime, et meie utoopias oleksid olemas automaatse probleemide tuvastamise mehhanismid ja vĂ”imaluse korral suudaks sĂŒsteem ise oma töövĂ”imet taastada, vĂ€hemalt öösel.
Selleks peame, sarnaselt eelmisele jaotisele, ette nÀgema automaatsed tarkvara kvaliteedikontrollid tootmiskeskkonnas ja looma nende jaoks isetÀiendavate stsenaariume.

Automaatne parandamine nagu kood
Enamikus ettevĂ”tetes on juba olemas kogutud teadmusbaas erinevate levinud probleemitĂŒĂŒpide kohta ja tegevuste loetelu nende lahendamiseks, nĂ€iteks protsesside taaskĂ€ivitamine, ressursside puhastamine, versioonide tagasiviimine, vale konfiguratsiooni taastamine, klastrite komponentide arvu suurendamine vĂ”i vĂ€hendamine, sinise vĂ”i rohelise plaadi vahetamine jne.
Kuigi need kasutusjuhtumid on paljudele meeskondadele juba aastaid tuttavad, on vaid vÀhesed neist mÔelnud ja investeerinud nende automatiseerimisse.
Kui hĂ€sti mĂ”elda, pole rakenduse isetĂ€iendamise protsesside rakendamisel midagi ĂŒlemÀÀra keerulist. Tuleb esitada juba tuntud administreerimise stsenaariumid koodistena (kontseptsioon "automaatsed parandused kui kood"), mille olete iga konkreetse juhtumi jaoks eelnevalt kirjutanud. Automaatsete paranduste stsenaariumid peaksid olema suunatud probleemi algpĂ”hjuse kĂ”rvaldamisele. Teie mÀÀrate, millised on Ă”ige reageerimise tegevused juhtumi korral.
Skeemi kĂ€ivitamiseks vĂ”ib kasutada ĂŒkskĂ”ik millist mÔÔdikut teie jĂ€lgimissĂŒsteemist, peamine on, et need mÔÔdikud kindlalt tuvastavad, et kĂ”ik on halvasti, sest ei tahaks saada valehĂ€ireid tootmiskeskkonnas.
VĂ”ite kasutada ĂŒkskĂ”ik millist sĂŒsteemi vĂ”i sĂŒsteemide kogumit: Prometheus, ELK Stack, Zabbix jne. Kuid toon mĂ”ned nĂ€ited APM lahenduspĂ”hiselt (nĂ€iteks Dynatrace), mis aitab samuti teie elu lihtsustada.
Esiteks, siin on kÔik, mis puudutab rakenduse töötamise efektiivsust. Lahendus pakub sadu erinevaid mÔÔdikuid, mida saate kasutada kÀivitamiseks:
- kasutajate tasand (brauserid, mobiilirakendused, IoT-seadmed, kasutajakÀitumine, konversioon jne);
- teenuse ja operatsioonide tasand (töötlemiskiirus, kÀttesaadavus, vead jne);
- rakenduse infrastruktuuri tasand (hosti OS-mÔÔdikud, JMX, MQ, veebiserver jne);
- platvormide tasand (virtualiseerimine, pilv, konteiner jne).
Dynatrace'i jÀlgimistasemed.
Teiseks, nagu ma varem ĂŒtlesin, on Dynatrace'il avatud API, mis vĂ”imaldab selle mugavat integreerimist erinevate kolmandate osapoolte sĂŒsteemidega. NĂ€iteks teavituse saatmine automatiseerimissĂŒsteemi, kui kontrollparameetrid ĂŒletatakse.
Allpool on nÀide koosoleku toimimisest Ansible'iga.

Toon mitmeid nÀiteid, milliseid automatiseerimisi on vÔimalik teha. See on vaid osa juhtudest; nende loetelu teie keskkonnas vÔib piirduda ainult teie fantaasia ja teie jÀlgimistööriistade vÔimalustega.
1. Vale deploy â versiooni tagasivĂ”tmine
Isegi kui kontrollime kÔike testkeskkonnas vÀga hoolikalt, on siiski vÔimalus, et uus versioon vÔib tootmiskeskkonnas teie rakenduse rikkuda. Inimfaktorit ei saa eirata.
JĂ€rgmisel joonisel nĂ€eme, et teenuse töötlemise aja tĂ”us on jĂ€rsk. Selle tĂ”usu algus langeb kokku rakenduse juurutamise ajaga. Edastame kogu selle teabe sĂŒndmustena automatiseerimissĂŒsteemi. Kui teenuse toimimine ei normaliseeru mÀÀratud ajakava jooksul, kĂ€ivitub automaatselt skript, mis rullib versiooni tagasi vanemale.
SĂŒsteemi töötlemise jĂ”udluse halvenemine pĂ€rast juurutamist.
2. Ressursside koormus 100% â lisada sĂ”lme marsruudistusse
JĂ€rgneval nĂ€itel mÀÀrab seire sĂŒsteem, et ĂŒhe komponendi CPU koormus on 100%.
CPU koormus 100%
Â
Selle sĂŒndmuse korral on vĂ”imalik mitu erinevat stsenaariumi. NĂ€iteks kontrollib seire sĂŒsteem lisaks, kas ressursside puudus on seotud teenuse koormuse suurenemisega. Kui jah, siis tĂ€idetakse skript, mis lisab automaatselt sĂ”lme marsruutimisele, taastades seelĂ€bi sĂŒsteemi töövĂ”ime tervikuna.
Skaleerimine pÀrast intsidenti
3. KĂ”vaketta puudumine â ketta puhastus
Ma arvan, et paljusid protsesse on juba automatiseeritud. APM-i abil saab samuti jĂ€lgida kettasĂŒsteemi vaba ruumi. Kui ruumi ei ole vĂ”i ketta töö on aeglane, kutsume esile puhastusskripti vĂ”i lisame ruumi.

Ketta koormus 100%
Â
4. Madal kasutajate aktiivsus vĂ”i madal konversioon â vahetus sinise ja rohelise haru vahel
Ma sageli kohtan kliente, kes kasutavad tootmiskeskkonnas kahte kontuuri (blue-green deploy) rakenduste jaoks. See vÔimaldab kiiresti vahetada harude vahel, kui tarnitakse uusi versioone. Sageli vÔivad pÀrast juurutamist toimuda olulised muutused, mida ei pruugi kohe mÀrgata. Sellega ei pruugi jÔudluse ja saadavuse halvenemist tÀheldada. Kiire reageerimise jaoks sellistele muutustele on parem kasutada erinevaid mÔÔdikuid, mis peegeldavad kasutajate kÀitumist (seansside ja kasutajatoimingute arv, konversioon, bounce rate). JÀrgmises joonises on toodud nÀide, kus konversiooni languse korral toimub vahetus tarkvara harude vahel.
Konversiooni langus tarkvara harude vahel vahetamisel.
Probleemide automaatse tuvastamise mehhanismid
LĂ”pus toon veel ĂŒhe nĂ€ite, miks mulle Dynatrace kĂ”ige rohkem meeldib.
Minu jutustamise osas, mis kÀsitleb kvaliteedikontrolli automatiseerimist testimise keskkonnas, mÀÀrasime kÔik piirmÀÀrad kÀsitsi. See on testimiskeskkonna jaoks normaalne, kuna tester mÀÀrab iga kontrolli eel nÀitajad vastavalt koormusele. Tootmiskeskkonnas on soovitav, et probleemid tuvastataks automaatselt, arvestades erinevaid aluskontrollimise mehhanisme.
Dynatrace'il on huvitavad sisseehitatud tehisintellekti tööriistad, mis mÀÀravad teie teenuse anomaaliad, tuginedes normimitme mÀÀramise mehhanismidele ja kaardistades kĂ”igi komponentide omavahelist suhtlemist, vĂ”rreldes ja korreleerides sĂŒndmusi, ning pakuvad igas probleemi ja juurpĂ”hjuse kohta detailset teavet.
Dynatrace mÀÀrab automaatse komponentide sÔltuvusanalyysi kaudu mitte ainult selle, kas probleemne teenus on peamine pÔhjus, vaid ka selle sÔltuvuse teistest teenustest. Allolevas nÀites jÀlgib ja hindab Dynatrace automaatselt igasuguste teenuste töökindlust tehingute tÀitmise kÀigus, tuvastades Golang teenuse kui peamise pÔhjuse.
Peamise tÔrke pÔhjuse mÀÀratlemise nÀide.
JÀrgneval pildil on kujutatud probleemi jÀlgimise protsessi alates intsidentide kÀivitumisest.
Probleemi visualiseerimine, mis nĂ€itab kĂ”iki komponente ja nende sĂŒndmusi.
JĂ€lgimisĂŒsteem on kogunud probleemi kohta tĂ€ieliku sĂŒndmuste kronoloogia. Ajagraafiku all nĂ€eme iga komponendi peamisi sĂŒndmusi. Nende sĂŒndmuste pĂ”hjal saate mÀÀrata automaatsete paranduste protseduurid koodiskeemidena.
Soovitan ka integreerida jĂ€lgimissĂŒsteem Service Desk'i vĂ”i vea jĂ€lgimise sĂŒsteemiga. Probleemi ilmnemisel saavad arendajad kiiresti tĂ€pset teavet selle analĂŒĂŒsimiseks tootmis keskkonnas.
KokkuvÔte
KokkuvĂ”ttes saime CI/CD toru, kus on sisse ehitatud automatiseeritud tarkvarakvaliteedi kontrollid Pipeline'is. Minimaleerime madala kvaliteediga ehitiste arvu, suurendame sĂŒsteemi usaldusvÀÀrsust ning kui sĂŒsteemi töövĂ”ime ikkagi rikub, kĂ€ivitame taastamise mehhanismid.

Tarkvarakvaliteedi jÀlgimise automatiseerimiseks tasub tÔeliselt pingutada; see ei ole alati kiire protsess, kuid aja jooksul toob see oma viljad. Soovitan pÀrast iga uue intsidenti lahendamist tootmiskeskkonnas kohe mÔelda, milliseid monitooringu tööriistu testkeskkonda lisada, et vÀltida madala kvaliteediga ehitiste jÔudmist tootmisse, ning koostada skript nende probleemide automaatseks lahendamiseks.
Loodan, et minu nĂ€ited aitavad teid teie algatustes. Samuti oleks mul huvitav nĂ€ha teie nĂ€iteid kasutatavate mÔÔdikute kohta sĂŒsteemide enesetaastumise rakendamiseks.

Allikas: habr.com
