Le département IT de VTB a dû faire face à plusieurs situations imprévues dans le fonctionnement des systèmes, lorsque la charge sur eux augmentait considérablement. Il est donc devenu nécessaire de développer et de tester un modèle capable de prédire la charge de pointe sur les systèmes critiques. Pour cela, les experts IT de la banque ont configuré une surveillance, analysé les données et appris à automatiser les prévisions. Quels outils ont aidé à prédire la charge et ont-ils réussi à optimiser le fonctionnement grâce à eux, nous le raconterons dans un bref article.

Les problèmes avec les services fortement sollicités surviennent dans pratiquement tous les secteurs, mais ils sont critiques dans le domaine financier. À l'heure H, toutes les unités opérationnelles doivent être prêtes, c'est pourquoi il était nécessaire de savoir à l'avance ce qui pourrait arriver, et même de déterminer le jour où la charge augmenterait et quels systèmes y seraient confrontés. Il faut lutter contre les pannes et les prévenir, c'est pourquoi la nécessité de mettre en place un système d'analyse prédictive n'a même pas été débattue. Il fallait moderniser les systèmes sur la base des données de surveillance.
Analyse sur le pouce
Le projet de paie est l'un des plus sensibles en cas de panne. Il est également le plus compréhensible pour la prévision, c'est pourquoi nous avons décidé de commencer par lui. En raison de la forte interconnexion, d'autres sous-systèmes, y compris le service bancaire à distance (SBD), pouvaient également rencontrer des problèmes lors des pics de charge. Par exemple, les clients, ravis de recevoir des SMS concernant le versement d'argent, commençaient à les utiliser activement. La charge pouvait alors augmenter de façon exponentielle.
Nous avons d'abord créé le premier modèle de prévision manuellement. Nous avons pris les données d'une extraction sur l'année écoulée et avons calculé quels jours connaîtraient les pics maximaux : par exemple, les 1er, 15 et 25, ainsi que les derniers jours du mois. Ce modèle nécessitait un effort considérable et ne fournissait pas de prévisions précises. Néanmoins, il a permis d'identifier des goulets d'étranglement où il fallait ajouter des ressources matérielles, et a permis d'optimiser le processus de versement des salaires, en nous mettant d'accord avec certains clients clés : pour éviter de verser les salaires en une seule fois, les transactions provenant de différentes régions ont été échelonnées dans le temps. Maintenant, nous les traitons par phases, que l'infrastructure IT de la banque est capable de gérer sans interruptions.
Après avoir obtenu le premier résultat positif, nous sommes passés à l'automatisation des prévisions. Une dizaine de zones critiques attendaient leur tour.
Approche globale
Chez VTB, nous avons mis en place un système de surveillance de l'entreprise MicroFocus. De là, nous avons pris la collecte de données pour les prévisions, le système de stockage et le système de génération de rapports. En gros, la surveillance existait déjà, il ne restait qu'à ajouter des métriques, un module de prédiction et à créer de nouveaux rapports. Ce système est soutenu par un prestataire externe, « Technoserv », donc la plupart des travaux de mise en œuvre du projet ont été confiés à ses spécialistes, mais nous avons construit le modèle nous-mêmes. Nous avons créé le système de prévision basé sur Prophet — ce produit open-source a été développé par Facebook. Il est simple à utiliser et s'intègre facilement avec nos outils de surveillance et Vertica déjà en place. En termes simples, le système analyse le graphique de charge et fait son extrapolation sur la base des séries de Fourier. Il est également possible d'ajouter certains coefficients par jour, extraits de notre modèle. Les métriques sont recueillies sans intervention humaine, une fois par semaine la prévision est automatiquement recalculée, de nouveaux rapports sont envoyés aux destinataires.
Cette approche révèle les principales cyclicités, telles que les annuelles, mensuelles, trimestrielles et hebdomadaires. Le versement des salaires et des avances, les périodes de congés, les fêtes et les soldes — tout cela influence le nombre de demandes aux systèmes. Il a été constaté, par exemple, que certains cycles se superposent, et que la charge principale (75 %) sur les systèmes provient du District fédéral central. Les personnes morales et physiques se comportent différemment. Si la charge des « physiques » est relativement uniformément répartie sur les jours de la semaine (ce qui représente beaucoup de petites transactions), pour les entreprises, 99,9 % se concentrent sur les heures de travail, et les transactions peuvent être courtes ou prendre plusieurs minutes voire des heures.

Sur la base des données reçues, des tendances à long terme sont identifiées. Le nouveau système a révélé que les gens se tournent massivement vers la DBO. C'est bien connu, mais nous ne nous attendions pas à une telle ampleur et au début, nous n'y avons pas cru : le nombre de visites dans les agences bancaires diminue extrêmement rapidement, et il en va de même pour le nombre de transactions à distance qui augmente tout aussi vite. Par conséquent, la charge sur les systèmes augmente également et continuera d'augmenter. Actuellement, nous prévoyons la charge jusqu'en février 2020. Les jours normaux peuvent être prédits avec une précision de 3 %, tandis que les jours de pointe avec une précision de 10 %. C'est un bon résultat.
Les pièges
Sans difficultés, comme c'est souvent le cas, cela n'a pas été possible. Le mécanisme d'extrapolation utilisant les séries de Fourier passe mal par zéro - nous savons que pendant le week-end, les personnes morales génèrent peu de transactions, mais le module de prédiction fournit des valeurs loin de zéro. On aurait pu les corriger de force, mais les solutions temporaires ne sont pas notre méthode. De plus, nous avons dû résoudre le problème de l'extraction indolore de données à partir des systèmes sources. La collecte régulière d'informations nécessite des ressources informatiques sérieuses, c'est pourquoi nous avons construit des caches rapides en utilisant la réplication, obtenant ainsi des données commerciales à partir des répliques. L'absence de charge supplémentaire sur les systèmes principaux dans de tels cas est une exigence bloquante.
Nouveaux défis
La tâche directe de prédiction des pics a été résolue : il n'y a pas eu d'échecs liés à la surcharge dans la banque depuis mai de cette année, et le nouveau système de prévision a joué un rôle non négligeable dans cela. Oui, il s'est avéré insuffisant, et maintenant la banque souhaite comprendre à quel point les pics sont dangereux pour elle. Nous avons besoin de prévisions utilisant des métriques de tests de charge, et cela fonctionne déjà pour environ 30 % des systèmes critiques, les autres étant en cours d'obtention de prévisions. À l'étape suivante, nous prévoyons de prédire la charge sur les systèmes non pas en termes de transactions commerciales, mais en termes d'infrastructure informatique, c'est-à-dire en descendant d'un niveau. De plus, nous devons automatiser complètement la collecte de métriques et l'établissement de prévisions sur cette base, afin de ne pas avoir à gérer des extractions. Il n'y a rien d'exceptionnel à cela - nous croisons simplement la surveillance et les tests de charge selon les meilleures pratiques mondiales.
Source : habr.com
