Monitoreo + prueba de carga = predicción y ausencia de fallos

El departamento de IT de VTB se ha enfrentado varias veces a situaciones extraordinarias en el funcionamiento de los sistemas, cuando la carga sobre ellos aumentaba múltiples veces. Por lo tanto, surgió la necesidad de desarrollar y probar un modelo que pudiera predecir la carga máxima en sistemas críticos. Para ello, los especialistas de IT del banco configuraron un sistema de monitoreo, analizaron los datos y aprendieron a automatizar las predicciones. Qué herramientas ayudaron a pronosticar la carga y si lograron optimizar el funcionamiento, lo contaremos en un breve artículo.

Monitoreo + prueba de carga = predicción y ausencia de fallos

Los problemas con los servicios de alta carga surgen prácticamente en todas las industrias, pero para el sector financiero son críticos. En la hora X, todas las unidades operativas deben estar listas, por lo que era necesario saber de antemano qué podría suceder e incluso determinar el día en que la carga aumentaría y qué sistemas enfrentarían esa carga. Es necesario combatir y prevenir fallos, por lo que la necesidad de implementar un sistema de análisis predictivo ni siquiera se discutió. Era necesario modernizar los sistemas basados en los datos de monitoreo.

Análisis improvisado

El proyecto de nómina es uno de los más sensibles en caso de fallo. También es el más fácil de prever, por lo que se decidió comenzar con él. Debido a la alta conectividad, en momentos de carga máxima, otros subsistemas, incluido el servicio bancario a distancia (DBO), también podrían enfrentar problemas. Por ejemplo, los clientes, contentos por un SMS sobre la llegada de dinero, comenzaban a gastarlo activamente. En este caso, la carga podría aumentar en más de un orden de magnitud. 

El primer modelo de pronóstico se creó manualmente. Tomamos la descarga del último año y calculamos en qué días se esperan los picos máximos: por ejemplo, el 1, 15 y 25 de cada mes, así como en los últimos días del mes. Este modelo requería un esfuerzo significativo y no daba un pronóstico preciso. Sin embargo, identificó cuellos de botella donde se necesitaba añadir más "hardware" y permitió optimizar el proceso de transferencia de dinero, acordando con los clientes clave: para no pagar los salarios "de golpe", se distribuyeron las transacciones de diferentes regiones a lo largo del tiempo. Ahora las procesamos en partes que la infraestructura IT del banco puede "masticar" sin fallos.

Tras obtener el primer resultado positivo, empezamos a automatizar la previsión. Aún quedaba en espera una docena de áreas críticas.

Enfoque integral

En VTB se implementó un sistema de monitoreo de la empresa MicroFocus. De ahí tomamos la recolección de datos para la previsión, el sistema de almacenamiento y el sistema de generación de informes. En esencia, ya existía el monitoreo, solo quedaba añadir métricas, el módulo de predicción y crear nuevos informes. Este solución es soportada por el contratista externo 'Technoserv', por lo que los trabajos principales para la implementación del proyecto recayeron en sus especialistas, pero el modelo lo construimos por nuestra cuenta. Creamos el sistema de previsión basado en Prophet, un producto de código abierto desarrollado en Facebook. Es fácil de usar e integrarse con nuestras herramientas de monitoreo integral y Vertica. En términos simples, el sistema analiza el gráfico de carga y, basado en series de Fourier, realiza su extrapolación. También existe la posibilidad de agregar ciertos coeficientes por días, extraídos de nuestro modelo. Las métricas se recogen sin intervención humana, la previsión se recalcula automáticamente una vez a la semana y nuevos informes se envían a los destinatarios. 

Este enfoque identifica las principales cíclicas, como la anual, mensual, trimestral y semanal. El pago de salarios y anticipos, los períodos de vacaciones, las fiestas y las rebajas: todo esto influye en la cantidad de consultas a los sistemas. Se descubrió, por ejemplo, que algunos ciclos se superponen, y la mayor carga (75%) en los sistemas proviene del Distrito Federal Central. Las personas jurídicas y físicas se comportan de manera diferente. Si la carga de los 'físicos' está relativamente distribuida de manera uniforme a lo largo de la semana (hay muchas transacciones pequeñas), para las empresas, el 99.9% ocurre durante el horario laboral, además, las transacciones pueden ser cortas, aunque algunas pueden procesarse durante varios minutos e incluso horas.

Monitoreo + prueba de carga = predicción y ausencia de fallos

Basado en los datos recopilados, se determinan las tendencias a largo plazo. El nuevo sistema ha revelado que las personas están abandonando masivamente las operaciones bancarias en línea. Todos lo saben, pero no esperábamos tal magnitud y al principio no lo creímos: la cantidad de visitas a las sucursales del banco está disminuyendo de manera extremadamente rápida, y al mismo tiempo, el número de transacciones a distancia está aumentando en la misma proporción. Por lo tanto, la carga en los sistemas también está creciendo y seguirá creciendo. Ahora pronosticamos la carga hasta febrero de 2020. Los días normales se pueden predecir con un margen de error del 3%, y los picos, con un margen del 10%. Este es un buen resultado.

Puntos ocultos

Sin dificultades, como suele ocurrir, no ha sido. El mecanismo de extrapolación que utiliza series de Fourier no se comporta bien al pasar por cero: sabemos que los fines de semana las entidades legales generan pocas transacciones, pero el módulo de predicción arroja valores lejanos de cero. Se podría haber corregido forzosamente, pero esas soluciones improvisadas no son nuestro método. Además, tuvimos que resolver el problema de la extracción indolora de datos de sistemas fuente. La recolección regular de información requiere serios recursos computacionales, por lo que construimos cachés rápidas utilizando replicación, obteniendo datos de negocio ya de las réplicas. La ausencia de carga adicional en los sistemas principales en tales casos es un requisito bloqueante.

Nuevos desafíos

La tarea planteada de prever picos fue resuelta: no ha habido fallos relacionados con la sobrecarga en el banco desde mayo de este año, y el nuevo sistema de previsión ha jugado un papel importante en esto. Sí, resultó ser insuficiente, y ahora el banco quiere entender cuán peligrosos son los picos. Necesitamos pronósticos utilizando métricas de pruebas de carga, y para aproximadamente el 30% de los sistemas críticos ya funciona, los demás están en proceso de obtener pronósticos. En la siguiente fase, planeamos predecir la carga en los sistemas no en transacciones de negocio, sino en términos de infraestructura de TI, es decir, descenderemos a un nivel inferior. Además, necesitamos automatizar completamente la recolección de métricas y la construcción de pronósticos sobre la base de ellas, para no tener que lidiar con exportaciones. No hay nada excepcional en esto: simplemente estamos cruzando la monitorización y las pruebas de carga de acuerdo con las mejores prácticas mundiales.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster