Monitoring + testowanie obciążenia = przewidywanie i brak awarii

Dział IT VTB kilkukrotnie musiał mierzyć się z sytuacjami awaryjnymi w działaniu systemów, gdy ich obciążenie wzrosło wielokrotnie. Dlatego zaistniała potrzeba opracowania i przetestowania modelu, który przewidywałby szczytowe obciążenie systemów krytycznych. W tym celu informatycy banku uruchomili monitoring, analizowali dane i nauczyli się automatyzować prognozy. W krótkim artykule opowiemy, które narzędzia pomogły przewidzieć obciążenie i czy pomogły zoptymalizować pracę.

Monitoring + testowanie obciążenia = przewidywanie i brak awarii

Problemy z usługami o dużym obciążeniu pojawiają się niemal we wszystkich branżach, jednak dla sektora finansowego są one krytyczne. O godzinie X wszystkie jednostki bojowe muszą być w gotowości, dlatego należało z wyprzedzeniem wiedzieć, co może się wydarzyć, a nawet określić dzień, w którym nastąpi skok ładunku i które systemy go spotkają. Należy eliminować awarie i im zapobiegać, dlatego nawet nie dyskutowano o potrzebie wdrożenia systemu analizy predykcyjnej. Konieczna była modernizacja systemów bazujących na danych monitoringowych.

Analityka na kolanach

Projekt płacowy jest jednym z najbardziej wrażliwych na wypadek niepowodzenia. Jest to najbardziej zrozumiałe w przypadku prognozowania, dlatego postanowiliśmy od niego zacząć. Ze względu na wysoką łączność inne podsystemy, w tym usługi bankowości zdalnej (RBS), mogą doświadczać problemów w okresach szczytowego obciążenia. Przykładowo klienci, którzy byli zachwyceni SMS-em o otrzymaniu pieniędzy, zaczęli z niego aktywnie korzystać. Obciążenie może wzrosnąć o więcej niż rząd wielkości. 

Pierwszy model prognostyczny został stworzony ręcznie. Wzięliśmy przesłane dane za ostatni rok i obliczyliśmy, w które dni spodziewane są maksymalne szczyty: na przykład 1, 15 i 25, a także w ostatnie dni miesiąca. Model ten wymagał znacznych kosztów pracy i nie zapewniał dokładnej prognozy. Niemniej jednak zidentyfikował wąskie gardła, w których konieczne było dodanie sprzętu, i umożliwił optymalizację procesu przesyłania pieniędzy, uzgadniając z klientami głównymi: aby nie podawać wynagrodzeń za jednym zamachem, transakcje z różnych regionów zostały rozłożone w czasie. Teraz przetwarzamy je w częściach, które infrastruktura informatyczna banku jest w stanie bezawaryjnie „przeżuć”.

Po uzyskaniu pierwszego pozytywnego wyniku przystąpiliśmy do automatyzacji prognozowania, na swoją kolej czekało kilkanaście kolejnych, krytycznych obszarów.

Zintegrowane podejście

VTB wdrożyło system monitoringu firmy MicroFocus. Stamtąd wzięliśmy gromadzenie danych do prognozowania, system przechowywania i system raportowania. Tak naprawdę monitoring już był, pozostało tylko dodać metryki, moduł predykcji i stworzyć nowe raporty. Decyzję tę popiera zewnętrzny wykonawca Technoserv, dlatego główna praca przy realizacji projektu spadła na jego specjalistów, ale model zbudowaliśmy sami. System prognostyczny został wykonany w oparciu o Prophet, produkt open source opracowany przez Facebook. Jest łatwy w użyciu i łatwo integruje się z naszymi zainstalowanymi zintegrowanymi narzędziami monitorującymi i Verticą. Z grubsza mówiąc, system analizuje wykres obciążenia i ekstrapoluje go na podstawie szeregu Fouriera. Możliwe jest także dodanie określonych współczynników dziennych, zaczerpniętych z naszego modelu. Metryki pobierane są bez interwencji człowieka, prognoza jest automatycznie przeliczana raz w tygodniu, a do odbiorców wysyłane są nowe raporty. 

Podejście to identyfikuje główne cykliczności, na przykład roczną, miesięczną, kwartalną i tygodniową. Wypłaty wynagrodzeń i zaliczek, urlopy, święta i wyprzedaże – to wszystko wpływa na liczbę połączeń do systemów. Okazało się np., że niektóre cykle nakładają się na siebie, a główne obciążenie (75%) systemów pochodzi z Centralnego Okręgu Federalnego. Osoby prawne i osoby fizyczne zachowują się inaczej. Jeśli obciążenie „fizyków” rozkłada się stosunkowo równomiernie w dniach tygodnia (jest to dużo małych transakcji), to w przypadku firm 99,9% przypada na godziny pracy, a transakcje mogą być krótkie lub można je przetworzyć w ciągu kilku minut, a nawet godzin.

Monitoring + testowanie obciążenia = przewidywanie i brak awarii

Na podstawie uzyskanych danych wyznaczane są długoterminowe trendy. Nowy system pokazał, że ludzie masowo przechodzą do zdalnych usług bankowych. Wszyscy o tym wiedzą, ale nie spodziewaliśmy się takiej skali i początkowo w nią nie wierzyliśmy: niezwykle szybko spada liczba połączeń do placówek bankowych, a dokładnie o tyle samo rośnie liczba transakcji zdalnych. W związku z tym obciążenie systemów również rośnie i będzie nadal rosło. Obecnie prognozujemy obciążenie do lutego 2020 r. Dni normalne można przewidzieć z błędem 3%, a dni szczytowe z błędem 10%. To dobry wynik.

Pułapki

Jak zwykle nie obyło się bez trudności. Mechanizm ekstrapolacji wykorzystujący szeregi Fouriera słabo przechodzi przez zero – wiemy, że osoby prawne generują niewiele transakcji w weekendy, ale moduł predykcyjny generuje wartości dalekie od zera. Można było je skorygować na siłę, ale kule nie są naszą metodą. Dodatkowo musieliśmy rozwiązać problem bezbolesnego odzyskiwania danych z systemów źródłowych. Regularne zbieranie informacji wymaga poważnych zasobów obliczeniowych, dlatego zbudowaliśmy szybkie pamięci podręczne wykorzystując replikację i otrzymujemy dane biznesowe z replik. Brak dodatkowego obciążenia systemów nadrzędnych jest w takich przypadkach wymogiem blokującym.

Nowe wyzwania

Proste zadanie przewidywania szczytów zostało rozwiązane: od maja tego roku w banku nie było żadnych awarii związanych z przeciążeniami, a nowy system prognozowania odegrał w tym ważną rolę. Tak, okazało się, że to nie wystarczy, a teraz bank chce zrozumieć, jak niebezpieczne są dla niego szczyty. Potrzebujemy prognoz wykorzystujących metryki z testów obciążenia, a w przypadku około 30% krytycznych systemów to już działa, reszta jest w trakcie uzyskiwania prognoz. W kolejnym etapie będziemy przewidywać obciążenie systemów nie w transakcjach biznesowych, ale pod kątem infrastruktury IT, czyli zejdziemy o jedną warstwę w dół. Dodatkowo musimy w pełni zautomatyzować zbieranie metryk i konstruowanie na ich podstawie prognoz, aby nie zajmować się pobraniami. Nie ma w tym nic nadzwyczajnego - po prostu krzyżujemy monitorowanie i testy obciążeniowe zgodnie z najlepszymi światowymi praktykami.

Źródło: www.habr.com

Dodaj komentarz