Monitoreo + prueba de estrés = pronóstico y sin fallas

El departamento de TI de VTB tuvo que lidiar con situaciones de emergencia en los sistemas varias veces, cuando la carga sobre ellos aumentó muchas veces. Por lo tanto, se hizo necesario desarrollar y probar un modelo que predeciría la carga máxima en sistemas críticos. Para esto, los especialistas de TI del banco configuraron el monitoreo, analizaron los datos y aprendieron cómo automatizar los pronósticos. En un breve artículo, explicaremos qué herramientas ayudaron a predecir la carga y si fue posible optimizar el trabajo con su ayuda.



Los problemas con servicios altamente cargados surgen en casi todos los sectores, pero son críticos para el sector financiero. En la hora X, todas las unidades de combate deben estar listas y, por lo tanto, era necesario saber de antemano lo que podría suceder e incluso determinar el día en que la carga saltaría y qué sistemas la encontrarían. Las fallas deben ser combatidas y prevenidas, por lo que la necesidad de implementar un sistema de análisis predictivo ni siquiera se ha discutido. Era necesario actualizar los sistemas basados ​​en datos de monitoreo.

Analítica en la rodilla


Un proyecto de nómina es uno de los más sensibles en caso de falla. Es más comprensible para el pronóstico, por lo que decidimos comenzar con él. Debido a la alta conectividad en los momentos de cargas máximas, otros subsistemas, incluidos los servicios de banca remota (RBS), podrían experimentar problemas. Por ejemplo, los clientes, encantados por SMS sobre la recepción de dinero, comenzaron a usarlos activamente. La carga podría saltar más de un orden de magnitud.

El primer modelo de pronóstico se creó manualmente. Tomamos la descarga para el último año y calculamos en qué días se esperan picos máximos: por ejemplo, el 1, 15 y 25, así como en los últimos días del mes. Este modelo requirió un trabajo serio y no dio un pronóstico preciso. Sin embargo, identificó cuellos de botella en los que era necesario agregar hardware e hizo posible optimizar el proceso de transferencia de dinero al acordar con clientes ancla: para no dar salarios de un solo trago, las transacciones de diferentes regiones se extendieron a tiempo. Ahora los procesamos en partes que la infraestructura de TI del banco es capaz de masticar sin falta.

Después de recibir el primer resultado positivo, pasamos a la automatización de pronósticos. Una docena de secciones críticas más esperaban nuestro turno.

Enfoque integrado


En VTB, presentaron el sistema de monitoreo MicroFocus. A partir de ahí tomamos la recopilación de datos de pronóstico, un sistema de almacenamiento y un sistema de informes. De hecho, ya había monitoreo, solo quedaba agregar métricas, un módulo de predicción y crear nuevos informes. Esta decisión es respaldada por un contratista externo, Technoserv, por lo que el trabajo principal del proyecto fue realizado por sus especialistas, pero nosotros construimos el modelo por nuestra cuenta. El sistema de pronóstico se hizo en base a Prophet; este producto de código abierto se desarrolló en Facebook. Es fácil de usar y fácil de integrar con nuestras herramientas integrales de monitoreo y Vertica. En términos generales, el sistema analiza el cronograma de carga y, basándose en la serie de Fourier, lo extrapola. También es posible agregar ciertos coeficientes por días, tomados de nuestro modelo. Las métricas se toman sin intervención humana, una vez a la semana el pronóstico se recalcula automáticamente y se envían nuevos informes a los destinatarios.

Este enfoque revela 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 entre sí, y el Distrito Federal Central asigna la carga principal (75%) a los sistemas. Las personas jurídicas y los individuos se comportan de manera diferente. Si la carga de trabajo de los "físicos" se distribuye de manera relativamente uniforme a lo largo de los días de la semana (se trata de muchas transacciones pequeñas), entonces las empresas tienen el 99.9% de su tiempo, mientras que las transacciones pueden ser cortas o pueden procesarse en minutos o incluso horas.



En función de los datos obtenidos, se determinan las tendencias a largo plazo. El nuevo sistema ha revelado que las personas se están yendo masivamente a la RB. Esto lo sabemos todos, pero no esperábamos tal escala y al principio no creíamos en ellos: la cantidad de llamadas a las oficinas del banco disminuye extremadamente rápido, y la cantidad de transacciones a distancia crece exactamente en la misma cantidad. En consecuencia, la carga en el sistema también está creciendo y seguirá creciendo. Ahora pronosticamos 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, hubo algunas dificultades. El mecanismo de extrapolación que usa la serie de Fourier va mal a través de cero; sabemos que los fines de semana las entidades legales generan pocas transacciones, 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, era necesario resolver el problema de la recopilación de datos sin dolor de los sistemas fuente. La recopilación regular de información requiere recursos informáticos serios, por lo que creamos cachés rápidos utilizando la replicación, ya obtenemos datos comerciales de las réplicas. La ausencia de carga adicional en los sistemas maestros en tales casos es un requisito de bloqueo.

Nuevos retos


La tarea de la predicción de picos en la frente se resolvió: no hubo quiebras bancarias relacionadas con la sobrecarga desde mayo de este año, y el nuevo sistema de pronóstico jugó un papel importante en esto. Sí, no fue suficiente, y ahora el banco quiere entender cuán peligrosos son los picos para ello. Necesitamos pronósticos utilizando métricas de las pruebas de carga, y para aproximadamente el 30% de los sistemas críticos esto ya funciona, el resto está en el proceso de obtener pronósticos. 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 a continuación. Además, necesitamos automatizar completamente la recopilación de métricas y construir pronósticos basados ​​en ellas, para no participar en la descarga. No hay nada sobresaliente en esto: solo realizamos controles cruzados y pruebas de estrés de acuerdo con las mejores prácticas mundiales.

Source: https://habr.com/ru/post/472062/


All Articles