Monitoring + terheléspróbázás = előrejelzés és leállások hiánya

A VTB IT osztályának többször is szokatlan helyzetekkel kellett szembenéznie a rendszerek működése során, amikor a terhelés többszörösére nőtt. Ezért szükségessé vált egy olyan modell kidolgozása és kipróbálása, amely előre jelezhetné a csúcs terhelést a kritikus rendszerekre. Ehhez a bank IT szakemberei beállították a monitorozást, elemezték az adatokat, és megtanulták automatizálni a jóslatokat. Milyen eszközök segítettek a terhelés előrejelzésében, és sikerült-e azokat optimalizálni, arról egy rövid cikkben számolunk be.

Monitoring + terheléspróbázás = előrejelzés és leállások hiánya

A magas terhelésű szolgáltatások problémái gyakorlatilag minden iparágban felmerülnek, de a pénzügyi szektor számára kritikusak. Az X órában minden harci egységnek késznek kell lennie, ezért előre tudni kellett, hogy mi történhet, sőt meg kellett határozni a napot is, amikor a terhelés megemelkedik, és hogy mely rendszerek fognak vele találkozni. A zavarokat kezelni és megelőzni kell, ezért a prognosztikai analitikai rendszer bevezetésének szükségessége nem is volt vitás. Modernizálni kellett a rendszereket a monitorozás adatai alapján.

Kézi analitika

A bérszámfejtési projekt az egyik legérzékenyebb eset zavar fellépésekor. Ez a legjobban előrejelezhető is, ezért ezzel kezdtük. A magas összefüggés miatt csúcs terheléskor más alrendszerek, például a távbanki szolgáltatás (DBO) problémákat tapasztalhattak. Például a kliensek, akik SMS-t kaptak a pénz beérkezéséről, aktívan kezdték használni azt. A terhelés ilyenkor több mint tízszeresére nőhetett. 

Az első modellt manuálisan készítettük el. Az elmúlt egy év adatait vettük alapul, és kiszámoltuk, hogy mely napokon várhatóak a legmagasabb csúcsok: például hónap 1-én, 15-én és 25-én, valamint a hónap utolsó napjaiban. Ez a modell komoly munkát igényelt, és nem adott pontos előrejelzést. Ennek ellenére feltárta azokat a szűk keresztmetszeteket, ahol bővíteni kellett a "vasat", és lehetővé tette a pénzátutalási folyamat optimalizálását azzal, hogy megállapodtunk a kulcsfontosságú ügyfelekkel: hogy a bérkifizetéseket ne egyszerre végezzük, a különböző régiókból érkező tranzakciókat időben szétosztottuk. Most már részletekben dolgozzuk fel őket, amelyeket a bank IT infrastruktúrája "megemészthet" zökkenők nélkül.

Miután megkaptuk az első pozitív eredményt, áttértünk a jóslás automatizálására. Még egy tucat kritikus terület várakozott a sorára.

Komplex megközelítés

A VTB-nél bevezették a MicroFocus vállalati monitorozó rendszerét. Onnan vettük az adatgyűjtést a jósláshoz, a tárolási rendszert és a jelentéskészítő rendszert. A lényeg az volt, hogy a monitorozás már megvolt, csak annyit kellett hozzáadni, hogy kiépítsük a metrikákat, a jósló modult, és új jelentéseket készítsünk. Ezt a megoldást egy külső beszállító, a "Technoserv" támogatja, így a projekt megvalósításának főbb feladatai az ő szakembereikre hárultak, de a modellt mi magunk építettük fel. A jósló rendszert a Prophet alapján készítettük — ez az nyílt forráskódú termék a Facebook fejlesztése. Könnyen használható, és könnyen integrálható a meglévő vállalati monitorozó rendszereinkkel és a Verticával. Nagyjából a rendszer elemzi a terhelési grafikont, és a Fourier-sorozatok alapján extrapolálja azt. Emellett lehetőség van arra is, hogy bizonyos napokhoz figyelembe vegyünk koefficiens értékeket, amelyek a modellünkből származnak. A metrikákat emberi beavatkozás nélkül rögzítjük, hetente egyszer a jóslás automatikusan újraszámolódik, az új jelentések elküldésre kerülnek az érintetteknek. 

Ez a megközelítés feltárja a fő ciklusokat, például az éves, havi, negyedéves és heti ciklusokat. A bérkifizetések és előlegek, a szabadságok időszakai, az ünnepek és akciók — mindez befolyásolja a rendszerekre való hivatkozások számát. Például kiderült, hogy egyes ciklusok átfedik egymást, és a rendszerekre nehezedő fő terhelést a Központi Szövetségi Körzet adja (75%-ot). A jogi és természetes személyek viselkedése eltérő. Míg a "fizikai" személyek terhelése viszonylag egyenletesen oszlik el a hét napjai között (ez nagyon sok kis tranzakciót jelent), a vállalatok esetében 99,9%-uk a munkaidőben történik, és míg a tranzakciók lehetnek rövidek, előfordul, hogy több percig, vagy akár órákig tartanak.

Monitoring + terheléspróbázás = előrejelzés és leállások hiánya

A beérkezett adatok alapján hosszú távú trendek határozhatók meg. Az új rendszer felfedte, hogy az emberek tömegesen áttérnek a digitális banki szolgáltatásokra. Mindenki tudja erről, de ennyire széleskörű hatásra nem számítottunk, és kezdetben nem is hittünk benne: az ügyfélforgalom az banki irodákban rendkívül gyorsan csökken, és éppen ennyivel nő a távoli tranzakciók száma. Ebből következően a rendszerek terhelése is nő, és valószínűleg tovább fog nőni. Jelenleg 2020 februárjáig előrejelzünk terhelést. A normális napokat 3%-os hibahatáron belül sikerül megjósolni, a csúcsidőszakokat pedig 10%-os hibahatáron belül. Ez jó eredmény.

Csapdák

Szorongások nélkül, ahogy az lenni szokott, nem telt el az idő. A Fourier-sorozatok használatával történő extrapolációs mechanizmus rosszul működik, amikor a nullához közelítünk – tudjuk, hogy a hétvégén a jogi személyek kevés tranzakciót bonyolítanak le, de a predikciós modul távoli nullától eltérő értékeket ad ki. Kényszerrel lehetett volna korrekciókat végezni, de ez nem a mi módszerünk. Emellett meg kellett oldanunk az adatgyűjtés problémáját a forrássystemektől. A rendszeres adatgyűjtés komoly számítási erőforrásokat igényel, ezért gyors cache-eket építettünk replikációval, és már üzleti adatokat kapunk a replikákból. Az, hogy a mester rendszerekre ne helyközi terhelést rójunk, ilyen esetekben kötelező követelmény.

Új kihívások

A csúcsok előrejelzésére vonatkozó feladatot sikerült megoldani: a bankban május óta nem voltak a túlterheléssel kapcsolatos meghibásodások, és az új előrejelző rendszer jelentős szerepet játszott ebben. Igen, ez nem volt elegendő, és most a bank szeretné megérteni, mennyire veszélyesek számára a csúcsok. Szükségünk van előrejelzésekre a terheléses tesztelés adatai alapján, és körülbelül 30% kritikus rendszer már működik, a többi még az előrejelzések beszerzésének folyamatában van. A következő lépésben a rendszerek terhelését nem az üzleti tranzakciókban, hanem az IT-infrastruktúra szintjén kívánjuk előrejelezni, azaz egy szinttel lejjebb süllyedünk. Ezen kívül teljesen automatizálnunk kell a metrikák gyűjtését és az azok alapján készült előrejelzések felépítését, hogy ne kelljen bajlódni az adatok kiadásával. Ebben nincs semmi különös – egyszerűen a monitorozást és a terheléses tesztelést ötvözzük a legjobb nemzetközi gyakorlatoknak megfelelően.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster