VTB IT-department has faced emergency situations in system operations several times, where the load on them increased multiple times. Hence, there was a need to develop and test a model that would predict peak loads on critical systems. To achieve this, the bank's IT specialists set up monitoring, analyzed data, and learned to automate forecasts. We will discuss what tools helped to predict the load and whether they managed to optimize operations in a brief article.

Issues with high-load services arise in almost all industries, but they are critical in the financial sector. At the moment of truth, all combat units must be on alert, and it was necessary to know in advance what could happen, even determining the day when the load would surge and which systems would encounter it. Problems need to be fought and prevented, so the need to implement a predictive analytics system was never in question. It was necessary to modernize systems based on monitoring data.
Analytics on the fly
The salary project is one of the most sensitive in case of a failure. It is also the most predictable, so we decided to start with it. Due to high interconnectivity, other subsystems, including remote banking services (RBS), could also experience issues during peak load moments. For instance, clients, thrilled with SMS notifications about incoming funds, would start using them actively. In such cases, the load could surge more than tenfold.Â
The first forecasting model was created manually. We took the data for the last year and calculated which days would expect the highest peaks: for example, the 1st, 15th, and 25th of each month, as well as the last days of the month. This model required significant labor intensity and did not provide accurate predictions. Nevertheless, it identified bottlenecks where additional 'hardware' was needed and allowed us to optimize the money transfer process by negotiating with anchor clients: instead of disbursing salaries all at once, transactions from different regions were staggered over time. Now we process them in parts that the bank's IT infrastructure can handle without failures.
Saades esimene positiivne tulemus, lĂ€ksime prognoosimise automatiseerimise juurde. Ootas veel kĂŒmme kriitilist ala.
Kasutusmugav lÀhenemine
VTB-s rakendati MicroFocusi firma jĂ€lgimissĂŒsteemi. Sealt saime andme kogumise prognoosimiseks, salvestussĂŒsteemi ja raportite genereerimise sĂŒsteemi. EessĂ”nas oli jĂ€lgimine juba olemas, jĂ€i vaid lisada meetrikad, ennustamismoodul ja luua uusi raporteid. Selle lahenduse toetab vĂ€line alltöövĂ”tja 'Tehnoserv', seega peamine töö projekti elluviimisel lasus nende spetsialistidel, kuid mudeli koostasime ise. Prognoosimisse sĂŒsteemi tegime Prophet'i baasil â see avatud toode on loodud Facebookis. See on lihtne kasutada ja integreerub hĂ”lpsasti meie olemasolevate integreeritud jĂ€lgimistööriistade ja Verticaga. Ăldiselt analĂŒĂŒsib sĂŒsteem koormuse graafikut ja teeb Fourier' seeriate pĂ”hjal selle ekstrapoleerimist. Samuti on vĂ”imalik lisada teatud koefitsiente pĂ€evade kaupa, mis on saadud meie mudelist. Meetriikaid vĂ”etakse ilma inimese sekkumiseta, kord nĂ€dalas prognoosi arvutatakse automaatselt ĂŒmber ja uued raportid saadetakse adressaatidele.Â
See lĂ€henemine tuvastab peamised tsĂŒklilisused, nĂ€iteks aastased, kuukesised, kvartali- ja nĂ€dalatsĂŒklid. Palga ja ettemaksete maksmine, puhkuste ja pĂŒhade ajad ning allahindlused - kĂ”ik see mĂ”jutab sĂŒsteemide seadmist. Selgus, et nĂ€iteks mĂ”ned tsĂŒklid kattuvad ĂŒksteisega ning pĂ”hikoormus (75%) sĂŒsteemidele tuleb Keskföderaalset Ăhendusest. Juriidilised ja fĂŒĂŒsilised isikud kĂ€ituvad erinevalt. Kui 'fĂŒĂŒsikute' koormus on nĂ€dalapĂ€evade vahel suhteliselt ĂŒhtlaselt jaotatud (see on vĂ€ga palju vĂ€ikseid tehinguid), siis ettevĂ”tete puhul langeb 99,9% tööajale, kusjuures tehingud vĂ”ivad olla lĂŒhikesed, kuid neid vĂ”ib töödelda ka mitu minutit vĂ”i isegi tundi.

Saadud andmete pĂ”hjal mÀÀratakse pikaajalised trendid. Uus sĂŒsteem on nĂ€idanud, et inimesed liiguvad massiliselt DBO-sse. See on kĂ”igile teada, kuid sellist ulatust me ei oodanud ja alguses ei uskunud me sellesse: panga kontorite kĂŒlastuste arv vĂ€heneb ÀÀrmiselt kiiresti, samas kui kaugtehingute arv kasvab sama kiiresti. Seega kasvab ka sĂŒsteemide koormus ja see kasvab tulevikus veelgi. Praegu prognoosime koormust kuni 2020. aasta veebruarini. Tavalisi pĂ€evi suudame prognoosida 3% veaulatusega, kuid tipptunde 10% veaulatusega. See on hea tulemus.
Pahupooled
Ilma raskusteta ei pÀÀsenud. Fourier' jadadega ekstrapolatsiooni mehhanism ei ĂŒleta nulli hĂ€sti â me teame, et nĂ€dalavahetustel genereerivad juriidilised isikud vĂ€he tehinguid, kuid prognoosimoodul annab kaugel nullist olevad vÀÀrtused. Me oleksime saanud need kunstlikult parandada, kuid meie meetod pole tugineda vĂ€ikestele lahendustele. Lisaks tuli lahendada probleem sĂŒsteemide allikast andmete valutuks kogumiseks. Regulaarne teabe kogumine nĂ”uab tĂ”siseid arvutusressursse, seega ehitasime kiireid vahemĂ€lu lahendusi, kasutades replikatsiooni ja saame Ă€rilisi andmeid juba replikate kaudu. Lisakoormuse puudumine peamise sĂŒsteemi puhul sellistes olukordades on takistus.
Uued vÀljakutsed
Otseselt seatud ĂŒlesanne tipukoormuse prognoosimiseks on lahendatud: panga ĂŒlekoormusega seotud tĂ”rkeid ei ole olnud alates maist kĂ€esolevast aastast, ja uus prognoosimisse sĂŒsteem on mĂ€nginud selles suurt rolli. Jah, seda on osutunud ebapiisavaks, ja nĂŒĂŒd soovib pank mĂ”ista, kui ohtlikud on tipphetked. Me vajame prognoose koormustest, kasutades koormustestimise mÔÔdikuid, ja see töötab juba umbes 30% kriitiliste sĂŒsteemide jaoks, teised on prognooside saamise protsessis. JĂ€rgmises etapis plaanime prognoosida sĂŒsteemide koormust mitte Ă€ritehingutes, vaid IT-infrastruktuuri tasemel, st liigume madalamale kihile. Lisaks peame tĂ€ielikult automatiseerima mÔÔdikute kogumise ja nende pĂ”hjal prognooside koostamise, et mitte tegeleda andmete eksportimisega. Selles ei ole midagi eriskummalist â me lihtsalt ristame monitooringu ja koormustestimise vastavalt parimatele rahvusvahelistele praktikatele.
Allikas: habr.com
