Praegu on DevOps teema kuumal kohal. JĂ€tkuva integreerimise ja kohaletoimetamise torustik rakendavad kĂ”ik, kellel vĂ€hegi huvi. Kuid enamik ei pööra alati piisavalt tĂ€helepanu infosĂŒsteemide töökindluse tagamisele erinevates CI/CD torustiku etappides. Selles artiklis tahaksin rÀÀkida oma kogemusest tarkvara kvaliteedi kontrolli automatiseerimisel ja vĂ”imalikest stsenaariumitest selle "ise taastumise" rakendamisel.

Töötan IT-teenuste juhtimise insenerina ettevĂ”ttes . Minu eriala on erinevate rakenduste jĂ”udluse ja k tilgjenguse jĂ€lgimissĂŒsteemide rakendamine. Suhtlen sageli IT-klientidega erinevatelt turusegmentidelt nende IT-teenuste kvaliteedi jĂ€lgimise aktuaalsete kĂŒsimuste osas. Peamine eesmĂ€rk on vĂ€hendada vĂ€ljaandmisprotsessi tsĂŒkliaega ja suurendada nende vĂ€ljalaste sagedust. See on muidugi kĂ”ik tore: rohkem vĂ€ljalase â rohkem uusi funktsioone â rohkem rahulolevaid kasutajaid â rohkem tulu. Kuid tegelikkuses ei Ă”nnestu alati kĂ”ik hĂ€sti. VĂ€ga kiirete juurutustempode korral kerkib kohe esile meie vĂ€ljalaste kvaliteedi kĂŒsimus. Isegi tĂ€ielikult automatiseeritud torustiku korral on ĂŒks suurimaid probleeme teenuste ĂŒleviimine testimisest tootmisse, ilma et see mĂ”jutaks töökindluse aega ja kasutajate suhtlemist rakendusega.
KĂ€esoleva artikli pĂ”hjal tehtud mitme kliendiga vestluste jĂ€rel vĂ”in öelda, et vĂ€ljaannete kvaliteedi kontroll, rakenduse töökindluse probleem ja selle "ise taastumise" vĂ”imalus (nĂ€iteks stabiilse versiooni juurde tagasipöördumine) CI/CD torustiku erinevates etappides on ĂŒhed kĂ”ige pĂ”letavamad ja aktuaalsemad teemad.

Hiljuti töötasin ise kliendi poolel â online-panga rakendustarkvara tugiteenuse osakonnas. Meie rakenduse arhitektuuris kasutati palju omakĂ€ele kirjutatud mikroteenuseid. KĂ”ige kurvem on see, et mitte kĂ”ik arendajad ei suuda kĂ”rgete arenduskiirusetega hakkama saada, mistĂ”ttu kannatas mĂ”nede mikroteenuste kvaliteet, mis tĂ”i nendele ja nende loojatele naljakad hĂŒĂŒdnimed. Ilmunud on legende selle kohta, millest need tooted tehakse.

âProbleemi pĂŒstitamineâ
Sageda vabanemisstrateegiate ja suure arvu mikroteenuste tÔttu on keeruline mÔista rakenduse toimimist tervikuna, nii testimise kui ka kasutamise etappidel. Muutused toimuvad pidevalt ja nende jÀlgimine ilma head monitorimisvahenditeta on vÀga keeruline. Tihti istuvad arendajad öiste vÀljalaskmiste jÀrel hommikul nagu puhanguteks valmis ja ootavad, et midagi katki ei lÀheks, kuigi testimise etapis olid kÔik kontrollid edukad.
On veel ĂŒks aspekt. Testimise etapis kontrollitakse tarkvara toimimist: rakenduse pĂ”hifunktsioonide tĂ€itmist ja vigade puudumist. Kvalitatiivsed jĂ”udlusmÔÔdikud kas puuduvad vĂ”i ei arvesta rakenduse ning integratsioonikihtide kĂ”iki aspekte. MĂ”ningaid mÔÔdikuid ei pruugi ĂŒldse kontrollida. SeetĂ”ttu, kui tootmiskeskkonnas juhtub rike, saab tehniline tugi sellest teada alles siis, kui reaalsed kasutajad hakkavad kaebama. Soovime minimaliseerida madala kvaliteediga tarkvara mĂ”ju lĂ”ppkasutajatele.
Ăks lahendus on integreerida tarkvara kvaliteedi kontrollimisprotsessid erinevatesse CI/CD torujuhtmetesse, lisada erinevaid stsenaariume, et sĂŒsteem saaks Ă”nnetuste korral taastuda. Peame ka meeles, et meil on DevOps. Ări ootab uut toodet vĂ”imalikult kiiresti. Seega peavad kĂ”ik meie kontrollid ja stsenaariumid olema automatiseeritud.
Ălesanne jaguneb kaheks koostisosaks:
- kvaliteedi kontroll testimise etapis (automaatne protsess halva kvaliteediga versioonide tuvastamiseks);
- kvaliteedi kontroll tootmiskeskkonnas (probleemide automaatse tuvastamise mehhanismid ja nende isetÀiendamise stsenaariumid).
MÔÔdikute jÀlgimise ja kogumise tööriist
Nende ĂŒlesannete tĂ€itmiseks on vajalik jĂ€lgimissĂŒsteem, mis suudab avastada probleeme ja edastada neid automatiseerimisĂŒsteemidele erinevates CI/CD konveierite etappides. Kui see sĂŒsteem suudab pakkuda ka kasulikke mÔÔdikuid erinevatele meeskondadele: arendusele, testimisele ja kasutusele, oleks see positiivne. Ja veel parem, kui see ka Ă€rile.
Metrike kogumine vĂ”ib toimuda erinevate sĂŒsteemide (Prometheus, ELK Stack, Zabbix jne) abil, kuid minu arvates sobivad APM () tĂŒĂŒpi lahendused kĂ”ige paremini nende ĂŒlesannete jaoks.
Oma töö kĂ€igus tugiteenustes alustasin sarnase projekti loomist, kasutades Dynatrace'i APM lahendust. Hetkel, töötades integratorina, tunnen ma hĂ€sti monitooringusĂŒsteemide turgu. Minu subjektiivne arvamus: Dynatrace sobib selliste ĂŒlesannete lahendamiseks kĂ”ige paremini.
Dynatrace'i lahendus pakub horisontaalset vaadet igast kasutaja operatsioonist, sĂŒgava detailitasemega, ulatudes koodi tĂ€itmise tasemeni. Saate jĂ€lgida kogu interaktsiooni ahelat erinevate teabeteenuste vahel: alates frontend veebi- ja mobiilirakendustest, back-end rakendusserveritest, integratsioonivahetist kuni konkreetse andmebaasi kutseni.
. KĂ”ik sĂŒsteemi komponentide sĂ”ltuvused genereeritakse automaatselt.
. Teenuse operatsiooni lÀbimise tee mÀÀratakse automaatselt.
Peame samuti meeles pidama, et peame integreeruma erinevate automatiseerimistööriistadega. Siin on lahendusel mugav API, mis vĂ”imaldab andmete ja sĂŒndmuste edastamist ja vastuvĂ”tmist.
Liigume edasi ĂŒksikasjalikumale arutelule, kuidas lahendada seatud ĂŒlesandeid Dynatrace'i sĂŒsteemi abil.
Ălesanne 1. KokkuvĂ”tete kvaliteedi kontrollimise automatiseerimine testimisjĂ€rgus.
Esimene ĂŒlesanne on tuvastada probleemid vĂ”imalikult varakult rakenduse kohaletoimetamise protsessi etappidel. Ainult âheadâ koodikogumid peaksid jĂ”udma tootmiskeskkonda. Selleks peavad teie testimisprotsessi kuuluma tĂ€iendavad monitorid teie teenuste kvaliteedi kontrollimiseks.

Uurime samm-sammult, kuidas seda rakendada ja protsessi automatiseerida:

Joonisel on kujutatud automatiseeritud sammude voog tarkvara kvaliteedi kontrollimiseks:
- monitooringusĂŒsteemi seadistamine (agentide installimine);
- teie tarkvara kvaliteedi hindamise sĂŒndmuste mÀÀramine (mÔÔdikud ja lĂ€vendid) ja nende edastamine monitooringusĂŒsteemi;
- koormuse ja jÔudlustestide genereerimine;
- toodete ja kĂ€ttesaadavuse andmete kogumine monitooringusĂŒsteemis;
- andmete edastamine kvaliteedi hindamise testide, mis pĂ”hinevad sĂŒndmustel, sĂŒsteemide jĂ€lgimisest CI/CD sĂŒsteemi. Automatiseeritud koondanalĂŒĂŒs.
Samm 1. JĂ€lgimissĂŒsteemi seadistamine
Esmalt tuleb agentide installimine teie testkeskkonda. Dynatrace'i lahendusel on meeldiv omadus â see kasutab universaalset OneAgent'i, mis installitakse OS-i instantsile (Windows, Linux, AIX), avastab automaatselt teie teenused ja hakkab nende kohta jĂ€lgimisandmeid koguma. Te ei pea iga protsessi jaoks eraldi agenti seadistama. Sarnane olukord kehtib ka pilve- ja konteinerplatvormide jaoks. Samuti vĂ”ite agentide installimisprotsessi automatiseerida. Dynatrace sobib suurepĂ€raselt âinfrastruktuur kui koodâ kontsepti.: juba on valmis skriptid ja juhised kĂ”igile populaarsetele platvormidele. Integreerite agendi oma teenuse konfiguratsiooni ja selle juurutamisel saate kohe uue teenuse koos juba töötava agentiga.
Samm 2. Teie tarkvara kvaliteedi hindamise sĂŒndmuste mÀÀramine
NĂŒĂŒd tuleb mÀÀrata teenuste ja Ă€ritegevuse nimekiri. Oluline on arvesse vĂ”tta just neid kasutajaoperatsioone, mis on teie teenusele Ă€ri kriitilise tĂ€htsusega. Soovitan selles osas konsulteerida Ă€ri- ja sĂŒsteemianalĂŒĂŒtikutega.
Edasi tuleb mÀÀrata, milliseid mÔÔdikuid soovite igal tasemel kontrollida. NÀiteks vÔivad need olla tÀitmise aeg (keskmise, mediaani, protsendiitide ja muu lÔhustamine), vead (loogilised, teenuslikud, infrastruktuuri ja muud) ning erinevad infrastruktuuri mÔÔdikud (mÀluhunniku, jÀÀtme kogumise, lÔime arvu jne).
Automatiseerimise ja DevOps meeskonna kasutusmugavuse suurendamiseks tekib kontseptsioon âJĂ€lgimine kui koodâ. Selle all mĂ”istan, et arendaja/testija vĂ”ib kirjutada lihtsa JSON-faili, mis mÀÀratleb tarkvara kvaliteedi hindamise mÔÔdikud.
Vaatame nÀidet sellisest JSON-failist. Paar vÔtme/vÀÀrtus kasutatakse Dynatrace API objektidega (API kirjeldust saab vaadata siin ).
{
   "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 mÀÀratud ajasĂŒsteemide (timeseries) massiiv:
- timeseriesId â testitav mÔÔdik, nĂ€iteks Response Time, Error count, Memory used jne; Â
- aggregation â mÔÔdiku agregatsiooni tase, meie puhul avg, kuid vĂ”ite kasutada endale sobivat (avg, min, max, sum, count, percentile);
- tags â objekti silt jĂ€lgimissĂŒsteemis vĂ”i vĂ”ite mĂ€rkida konkreetse objekti identifikaatori;
- severe ja warning â need nĂ€itajad reguleerivad meie mÔÔdiku lĂ€ve vÀÀrtused, kui testide vÀÀrtus ĂŒletab severe lĂ€ve, mĂ€rgitakse meie kogumine ebaĂ”nnestunuks.
JÀrgmises joonises on toodud nÀide selliste lÀveste kasutamisest.

Samm 3. Koormuse genereerimine
PĂ€rast teenuse kvaliteedi tasemete mÀÀratlemist on vajalik genereerida testkoormus. Saate kasutada ĂŒhtegi mugavat testimise tööriista, nĂ€iteks Jmeter, Selenium, Neotys, Gatling jne.
Dynatrace jĂ€lgimissĂŒsteem vĂ”imaldab koguda erinevaid metainfot teie testidest ja tuvastada, milline test kuulub millise versiooni vĂ€ljaandesse ja millisele teenusele. Soovitatav on lisada testimise HTTP-pĂ€ringutesse tĂ€iendavad pĂ€ised.
JÀrgmises joonises on nÀide, kus me tÀhistame tÀiendava pÀisega X-Dynatrace-Test, et see test kuulub toote lisamise toimingu testimisele.

Iga koormustesti kĂ€ivitamise korral saadate Dynatrace'ile tĂ€iendavat konteksti teavet CI/CD serveri API abil. Nii saab sĂŒsteem erinevad testid ĂŒksteisest eristada.
. JĂ€lgimisseadmest sĂŒndmuse registreerimine koormustestimise kĂ€ivitamisest
Sammud 4-5. Andmete kogumine ja edastamine CI/CD sĂŒsteemi
Koos genereeritud testiga edastatakse jĂ€lgimissĂŒsteemi sĂŒndmus kvaliteedimeetmete andmete kogumise vajaduse kohta. Samuti nĂ€idatakse meie JSON-faili, milles on mÀÀratletud peamised mÔÔdikud.
CI/CD serveris tarkvara kvaliteedi kontrollimise sĂŒndmus, mis saadetakse monitooringu sĂŒsteemi
Meie nĂ€ites nimetatakse kvaliteedikontrolli sĂŒndmust perfSigDynatraceReport (Performance_Signature) â see on valmis Jenkinsiga integreerimiseks, mille on vĂ€lja töötanud T-Systems Multimedia Solutions. Igas kvaliteedikontrolli kĂ€ivitamise sĂŒndmuses on teave teenuse, versiooni numbri ja testimise aja kohta. Plugin kogub tootlikkuse vÀÀrtused kokku ehitamise ajal, hindab neid ja vĂ”rdleb tulemusi varasemate ehituste ja mittefunktsionaalsete nĂ”uetega.
Monitooring sĂŒsteemis kvaliteedi kontrollimise kĂ€ivitamise sĂŒndmus.
Testi lĂ”ppedes edastatakse kĂ”ik tarkvara kvaliteedi hindamise metoodika tulemused tagasi pideva integreerimise sĂŒsteemi, nĂ€iteks Jenkinsisse, mis koostab tulemuste raporti.
Statistika tulemused ehituste kohta CI/CD serveris.
Iga eraldi ehituse kohta nÀeme statistikat iga mÀÀratud metriiki kogu testi vÀltel. Samuti nÀeme, kas on esinenud rikkumisi teatud lÀvi vÀÀrtustes (hoiatus ja tÔsised lÀved). Alusel kogutud nÀitajate kogu, on iga ehitus mÀrgitud stabiilseks, ebastabiilseks vÔi ebaÔnnestunuks. Samuti saate mugavuse huvides lisada raportisse hetkeehituse ja eelmise ehituse vÔrdlust.
Detailse statistika vaatamine ehituste kohta CI/CD serveris.
Detailne kahe ehituse vÔrdlus
Vajadusel saab minna Dynatrace'i liidesesse ja seal ĂŒksikasjalikumalt vaadata statistikat iga teie ehituse kohta ning vĂ”rrelda neid omavahel.
Statistika vĂ”rdlus ehituste ĂŒle Dynatrace'is.
Â
JĂ€reldused
KokkuvÔttes saame teenuse 'monitooring teenusena', automatiseeritud pideva integreerimise torus. Arendajal vÔi testijal on vaja ainult mÀÀrata metoodika loetelu JSON-failis, kÔik muu toimub automaatselt. Saame selge kvaliteedikontrolli releasidele: kÔik teavitused tootlikkusest, ressursikasutamisest vÔi arhitektuurilistest regressioonidest.
KĂŒsimus 2. Tarkvara kvaliteedi kontrollimise automatiseerimine tootmiskeskkonnas
Nii oleme lahendanud ĂŒlesande, kuidas automatiseerida monitooringu protsessi testimise etapis torus. Nii minimeerime halbade ehituste protsendi, mis jĂ”uavad tootmiskeskkonda.
Aga mis teha, kui halb tarkvara on siiski tootmisse jĂ”udnud, vĂ”i kui midagi lihtsalt katki lĂ€heb? Utoopias tahaksime, et oleks olemas probleemide automaatse tuvastamise mehhanismid ja vĂ”imalusel suudaks sĂŒsteem oma töövĂ”imet taastada, vĂ€hemalt öösiti.
Selleks peame nagu eelnevas jaos ette nÀgema automaatseid tarkvara kvaliteedikontrolle tootmiskeskkonnas ja looma nende jaoks enesetÀiendamise stsenaariume.

AutotÀiendamine kui kood
Enamikus ettevĂ”tetes on juba olemas teadmusbaas erinevat tĂŒĂŒpi levinud probleemide kohta ja nimekiri toimingutest nende parandamiseks, nĂ€iteks protsesside taaskĂ€ivitamine, ressursside puhastamine, versioonide tagasiviimine, vale konfiguratsioonimuudatuse taastamine, klastris komponentide arvu suurendamine vĂ”i vĂ€hendamine, sinise vĂ”i rohelise kĂŒlgviga vahetamine jne.
Kuigi need kasutusjuhtumid on paljudele meeskondadele juba aastaid teada, on vaid vÀhesed neid automatiseerimisele mÔelnud ja investeerinud.
MÔeldes, ei ole rakenduse töövÔime taastamise protsesside elluviimisel midagi erakordset, on vajalik, et teie adminnide juba teadaolevad tööstsenaariumid esitatakse koodistendina (kontseptsioon "autotÀiendamine kui kood"), mille olete eelnevalt iga konkreetse juhtumi jaoks kirjutanud. Automaatsete paranduste stsenaariumid peaksid olema suunatud probleemi pÔhjusliku tulemuseni. Te ise mÀÀrate Ôiged reageerimisprotseduurid juhtumite korral.
Stsenaariumi kĂ€ivitamiseks vĂ”ib kĂ€ivitada mis tahes mÔÔdiku teie jĂ€lgimissĂŒsteemist, oluline on, et need mÔÔdikud mÀÀratleksid tĂ€pselt, et kĂ”ik ei ole hĂ€sti, kuna ei taha tootmiskeskkonnas valehĂ€ireid saada.
VĂ”ite kasutada mis tahes sĂŒsteemi vĂ”i sĂŒsteemide kogumit: Prometheus, ELK Stack, Zabbix jne. Kuid toon mĂ”ned nĂ€ited APM lahenduse pĂ”hjal (nĂ€iteks Dynatrace), mis aitab samuti teie elu lihtsamaks teha.
Esiteks on siin kÔik, mis puudutab töövÔimet rakenduse vaatenurgast. Lahendus pakub sadu mÔÔdikuid erinevatel tasanditel, mida saate kasutada kÀivitajatena:
- kasutajate tase (brauserid, mobiilirakendused, IoT-seadmed, kasutajakÀitumine, konversioon jne);
- teenuse ja operatsioonide tase (tÔhusus, kÀttesaadavus, vead jne);
- rakenduse infrastruktuuri tase (hosti OS-metrika, JMX, MQ, veebiserver jne);
- platvormide tase (virtualiseerimine, pilv, konteiner jne).
Dynatrace'i jÀlgimistasemed.
Teiseks, nagu ma eelnevalt mainisin, on Dynatrace'il avatud API, mis vĂ”imaldab selle integreerimist erinevate kolmandate osapoolte sĂŒsteemidega. NĂ€iteks, teavituste saatmine automaatikasĂŒsteemi, kui kontrollparameetrid ĂŒletatakse.
Allpool on esitatud nÀide Ansible'iga suhtlemiseks.

Toon siin mÔned nÀited, milliseid automatiseerimisi teha saab. See on vaid osa juhtumitest, nende loetelu teie keskkonnas vÔib piirduda ainult teie kujutlusvÔime ja teie jÀlgimistööriistade vÔimalustega.
1. Halvasti vÀlja pandud - versiooni tagasivÔtmine
Isegi kui me kÔik testkeskkonnas hÀsti kontrollime, on ikka vÔimalus, et uus vÀljalase vÔib teie rakenduse tootmis keskkonnas hÀvitada. Inimfaktor ei ole ka kadunud.
JĂ€rgneval joonisel nĂ€eme, et teenusele operatsioonide tĂ€itmise aeg hĂŒppab jĂ€rsult. Selle hĂŒppe algus langeb kokku rakendusele vĂ€ljalaskeajaga. KĂ”ik see teave edastatakse automaatikasĂŒsteemile sĂŒndmustena. Kui teenuse töökindlus ei normaliseeru meie mÀÀratud aja jooksul, kutsub automaatselt vĂ€lja skript, mis vĂ”tab versiooni tagasi vanale.
TÔhususe langus operatsioonides pÀrast vÀljalaset.
2. Ressursside koormus 100% - lisada sÔlm marsruutimisele
JĂ€rgnevas nĂ€ites tuvastab jĂ€lgimissĂŒsteem, et ĂŒhe komponendi CPU koormus on 100%.
CPU koormus 100%
Â
Selle sĂŒndmuse pĂ”hjal on vĂ”imalik mitmeid erinevaid stsenaariume. NĂ€iteks kontrollib jĂ€lgimissĂŒsteem lisaks, kas ressursside puudus on seotud teenuse koormuse kasvuga. Kui jah, siis kĂ€ivitub skript, mis lisab automaatselt sĂ”lme marsruutimisele, taastades seelĂ€bi sĂŒsteemi töökindluse.
MÔjude skaleerimine pÀrast intsidenti
3. KÔvakettal pole vaba kohta - ketta puhastamine
Ma arvan, et paljusid protsesse on juba automatiseeritud. APM-i abil saab jÀlgida ka diskiallast vaba ruumi. Ruumi puudumise vÔi aeglase ketta töö korral kÀivitame skripti puhastamiseks vÔi lisame ruumi.

Ketta laadimine 100%
Â
4. Madal kasutajate aktiivsus vĂ”i madal konversioon â ĂŒleminek sinise ja rohelise haru vahel
Kohtan sageli kliente, kes kasutavad tootmiskeskkonnas kahte kontuuri (blue-green deploy) rakenduste jaoks. See vĂ”imaldab kiiresti liikuda harude vahel uute versioonide tarnimisel. Tihti vĂ”ivad peale juurutamist toimuda kardinaalsed muudatused, mida ei pruugi kohe mĂ€rgata. Sel juhul ei pruugi jĂ”udluse ja kĂ€ttesaadavuse vĂ€henemine esineda. Sellistele muudatustele kiiret reageerimist silmas pidades on parem kasutada erinevaid mÔÔdikuid, mis kajastavad kasutajate kĂ€itumist (seansside arv ja kasutajate toimingud, konversioon, bounce rate). JĂ€rgneval joonisel on nĂ€idatud nĂ€iteks, kuidas konversiooni languse korral toimus ĂŒleminek tarkvara harude vahel.
Konversioon langus pÀrast tarkvara harude vahetamist.
Automaatsete probleemide tuvastamise mehhanismid
LĂ”puks toon veel ĂŒhe nĂ€ite, miks mulle Dynatrace kĂ”ige rohkem meeldib.
Oma jutustuses testkeskkonda koostiste kvaliteedi automaatse kontrollimise kohta mÀÀrasime kÔik lÀvendi vÀÀrtused kÀsitsi. Testkeskkonnas on see normaalne, testija mÀÀrab nÀitajad enne iga kontrolli vastavalt koormusele. Tootmiskeskkonnas on soovitav, et probleemid tuvastataks automaatselt, arvestades erinevaid aluse mehhanisme.
Dynatrace'il on huvitavad integreeritud tehisintellekti tööriistad, mis pĂ”hinevad anomaalsete mÔÔdikute (baselining) tuvastamise mehhanismidel ja kĂ”igi komponentide vaheliste interaktsioonide kaardi koostamisel, seostades ja korreleerides sĂŒndmusi, et mÀÀrata teie teenuse anomaaliad ja pakkuda iga probleemi ja juurpĂ”hjuse kohta ĂŒksikasjalikku teavet.
Dynatrace mÀÀrab automaatsete sĂ”ltuvuste analĂŒĂŒsi kaudu mitte ainult, kas probleemne teenus on peamine pĂ”hjus, vaid ka selle sĂ”ltuvused teistest teenustest. Allolevas nĂ€ites jĂ€lgib ja hindab Dynatrace automaatselt iga teenuse toimivust tehingute tĂ€itmise kĂ€igus, tuvastades Golangi teenuse peamise pĂ”hjusena.
Peamise pÔhjuse mÀÀramise nÀide.
JÀrgmisel kujutisel on kujutatud probleemide jÀlgimise protsessi teie rakenduses alates Ônnetuse algusest.
Tekkinud probleemi visualiseerimine, mis nĂ€itab kĂ”iki komponente ja neile juhtunud sĂŒndmusi
JĂ€lgimissĂŒsteem on kogunud tĂ€ieliku sĂŒndmuste kronoloogia tekkinud probleemist. Aja graafiku all nĂ€eme kĂ”iki vĂ”tme sĂŒndmusi igas komponendis. Nende sĂŒndmuste pĂ”hjal saate mÀÀrata automaatse parandamise protseduure koodiskriptide kujul.
Soovitan lisaks integreerida jĂ€lgimissĂŒsteem teeninduslauda vĂ”i vigade jĂ€lgimise sĂŒsteemiga. Probleemi tekkimisel saavad arendajad kiiresti kogu vajaliku teabe selle analĂŒĂŒsimiseks tootmiskeskkonnas kooditasemel.
KokkuvÔte
KokkuvĂ”ttes sai meil CI/CD torujuhe, kus on sisseehitatud automatiseeritud tarkvarakvaliteedi kontrollid Pipeline'is. Minimaliseerime madala kvaliteediga koostiste arvu, suurendame sĂŒsteemi usaldusvÀÀrsust ning kui sĂŒsteemi töövĂ”imekus ikkagi vĂ€heneb, alustame selle taastamise mehhanisme.

Valmis olekute automatiseerimisse tasub tÔesti investeerida, see ei ole alati kiire protsess, kuid aja jooksul toob see vilja. Soovitan uue juhtumi lahendamise jÀrel tootmiskeskkonnas kohe mÔelda, milliseid jÀlgimisseadeid testkeskkonda lisada, et vÀltida madala kvaliteediga koostiste sattumist tootmisse, samuti koostada skript nende probleemide automaatseks lahendamiseks.
Loodan, et minu nĂ€ited aitavad teid teie ettevĂ”tmistes. Leidub ka huvitav nĂ€ha teie kasutatavate mÔÔdikute nĂ€iteid sĂŒsteemide isesĂ€ilitumise rakendamiseks.

Allikas: habr.com
