Departamentul IT de la VTB s-a confruntat de mai multe ori cu situații neprevăzute în activitatea sistemelor, atunci când încărcarea lor creștea de multiple ori. Astfel, a apărut nevoia de a dezvolta și testa un model care să prezică încărcarea maximă pe sistemele critice. În acest scop, specialiștii IT ai băncii au configurat monitorizarea, au analizat datele și au învățat să automatizeze prognozele. Ce instrumente au ajutat la prognozarea încărcării și dacă au reușit să optimizeze funcționarea, vom povesti într-un articol scurt.

Problemele cu serviciile cu încărcare mare apar practic în toate industriile, dar pentru domeniul financiar acestea sunt critice. În momentele X, toate unitățile operaționale trebuie să fie pregătite, ceea ce impune necesitatea de a ști dinainte ce se poate întâmpla și chiar de a determina ziua în care va crește încărcarea și ce sisteme vor fi afectate. Este nevoie să se lupte cu defecțiunile și să le prevină, așa că necesitatea implementării unui sistem de analiză predictivă nu a fost discutată. Era necesară modernizarea sistemelor pe baza datelor de monitorizare.
Analiza de zbor
Proiectul de salarii este unul dintre cele mai sensibile în caz de defecțiune. Este, de asemenea, cel mai ușor de prezis, așa că s-a decis să se înceapă cu el. Datorită legăturii strânse, în momentele de vârf, alte subsisteme, inclusiv serviciile bancare la distanță (DBO), puteau experimenta probleme. De exemplu, clienții, încântați de SMS-urile privind intrarea banilor, începeau să îi utilizeze activ. În acest caz, încărcarea putea crește cu mai mult de un ordin de mărime.
Primul model pentru prognoză a fost creat manual. Am luat extragerea pentru ultimul an și am calculat în ce zile se așteaptă vârfuri maxime: de exemplu, în zilele de 1, 15 și 25, precum și în ultimele zile ale lunii. Acest model a necesitat un efort serios și nu oferea o prognoză exactă. Cu toate acestea, a identificat zonele înguste unde era necesar să adăugăm „hardware” și a permis optimizarea procesului de transfer al banilor, negociind cu clienții ancore: pentru a nu plăti salariile „într-o singură tranșă”, tranzacțiile din diferite regiuni au fost desfășurate pe timp. Acum le procesăm în părți, pe care infrastructura IT a băncii le poate „prelucra” fără erori.
După ce am obținut primul rezultat pozitiv, am trecut la automatizarea prognozării. Aștepta rândul iar unsprezece zone critice.
Abordare complexă
În VTB a fost implementat un sistem de monitorizare de la MicroFocus. De acolo am preluat colectarea datelor pentru prognozare, sistemul de stocare și sistemul de generare a rapoartelor. Practic, monitorizarea exista deja, rămânea doar să adăugăm metrici, un modul de predicție și să creăm rapoarte noi. Această soluție este susținută de un contractor extern „Technoserv”, astfel că lucrările principale de implementare a proiectului au fost preluate de specialiștii lor, însă modelul l-am construit noi înșine. Sistemul de prognoză a fost realizat pe baza Prophet — acest produs open-source a fost dezvoltat de Facebook. Este ușor de utilizat și se integrează cu ușurință cu instrumentele noastre existente de monitorizare complexă și Vertica. În termeni generali, sistemul analizează graficul de încărcare și, pe baza seriilor Fourier, face extrapolarea acestuia. Există, de asemenea, posibilitatea de a adăuga anumite coeficiente pentru zile, extrase din modelul nostru. Metricile sunt preluate fără intervenția umană, o dată pe săptămână prognoza se recalculă automat, iar noile rapoarte sunt trimise destinatarilor.
Această abordare identifică principalele cicluri, cum ar fi cele anuale, lunare, trimestriale și săptămânale. Plățile salariilor și avansurilor, perioadele de concediu, sărbătorile și reducerile - toate acestea influențează numărul de solicitări către sisteme. S-a constatat, de exemplu, că anumite cicluri se suprapun, iar cea mai mare încărcare (75%) pe sisteme provine din Districtul Federal Central. Persoanele juridice și fizice se comportă diferit. În timp ce încărcarea venită de la „persoanele fizice” este relativ uniform distribuită pe zilele săptămânii (având multe tranzacții mici), în cazul companiilor, 99,9% din tranzacții se concentrează în timpul orelor de lucru, iar tranzacțiile pot fi scurte, dar pot dura și câteva minute sau chiar ore.

Pe baza datelor obținute sunt definite tendințele pe termen lung. Noua sistemă a scos la iveală că oamenii părăsesc masiv birourile fizice. Acest lucru este bine cunoscut, dar nu ne așteptam la o astfel de amploare și la început nu am crezut: numărul solicitărilor în birourile băncii scade extrem de rapid, iar în același timp, numărul tranzacțiilor la distanță crește exponențial. Astfel, încărcarea sistemelor crește și va continua să crească. Acum prognozăm încărcarea până în februarie 2020. Zilele normale se pot prezice cu o marjă de eroare de 3%, iar cele de vârf cu o marjă de eroare de 10%. Acesta este un rezultat bun.
Capcane
Fără dificultăți, ca de obicei, nu s-a putut. Mecanismul de extrapolare folosind seriile Fourier nu trece ușor prin zero - știm că în weekend persoanele juridice generează puține tranzacții, dar modul de predicție oferă valori departe de zero. Ar fi putut fi ajustate forțat, dar soluțiile de compromis nu sunt metoda noastră. În plus, a trebuit să rezolvăm problema extragerii fără durere a datelor din sistemele sursă. Colectarea regulată a informațiilor necesită resurse computaționale serioase, așa că am construit cache-uri rapide folosind replicarea, obținând datele de afaceri deja din replici. Lipsa unei încărcări suplimentare pe sistemele principale în aceste cazuri este o cerință blocantă.
Provocări noi
Sarcina pusă în față de a prezice vârfurile a fost rezolvată: nu au existat defecțiuni legate de suprasarcină în bancă din mai anul acesta, iar noul sistem de prognoză a avut un rol semnificativ în acest sens. Da, s-a dovedit insuficient, iar acum banca vrea să înțeleagă cât de periculoase sunt vârfurile pentru ea. Avem nevoie de prognoze folosind metrici din testarea de încărcare, iar pentru aproximativ 30% dintre sistemele critice, acest lucru funcționează deja, restul fiind în proces de obținere a prognozelor. În următoarea etapă, ne vom concentra pe prognozarea încărcărilor sistemelor nu în tranzacții de afaceri, ci în termeni de infrastructură IT, adică ne vom scufunda la un nivel inferior. În plus, trebuie să automatizăm complet colectarea metricilor și construirea prognozelor pe baza acestora, pentru a nu mai face exporturi manuale. Nu este nimic deosebit în aceasta — pur și simplu combinăm monitorizarea și testarea de încărcare conform celor mai bune practici din lume.
Sursa: habr.com
