JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikus

Praegu on DevOps teema kuumal kohal. JĂ€tkuva integreerimise ja kohaletoimetamise torustik CI/CD 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas

Töötan IT-teenuste juhtimise insenerina ettevĂ”ttes «LANIT-Integratsioon». 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikus
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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikus

„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 (Rakenduste Tulemuslikkuse JĂ€lgimine) 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas. KĂ”ik sĂŒsteemi komponentide sĂ”ltuvused genereeritakse automaatselt.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas. 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikus

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

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas

Joonisel on kujutatud automatiseeritud sammude voog tarkvara kvaliteedi kontrollimiseks:

  1. monitooringusĂŒsteemi seadistamine (agentide installimine);
  2. teie tarkvara kvaliteedi hindamise sĂŒndmuste mÀÀramine (mÔÔdikud ja lĂ€vendid) ja nende edastamine monitooringusĂŒsteemi;
  3. koormuse ja jÔudlustestide genereerimine;
  4. toodete ja kĂ€ttesaadavuse andmete kogumine monitooringusĂŒsteemis;
  5. 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.Infrastruktuur kui kood vĂ”i IaC: 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 Dynatrace API).

{
    "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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas

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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas

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Ă€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas. 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusCI/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 plugin 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusMonitooring sĂŒsteemis kvaliteedi kontrollimise kĂ€ivitamise sĂŒndmus. Allikas

Testi lĂ”ppedes edastatakse kĂ”ik tarkvara kvaliteedi hindamise metoodika tulemused tagasi pideva integreerimise sĂŒsteemi, nĂ€iteks Jenkinsisse, mis koostab tulemuste raporti.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusStatistika tulemused ehituste kohta CI/CD serveris. Allikas

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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusDetailse statistika vaatamine ehituste kohta CI/CD serveris. Allikas

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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusStatistika vĂ”rdlus ehituste ĂŒle Dynatrace'is. Allikas
 
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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikus
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).

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusDynatrace'i jĂ€lgimistasemed. Allikas

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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas

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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusTĂ”hususe langus operatsioonides pĂ€rast vĂ€ljalaset. Allikas

2. Ressursside koormus 100% - lisada sÔlm marsruutimisele

JĂ€rgnevas nĂ€ites tuvastab jĂ€lgimissĂŒsteem, et ĂŒhe komponendi CPU koormus on 100%.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusCPU 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusMĂ”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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikus
JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusKetta 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusKonversioon langus pĂ€rast tarkvara harude vahetamist. Allikas

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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusPeamise pĂ”hjuse mÀÀramise nĂ€ide. Allikas

JÀrgmisel kujutisel on kujutatud probleemide jÀlgimise protsessi teie rakenduses alates Ônnetuse algusest.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusTekkinud 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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikus
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.

JĂ€tkuv JĂ€lgimine – tarkvara kvaliteedi kontrolli automatiseerimine CI/CD torustikusAllikas

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster