IT-avdelningen på VTB har flera gånger stött på oförutsedda situationer i systemens arbete, när belastningen på dem har ökat kraftigt. Därför blev det nödvändigt att utveckla och testa en modell som skulle kunna förutsäga den högsta belastningen på kritiska system. För detta har bankens IT-specialister ställt in övervakningen, analyserat data och lärt sig att automatisera prognoser. Vilka verktyg hjälpte till att förutsäga belastningen och lyckades vi optimera arbetet med hjälp av dem? Det kommer vi att berätta om i en kort artikel.

Problem med högbelastade tjänster uppstår praktiskt taget i alla branscher, men för den finansiella sektorn är de kritiska. Vid klockan X måste alla militära enheter vara redo, och därför behövdes en förhandskunskap om vad som kan inträffa, till och med att bestämma dagen då belastningen kommer att öka och vilka system som kommer att möta den. Med avbrott måste man kämpa emot och förhindra dem, därför diskuterades inte behovet av att införa ett system för prognostisk analys. Det var nödvändigt att modernisera systemen baserat på övervakningsdata.
Analys på knäet
Löneprojektet är ett av de mest känsliga vid avbrott. Det är också det mest begripliga för prognostisering, så vi bestämde oss för att börja med det. På grund av den höga kopplingen kunde även andra delsystem, inklusive distansbanktjänst (DBO), uppleva problem i högbelastningsmoment. Till exempel började kunder som fick SMS om pengar, använda dem aktivt. Belastningen kunde då öka mer än en storleksordning.
Den första modellen för prognosen skapades manuellt. Vi tog ut data för det senaste året och beräknade vilka dagar som förväntades ha maximal belastning: till exempel den 1:a, den 15:e och den 25:e dagen, samt under de sista dagarna i månaden. Denna modell krävde stora arbetsinsatser och gav ingen exakt prognos. Ändå identifierade den flaskhalsar där mer ‘hårdvara’ behövdes och möjliggjorde optimering av pengaöverföringsprocessen genom att avtala med nyckelkunder: istället för att ge ut lönen i ett svep, fördelade vi transaktioner från olika regioner över tid. Nu behandlar vi dem i delar som bankens IT-infrastruktur kan ‘smälta’ utan avbrott.
Efter att ha erhållit det första positiva resultatet gick vi vidare med automatiseringen av prognoser. Ett tiotal kritiska områden stod kvar på tur.
Helhetsperspektiv
I VTB har vi implementerat ett övervakningssystem från MicroFocus. Därifrån tog vi datainsamlingen för prognostisering, lagringssystemet och rapporteringssystemet. I grund och botten fanns övervakningen redan, vi behövde bara lägga till mätvärden, en förutsägelsemodul och skapa nya rapporter. Detta lösning stöds av den externa entreprenören "Tekhnoserv", så de huvudsakliga arbetsuppgifterna för projektets genomförande föll på deras specialister, men vi byggde modellen själva. Prognossystemet skapades med hjälp av Prophet — denna öppna produkt har utvecklats av Facebook. Den är enkel att använda och integreras lätt med de verktyg för övergripande övervakning och Vertica som vi redan har. Grovt uttryckt analyserar systemet belastningsgrafen och gör en extrapolering baserat på Fourier-serier. Det finns också möjlighet att lägga till vissa koefficienter per dagar baserat på vår modell. Mätvärdena registreras utan mänsklig medverkan, en gång i veckan uppdateras prognosen automatiskt och nya rapporter skickas till mottagarna.
Ett sådant tillvägagångssätt avslöjar huvudsakliga cykler, till exempel årliga, månatliga, kvartalsvisa och veckovisa. Löne- och förskottsutbetalningar, semesterperioder, helgdagar och reor — allt detta påverkar antalet förfrågningar till systemen. Det visade sig till exempel att vissa cykler överlappar varandra, och den största belastningen (75%) på systemen kommer från den Centrala federala distriktet. Juridiska och fysiska personer beter sig olika. Medan belastningen från "fysiska personer" är relativt jämnt fördelad över veckodagarna (det är väldigt många små transaktioner), så står företag för 99,9 % av belastningen under arbetstid, och transaktionerna kan vara korta eller ta flera minuter och till och med timmar att behandla.

Utifrån de insamlade uppgifterna definieras långsiktiga trender. Det nya systemet har visat att människor i stor utsträckning går över till digitala banktjänster. Detta är allmänt känt, men vi förväntade oss inte en sådan skala och trodde det inte i början: antalet besök på bankkontor minskar extremt snabbt, samtidigt som antalet distansöverföringar ökar i samma omfattning. Därmed ökar också belastningen på systemen och kommer att fortsätta öka. Just nu prognostiserar vi belastningen fram till februari 2020. För normala dagar kan vi förutse med en noggrannhet på 3%, och för toppar med en noggrannhet på 10%. Detta är ett bra resultat.
Fällor
Utan svårigheter gick det som vanligt inte. Extrapoleringsmekanismen med hjälp av Fourier-serier övergår dåligt genom noll — vi vet att företag genererar få transaktioner under helger, men prediktionsmodulen ger värden långt ifrån noll. Man skulle kunna justera dem tvingat, men det är inte vår metod. Dessutom fick vi lösa problemet med att oskadligt hämta data från källsystem. Regelbunden insamling av information kräver betydande beräkningsresurser, så vi byggde snabba cachar med hjälp av replikering, och vi hämtar affärsdata direkt från replikorna. Avsaknaden av ytterligare belastning på master-systemen i sådana fall är ett avgörande krav.
Nya utmaningar
Den uppsatta uppgiften att förutsäga toppar har lösts: det har inte förekommit några fel kopplade till överbelastning i banken sedan i maj i år, och det nya prognossystemet har spelat en betydande roll i detta. Ja, det visade sig vara otillräckligt, och nu vill banken förstå hur farliga topparna är för dem. Vi behöver prognoser som använder metrik från belastningstestning, och för cirka 30% av de kritiska systemen fungerar detta redan, medan resten är i processen av att få prognoser. I nästa steg planerar vi att prognostisera belastningen på systemen inte i affärstransaktioner, utan i termer av IT-infrastruktur, det vill säga vi kommer att gå ner ett lager. Dessutom behöver vi helt automatisera insamlingen av metrik och uppbyggnaden av prognoser baserat på dem, så att vi inte behöver hantera export. Det finns inget extraordinärt med detta — vi korsbefruktar helt enkelt övervakning och belastningstestning i enlighet med bästa globala praxis.
Källa: habr.com
