Monitoreo + pruebas de carga = predicción y sin fallas

El departamento de TI de VTB tuvo que lidiar varias veces con situaciones de emergencia en el funcionamiento de los sistemas, cuando la carga sobre ellos aumentó muchas veces. Por lo tanto, era necesario desarrollar y probar un modelo que pudiera predecir la carga máxima en sistemas críticos. Para ello, los especialistas en TI del banco establecieron un seguimiento, analizaron datos y aprendieron a automatizar previsiones. Le diremos en un breve artículo qué herramientas ayudaron a predecir la carga y si ayudaron a optimizar el trabajo.

Monitoreo + pruebas de carga = predicción y sin fallas

Los problemas con los servicios de alta carga surgen en casi todas las industrias, pero para el sector financiero son críticos. A la hora X todas las unidades de combate debían estar listas, por lo que era necesario saber de antemano qué podría pasar e incluso determinar el día en que saltaría la carga y qué sistemas la encontrarían. Los fallos deben abordarse y prevenirse, por lo que ni siquiera se habló de la necesidad de implementar un sistema de análisis predictivo. Era necesario modernizar los sistemas basados ​​en datos de seguimiento.

Análisis de rodillas

El proyecto de nómina es uno de los más sensibles en caso de fracaso. Es el más comprensible para realizar pronósticos, por eso decidimos comenzar con él. Debido a la alta conectividad, otros subsistemas, incluidos los servicios bancarios remotos (RBS), podrían experimentar problemas en momentos de máxima carga. Por ejemplo, los clientes que estaban encantados con el SMS sobre la recepción de dinero comenzaron a utilizarlo activamente. La carga podría saltar más de un orden de magnitud. 

El primer modelo de pronóstico se creó manualmente. Tomamos las cargas del último año y calculamos en qué días se esperan los picos máximos: por ejemplo, el 1, 15 y 25, así como los últimos días del mes. Este modelo requirió importantes costos laborales y no proporcionó un pronóstico preciso. Sin embargo, identificó cuellos de botella en los que era necesario agregar hardware y permitió optimizar el proceso de transferencia de dinero acordando con clientes ancla: para no dar salarios de una sola vez, las transacciones de diferentes regiones se espaciaron en el tiempo. Ahora los procesamos en partes que la infraestructura de TI del banco puede "masticar" sin fallar.

Tras recibir el primer resultado positivo, pasamos a automatizar la previsión: una docena más de áreas críticas esperaban su turno.

Enfoque integrado

VTB ha implementado un sistema de seguimiento de MicroFocus. De allí tomamos la recopilación de datos para pronósticos, un sistema de almacenamiento y un sistema de informes. De hecho, el monitoreo ya estaba implementado, solo faltaba agregar métricas, un módulo de predicción y crear nuevos informes. Esta decisión cuenta con el apoyo del contratista externo Technoserv, por lo que el trabajo principal de implementación del proyecto recayó en sus especialistas, pero el modelo lo construimos nosotros mismos. El sistema de pronóstico se creó en base a Prophet, un producto de código abierto desarrollado por Facebook. Es fácil de usar y se integra fácilmente con nuestras herramientas de monitoreo integradas instaladas y con Vertica. A grandes rasgos, el sistema analiza el gráfico de carga y lo extrapola basándose en series de Fourier. También es posible sumar ciertos coeficientes por día, tomados de nuestro modelo. Las métricas se toman sin intervención humana, el pronóstico se recalcula automáticamente una vez por semana y se envían nuevos informes a los destinatarios. 

Este enfoque identifica los principales ciclos, por ejemplo, anual, mensual, trimestral y semanal. Pagos de salarios y anticipos, períodos de vacaciones, feriados y ventas: todo esto afecta la cantidad de llamadas a los sistemas. Resultó, por ejemplo, que algunos ciclos se superponen y la carga principal (75%) de los sistemas proviene del Distrito Federal Central. Las personas jurídicas y las personas físicas se comportan de manera diferente. Si la carga de los "físicos" se distribuye de manera relativamente uniforme entre los días de la semana (se trata de muchas transacciones pequeñas), entonces, para las empresas, el 99,9% se gasta en horas de trabajo y las transacciones pueden ser cortas o procesarse en varios minutos o incluso horas.

Monitoreo + pruebas de carga = predicción y sin fallas

A partir de los datos obtenidos se determinan las tendencias a largo plazo. El nuevo sistema ha revelado que la gente está recurriendo en masa a los servicios bancarios a distancia. Todo el mundo lo sabe, pero no esperábamos tal escala y al principio no creíamos en ella: el número de llamadas a las oficinas bancarias está disminuyendo extremadamente rápido y el número de transacciones remotas está creciendo exactamente en la misma cantidad. En consecuencia, la carga sobre los sistemas también está creciendo y seguirá creciendo. Ahora estamos pronosticando la carga hasta febrero de 2020. Los días normales se pueden predecir con un error del 3% y los días pico con un error del 10%. Este es un buen resultado.

Trampas

Como de costumbre, esto no estuvo exento de dificultades. El mecanismo de extrapolación que utiliza la serie de Fourier no cruza bien el cero: sabemos que las personas jurídicas generan pocas transacciones los fines de semana, pero el módulo de predicción produce valores que están lejos de cero. Fue posible corregirlos por la fuerza, pero las muletas no son nuestro método. Además, tuvimos que resolver el problema de recuperar datos de los sistemas fuente sin problemas. La recopilación regular de información requiere importantes recursos informáticos, por lo que creamos cachés rápidos mediante replicación y recibimos datos comerciales de las réplicas. En tales casos, la ausencia de carga adicional en los sistemas maestros es un requisito de bloqueo.

Nuevos retos

La sencilla tarea de predecir los picos quedó resuelta: desde mayo de este año no se han producido fallos en el banco por sobrecarga, y el nuevo sistema de previsión jugó un papel importante en ello. Sí, resultó que no fue suficiente y ahora el banco quiere comprender cuán peligrosos son los picos para él. Necesitamos predicciones utilizando métricas de pruebas de carga, y para aproximadamente el 30% de los sistemas críticos esto ya está funcionando, el resto está en proceso de obtener predicciones. En la siguiente etapa, vamos a predecir la carga en los sistemas no en las transacciones comerciales, sino en términos de infraestructura de TI, es decir, bajaremos una capa. Además, necesitamos automatizar completamente la recopilación de métricas y la construcción de pronósticos basados ​​en ellas, para no tener que lidiar con descargas. No tiene nada de sofisticado: simplemente estamos cruzando el monitoreo y las pruebas de carga de acuerdo con las mejores prácticas globales.

Fuente: habr.com

Añadir un comentario