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

Проблемите с високо натоварените услуги възникват почти във всички индустрии, но за финансовия сектор те са критични. В часа Х всички бойни единици трябва да са нащрек, затова беше необходимо да се знае предварително какво може да се случи и дори да се определи денят, в който натоварването ще нарасне, и кои системи ще се сблъскат с него. Необходимо е да се борим с неизправности и да ги предотвратяваме, затова нуждата от внедряване на система за прогностична аналитика дори не подлежи на обсъждане. Беше необходимо да се модернизират системите въз основа на данните от мониторинга.
Анализ на коляно
Зарплатният проект е един от най-чувствителните в случай на провал. Той е и най-разбираем за прогнозиране, затова решихме да започнем с него. Поради високата свързаност в моменти на пиково натоварване, и други подсистеми, включително дистанционно банково обслужване (ДБО), могат да имат проблеми. Например, клиентите, зарадвани от SMS за постъпили средства, започват активно да ги използват. В такъв момент натоварването може да нарасне повече от порядък.
Първият модел за предсказване беше създаден ръчно. Взехме информацията за последната година и изчислихме, в кои дни се очакват максимални пикове: например, на 1-во, 15-то и 25-то число, както и в последните дни на месеца. Този модел изискваше значителни трудови ресурси и не предоставяше точна прогноза. Независимо от това, той разкриваше слабите места, където трябваше да се добави "желязо", и позволи оптимизиране на процеса на превод на средства, като се уговорихме с основни клиенти: за да не се изплащат заплати "в един замах", транзакциите от различни региони се разпределят във времето. Сега ги обработваме на части, които ИТ инфраструктурата на банката може да "преживее" без сривове.
След като получихме първия положителен резултат, преминахме към автоматизация на прогнозиране. Други десет критични участъка чакаха своя ред.
Комплексен подход
В ВТБ внедриха система за мониторинг от MicroFocus. От там взехме данни за прогнозиране, система за съхранение и система за генериране на отчети. По същество мониторингът вече съществуваше, остана само да добавим метрики, модул за предсказване и да създадем нови отчети. Това решение се поддържа от външния изпълнител „Техносерв“, затова основните работи по реализацията на проекта легнаха на техните специалисти, но моделът го изградихме сами. Системата за прогнозиране е изградена на базата на Prophet — този отворен продукт е разработен в Facebook. Той е лесен за използване и лесно се интегрира с инсталираните у нас средства за комплексен мониторинг и Vertica. Инак, системата анализира графика на натоварването и на базата на Фуриеви редици прави екстраполация. Има и възможност да добавяме някои коефициенти за дни, взети от нашия модел. Метриките се извеждат без човешко участие, веднъж седмично прогнозата се пресмята автоматично, новите отчети се разпращат до адресатите.
Такъв подход разкрива основните цикличности, например годишни, месечни, тримесечни и седмични. Изплащането на заплати и аванси, периоди на отпуски, празници и разпродажби — всичко това влияе на броя на запитванията към системите. Установи се, например, че някои цикли се наложат един на друг, а основната натовареност (75%) на системите идва от Централния федерален окръг. Юридическите и физическите лица се държат различно. Ако натоварването от

На базата на получените данни се определят дългосрочните тенденции. Новата система разкри, че хората масово преминават към дистанционно банкиране. Това е известно на всички, но не очаквахме такъв мащаб и в началото не повярвахме: броят на посещенията в банковите офиси рязко намалява, а точно толкова нараства броят на дистанционните транзакции. Съответно, натоварването на системите също нараства и ще продължава да нараства. В момента прогнозираме натоварването до февруари 2020 година. Обикновените дни можем да предсказваме с грешка от 3%, а пиковите — с грешка от 10%. Това е добър резултат.
Подводни камъни
Без трудности, както обикновено, не се разминало. Механизмът на екстраполация с използване на Фуриеви редове слабо преминава през нулата — знаем, че в почивните дни юридическите лица генерират малко транзакции, но модулът за предсказване дава стойности, далеч от нула. Можеше да се коригират принудително, но импровизациите не са наш метод. Освен това трябваше да решим проблема с безболезнено извличане на данни от източниковите системи. Редовното събиране на информация изисква сериозни изчислителни ресурси, затова построихме бързи кешове с използване на репликация, като получаваме бизнес-данните вече от репликите. Липсата на допълнително натоварване на мастър-системите в такива случаи е ключово изискване.
Новите предизвикателства
Задачата за предсказване на пиковете бе решена: свързани със затруднения в банката аварии не е имало от май тази година, а новата система за прогнозиране изигра важна роля в това. Да, оказа се недостатъчна и сега банката иска да разбере колко опасни са пиковете за нея. Нуждаем се от прогнози, използващи метрики от натоварващо тестване, и за около 30% от критичните системи това вече работи, останалите са в процес на получаване на прогнози. В следващия етап възнамеряваме да прогнозираме натоварването на системите не в бизнес транзакции, а в термини на ИТ инфраструктура, т.е. ще слезем на по-долен слой. Освен това трябва да автоматизираме напълно събирането на метрики и изграждането на прогнози на тяхна база, за да не се занимаваме с извеждане на данни. Няма нищо забележително в това — просто съчетаем мониторинга и натоварващото тестване в съответствие с най-добрите световни практики.
Източник: habr.com
