Overvågning + belastningstest = forudsigelse og fravær af nedbrud

IT-afdelingen i VTB har flere gange været nødt til at håndtere nødsituationer i systemernes drift, når belastningen på dem steg markant. Derfor opstod behovet for at udvikle og afprøve en model, der kunne forudsige spidsbelastningen på kritiske systemer. Dertil har bankens IT-specialister indstillet overvågning, analyseret data og lært at automatisere prognoser. Hvilke værktøjer hjalp med at forudsige belastningen, og lykkedes det at optimere driften ved hjælp af dem, vil vi fortælle om i en kort artikel.

Overvågning + belastningstest = forudsigelse og fravær af nedbrud

Problemer med højbelastede tjenester opstår praktisk talt i alle industrier, men for den finansielle sektor er de kritiske. På time X skal alle kampvogne være klar, og derfor var det nødvendigt at vide på forhånd, hvad der kunne ske og endda bestemme dagen, hvor belastningen ville stige, og hvilke systemer der ville blive berørt. Der skal kæmpes mod fejl og forebygges, så behovet for at implementere et system for prognoseanalyse var ikke engang til diskussion. Det var nødvendigt at modernisere systemerne baseret på overvågningsdata.

Analytik på knæene

Lønprojekter er det mest følsomme tilfælde ved fejlfunktion. Det er også det letteste at forudsige, så vi besluttede at begynde her. På grund af den høje sammenhæng kunne andre undersystemer, herunder fjernbanktjenester (DBO), opleve problemer under spidsbelastning. For eksempel ville kunder, der var glade for SMS-beskeder om indbetalinger, begynde at bruge pengene aktivt. Belastningen kunne samtidig stige med mere end en ordens størrelse. 

Den første model til prognosen blev skabt manuelt. Vi tog en eksport fra det seneste år og vurderede, hvilke dage der forventedes at være maksimale toppe: for eksempel den 1., 15. og 25. samt i slutningen af måneden. Denne model krævede betydelige arbejdsressourcer og gav ikke præcise prognoser. Ikke desto mindre afslørede den flaskehalse, hvor der var behov for at tilføje "hardware", og gjorde det muligt at optimere pengestrømsprocessen ved at aftale med nøglekunder: for ikke at udbetale lønnen "pludseligt", blev transaktioner fra forskellige regioner spredt over tid. Nu behandler vi dem i dele, som bankens IT-infrastruktur kan "fordøje" uden fejl.

Efter at have opnået det første positive resultat, gik vi videre til automatiseringen af prognoser. Der ventede endnu et dusin kritiske områder på deres tur.

Helhedsorienteret tilgang

I VTB har de implementeret et overvågningssystem fra MicroFocus. Derfra tog vi dataindsamlingen til prognosen, lagringssystemet og rapportgenereringssystemet. I realiteten var overvågningen allerede på plads, det var kun nødvendigt at tilføje metrikker, prediktionsmodulet og skabe nye rapporter. Dette løsning understøttes af den eksterne leverandør "Tekhnoserv", så hovedparten af arbejdet med projektets implementering lå på deres specialister, men modellen byggede vi selv. Prognosesystemet blev lavet på basis af Prophet - dette åbne produkt er udviklet af Facebook. Det er brugervenligt og let at integrere med de overvågningsværktøjer og Vertica, vi allerede har. Groft sagt analyserer systemet belastningskurven og foretager en ekstrapolation baseret på Fourier-rækker. Der er også mulighed for at tilføje visse koefficienter pr. dag, taget fra vores model. Metrikkerne indsamles uden menneskelig indblanding, prognosen genberegnes automatisk en gang om ugen, og nye rapporter sendes til modtagerne. 

Denne tilgang afslører de vigtigste cykler, såsom årlige, månedlige, kvartalsvise og ugentlige. Udbetaling af lønninger og forskud, ferieperioder, helligdage og salg - alt dette påvirker antallet af henvendelser til systemerne. Det viste sig for eksempel, at nogle cykler overlapper hinanden, og den største belastning (75%) på systemerne stammer fra den centrale føderale kreds. Juridiske og fysiske personer opfører sig forskelligt. Hvis belastningen fra "fysiske personer" er relativt jævnt fordelt over ugen (dette skyldes mange små transaktioner), så står virksomheder for 99,9% af belastningen i arbejdstiden, hvor transaktionerne kan være korte, men også kan tage flere minutter eller endda timer at behandle.

Overvågning + belastningstest = forudsigelse og fravær af nedbrud

Baseret på de indsamlede data bestemmes langvarige tendenser. Det nye system har afsløret, at folk i stort omfang skifter til DBO. Det er velkendt, men vi havde ikke forventet sådanne størrelser og troede dem ikke i starten: Antallet af henvendelser i bankens kontorer falder ekstremt hurtigt, og samtidig stiger antallet af fjerntransaktioner. Derfor vokser belastningen på systemerne også, og det vil fortsætte med at stige. I øjeblikket forudser vi belastningen indtil februar 2020. Det er muligt at forudsige normale dage med en margin på 3%, mens toppene kan forudses med en margin på 10%. Det er et godt resultat.

Faldgruber

Der har ikke været nogen besvær, som sædvanligt. Ekstrapolationsmekanismen ved hjælp af Fourier-rækker klarer ikke overgangen ved nul — vi ved, at virksomheder genererer få transaktioner i weekenden, men forudsigelsesmodulet giver værdier langt fra nul. Det kunne være blevet justeret tvunget, men det er ikke vores metode. Derudover måtte vi løse problemet med skånsom dataindsamling fra kilde-systemer. Regelmæssig indsamling af information kræver betydelige beregningsressourcer, derfor har vi bygget hurtige caches ved hjælp af replikering, og vi modtager forretningsdata direkte fra replikater. Manglende ekstra belastning på master-systems i sådanne tilfælde er et blokkerende krav.

Nye udfordringer

Den direkte opgave om forudsigelse af toppe er blevet løst: der har ikke været nogen nedbrud relateret til overbelastning i banken siden maj i år, og det nye forudsigelsessystem har spillet en betydelig rolle i dette. Ja, det viste sig at være utilstrækkeligt, og nu ønsker banken at forstå, hvor farlige toppene er for dem. Vi har brug for forudsigelser ved hjælp af målinger fra belastningstests, og dette fungerer allerede for ca. 30% af de kritiske systemer, resten er i gang med at få forudsigelser. I næste fase planlægger vi at forudsige belastningen på systemerne ikke i forretningstransaktioner, men i termer af IT-infrastruktur, dvs. vi vil gå en lag dybere. Desuden skal vi helt automatisere indsamlingen af metrikker og opbygningen af forudsigelser baseret på dem, så vi ikke behøver at håndtere eksportprocesserne. Der er intet bemærkelsesværdigt ved det — vi kombinerer blot overvågning og belastningstest i overensstemmelse med de bedste globale praksisser.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster