Мониторинг + натоварвателно тестване = прогнозиране и отсъствие на забавяния

ИТ департаментът на ВТБ е срещал многократно неочаквани ситуации в работата на системите, когато натоварването им е нараствало многократно. Поради това се е появила необходимост от разработване и тестване на модел, който да предсказва пиковото натоварване на критичните системи. За целта ИТ специалистите на банката са настроили мониторинг, анализирали са данните и са научили как да автоматизират прогнозите. Какви инструменти помогнаха за прогнозиране на натоварването и успяха ли с тяхна помощ да оптимизират работата, ще разкажем в кратка статия.

Мониторинг + натоварвателно тестване = прогнозиране и отсъствие на забавяния

Проблемите с високо натоварените услуги са почти навсякъде, но в сферата на финансите те са критични. По време на час X всички бойни единици трябва да са готови, затова е било нужно предварително да се знае какво може да се случи и дори да се определи денят, в който натоварването ще скочи, и кои системи ще се сблъскат с него. Нужно е да се борим с проблемите и да ги предотвратяваме, затова необходимостта от въвеждане на система за прогнозна аналитика дори не е била обсъждана. Беше необходимо да се модернизират системите на базата на данните от мониторинга.

Аналитика на коляно

Заплатният проект е един от най-чувствителните в случай на срив. Той е и най-разбираем за прогнозиране, затова решихме да започнем с него. Поради висока свързаност, в моментите на пикови натоварвания, и други подсистеми можеха да изпитват проблеми, включително дистанционното банково обслужване (ДБО). Например, клиентите, развълнувани от SMS за постъпване на средства, започваха активно да ги използват. В това време натоварването можеше да се увеличава повече от порядък. 

Първият модел за прогноза беше създаден ръчно. Ние взехме извлечение за последната година и изчислихме в кои дни се очакват максимални пикове: например, на 1-ви, 15-ти и 25-ти, както и в последните дни от месеца. Този модел изискваше сериозни трудозатрати и не даваше точна прогноза. Въпреки това той откри тясно места, където трябваше да се добави "желязо", и позволи да се оптимизира процеса на превеждане на пари, като се договорим с ключови клиенти: за да не се изплаща заплата "успоредно", транзакциите от различни региони бяха разпределени по време. Сега ги обработваме на части, които ИТ инфраструктурата на банката е способна да "обработва" без сривове.

След получаването на първия положителен резултат, преминахме към автоматизация на прогнозите. Още около десет критични участъка чакаха своя ред.

Комплексен подход

В ВТБ внедриха система за мониторинг на компанията MicroFocus. Оттам взехме данните за прогнозиране, системата за съхранение и системата за генериране на отчети. По същество мониторингът вече съществуваше, оставаше само да добавим метрики, модул за предсказание и да създадем нови отчети. Тази услуга се поддържа от външния изпълнител „Техносерв“, така че основните работи по реализирането на проекта легнаха на техните специалисти, но модела изградихме сами. Системата за прогнозиране е изградена въз основа на Prophet — този отворен продукт е разработен във Facebook. Той е лесен за ползване и се интегрира бързо с установените у нас средства за комплексен мониторинг и Vertica. Грубо казано, системата анализира графика на натоварването и на базата на Фуриеви ряди извършва неговата екстраполация. Съществува също така възможност да добавяме определени коефициенти по дни, извлечени от нашия модел. Метриките се извличат без участие на човек, веднъж седмично прогнозата автоматично се преработва, новите отчети се разпращат на получателите. 

Такъв подход идентифицира основните цикличности, например годишни, месечни, тримесечни и седмични. Изплатата на заплати и аванси, периодите на отпуски, празниците и разпродажбите — всичко това влияе на броя на запитванията към системите. Например, установи се, че някои цикли се наслагват един върху друг, а основната натовареност (75%) на системите идва от Централния федерален окръг. Юридическите и физическите лица се държат различно. Докато натоварването от „физиците“ е сравнително равномерно разпределено през седмицата (това е много малки транзакции), при фирмите 99,9% от натоварването пада в работно време, като транзакциите могат да бъдат кратки, но и да се обработват в рамките на няколко минути или дори часове.

Мониторинг + натоварвателно тестване = прогнозиране и отсъствие на забавяния

На основание на получените данни се определят дългосрочни тенденции. Новата система показа, че хората масово преминават към дистанционно банково обслужване. Всички го знаят, но не очаквахме такъв мащаб и първоначално не му вярвахме: броят на обращението в офисите на банката нараства изключително бързо и точно в толкова нараства и броят на дистанционните транзакции. Следователно натоварването на системите също нараства и ще продължава да нараства. Сега прогнозираме натоварването до февруари 2020 година. Нормалните дни можем да предсказваме с грешка от 3%, а пиковите — с грешка от 10%. Това е добър резултат.

Подводни камъни

Без трудности, както обикновено, не минахме. Механизмът на екстраполация с използване на Фуриеви редици трудно преминава през нула — знаем, че в почивните дни юридическите лица генерират малко транзакции, но моделът за предсказване издава стойности, далеч от нула. Можеше да ги коригираме принудително, но подобни решения не са наш метод. Освен това трябваше да решим проблема с безболезненото извличане на данни от системите източници. Редовното събиране на информация изисква сериозни изчислителни ресурси, затова изградихме бързи кешове с използване на репликация, получаваме бизнес данни вече от репликите. Липсата на допълнително натоварване на основните системи в такива случаи е блокиращо изискване.

Нови предизвикателства

Поставената задача за предсказване на пикове беше решена: свързани с претоварване сривове в банката нямаше от май тази година и новата система за прогнозиране изигра важна роля в това. Да, оказа се недостатъчна и сега банката иска да разбере, колко опасни са за нея тези пикове. Нуждаем се от прогнози, използващи метрики от натоварвателни тестове, и приблизително за 30% от критичните системи това вече работи, а останалите са в процес на получаване на прогнози. На следващия етап планираме да предсказваме натоварването на системите не в бизнес транзакции, а в термини на ИТ инфраструктурата, т.е. ще се спуснем на слой по-долу. Освен това трябва напълно да автоматизираме събирането на метрики и изграждането на прогнози на тяхна основа, за да не се занимаваме с извеждане на данни. В това няма нищо изключително — просто комбинираме мониторинг и натоварвателно тестване в съответствие с най-добрите световни практики.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster