Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

El sistema de soporte de documentación de nuestro banco se desarrolla y escala constantemente, y los requisitos de velocidad y tolerancia a fallas no hacen más que aumentar. En algún momento, mantener un LMS sin un monitoreo centralizado efectivo se volvió demasiado arriesgado. Para proteger los procesos comerciales en VTB y simplificar el trabajo de los administradores, implementamos una solución basada en una pila de tecnologías abiertas. Con su ayuda, podemos responder de forma proactiva a las incidencias, previniendo posibles problemas. Debajo del corte hay una historia sobre nuestra experiencia en el uso de software libre para monitorear sistemas empresariales a gran escala.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

¿Por qué monitorear su sistema de gestión documental?

Desde 2005, el soporte de documentación en VTB Bank está "gestionado" por el sistema CompanyMedia. El LMS emplea a más de 60 mil usuarios que crean más de un millón de documentos nuevos cada mes. Nuestros servidores deben funcionar las 24 horas del día: casi en cualquier momento hay entre 2500 y 3000 personas en el sistema, que están conectadas en todo el país, desde Petropavlovsk-Kamchatsky hasta Kaliningrado. Cada segundo de funcionamiento del LMS significa entre 10 y 15 cambios.

Para garantizar que el sistema cumpla con precisión las tareas asignadas, hemos implementado una infraestructura tolerante a fallas utilizando servidores proxy, equilibrio de solicitudes, protección de la información, búsqueda de texto completo, rutas de integración y respaldo. Apoyar y administrar un proyecto de esta escala requiere enormes recursos. Los administradores monitorean información básica sobre el funcionamiento del servidor, la carga de RAM, el tiempo de CPU, el subsistema de E/S, etc., las XNUMX horas del día. Pero además de esto, se necesitan análisis más sutiles:

  • calcular el tiempo dedicado a la ejecución de escenarios comerciales;
  • monitorear la dinámica del rendimiento del sistema y la carga en él;
  • buscar desviaciones en los componentes del sistema de los requisitos no funcionales aprobados.

11 años después de la introducción del LMS, la cuestión de la respuesta proactiva a diversos tipos de errores se ha vuelto especialmente grave. La dirección del banco se dio cuenta de que trabajar sin monitores y sin consola de vida del sistema era jugar con fuego: el más mínimo fallo en un sistema empresarial de este nivel podía provocar pérdidas millonarias.

En 2016, comenzamos a introducir herramientas para identificar rápidamente problemas en el funcionamiento del LMS, incluido el seguimiento de parámetros de nuestro interés en tiempo real. Anteriormente, el sistema de seguimiento aplicado se implementó y probó en el marco de la infraestructura de la empresa InterTrust.

Cómo comenzó todo

Hoy en día, el sistema centralizado de monitoreo de aplicaciones de VTB LMS, basado en productos de software de código abierto, ayuda a prevenir la mayoría de los errores asociados con el flujo de documentos, clasificar problemas de manera rápida y precisa y responder con prontitud a cualquier incidente. Incluye dos subsistemas:

  • para monitorear la infraestructura de TI de los servicios del sistema;
  • monitorear la ocurrencia de errores en el funcionamiento del LMS.

Todo empezó con una única aplicación de seguimiento gratuita. Después de analizar varias opciones, nos decidimos por Zabbix, un software gratuito escrito originalmente para servicios y equipos bancarios. Este sistema PHP basado en web, que puede almacenar datos en MySQL, PostgreSQL, SQLite u Oracle Database, se adaptaba perfectamente a nuestras necesidades.

Zabbix ejecuta sus agentes en cada servidor y recopila información sobre métricas de interés en tiempo real en una única base de datos. Con la aplicación, es conveniente recopilar datos sobre la carga en procesadores y RAM, sobre el uso de la red y otros componentes, verificar la disponibilidad y respuesta de los servicios estándar (SMTP o HTTP), ejecutar programas externos y monitorear el soporte a través de SNMP.

Después de implementar Zabbix, configuramos métricas de hardware estándar y al principio esto fue suficiente. Pero VTB SDO se desarrolla y crece constantemente: en 2016, la cantidad de servidores aumentó notablemente, aparecieron procesos de migración, el Banco de Moscú, VTB Capital y VTB24 se unieron al sistema. Ya no hay suficientes métricas estándar, y le enseñamos a Zabbix a rastrear información sobre la presencia de colas en cada uno de los volúmenes conectados al servidor (zabbix listo para usar solo refleja la cola de disco general), así como el tiempo que lleva para completar un procedimiento en particular.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

Además, equipamos el sistema con múltiples activadores: condiciones bajo las cuales se envía una notificación al administrador (un mensaje en Telegram, un SMS a un número de teléfono o un correo electrónico). Los activadores se pueden configurar para cualquier conjunto de parámetros. Por ejemplo, puede especificar un determinado porcentaje de espacio libre en el disco y el sistema alertará al administrador cuando se alcance el umbral especificado o le informará si un procedimiento en segundo plano se está ejecutando durante más tiempo de lo habitual.

Conectividad Java y visualización de datos.

Ampliamos significativamente la gama de datos analizados, pero pronto esto no fue suficiente para un seguimiento eficaz. Aprovechando el hecho de que el LMS de CompanyMedia es una aplicación Java, nos conectamos a la máquina virtual Java a través de la interfaz JMX y pudimos tomar métricas de Java directamente. Y no solo parámetros estándar de actividad vital de Java, como la intensidad del trabajo de GC o el consumo de Heap, sino también pruebas específicas relacionadas directamente con el código ejecutable de la aplicación.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

En 2017, aproximadamente un año después de la implementación del sistema de monitoreo, quedó claro que para trabajar normalmente con la colosal cantidad de datos recopilados en Zabbix, no había suficiente visualización: pantallas complejas. La mejor solución a este problema fue nuevamente el software gratuito: Grafana, un conveniente panel de métricas que le permite agregar todos los datos en una sola pantalla.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

La interfaz de Grafana es interactiva y recuerda a un sistema OLAP. El subsistema muestra los datos recibidos por Zabbix en una sola pantalla, presentando la información en forma de gráficos y diagramas fáciles de analizar. El administrador puede personalizar fácilmente los sectores que necesita.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

Monitoreo y eliminación preventiva de errores en el sistema LMS

La plataforma de software de código abierto ELK le ayuda a filtrar y analizar la información recibida durante el seguimiento. Este producto de código abierto consta de tres potentes herramientas para recopilar, almacenar y analizar datos: Elasticsearch, Logstash y Kibana. La implementación de este subsistema permite, en particular, ver en tiempo real cuántos errores se produjeron en el sistema, en qué servidores y si estos errores se repiten.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

Ahora el administrador puede detectar un problema en una etapa temprana, incluso antes de que el usuario lo encuentre. Este monitoreo proactivo le permite prevenir fallas en el sistema al eliminar errores de manera oportuna. Además, podremos entender cómo ha cambiado el comportamiento del sistema tras la actualización, así como detectar nuevos problemas si aparecen.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

Monitoreo de operaciones comerciales

Además de las funciones básicas de monitorear el consumo de recursos, el sistema tiene la capacidad de analizar y controlar las operaciones comerciales.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

Monitorear el tiempo general de ejecución de las operaciones comerciales le permite identificar nuevos factores y comprender el impacto que tienen en el funcionamiento del sistema.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

El seguimiento del tiempo de ejecución de las solicitudes de cada servicio empresarial permite detectar operaciones que se desvían de la norma.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

La captura de pantalla anterior es un ejemplo de cómo monitorear una tarea en segundo plano en términos de su desviación de la norma.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

La lista de tareas controladas en términos de su actividad en un servidor específico le permite identificar errores, incluida la duplicación de la ejecución de tareas, en todos los servidores.

Software de código abierto para LMS: cómo el software gratuito ayuda a administrar sistemas comerciales críticos en VTB

También se monitorea la evolución del tiempo de ejecución de los procedimientos en segundo plano.

El sistema crece, se desarrolla y ayuda a afrontar los problemas.

Con la implementación del sistema descrito, el seguimiento del funcionamiento de los servidores LMS se ha simplificado significativamente. Sin embargo, de vez en cuando surgen diversos tipos de conflictos que afectan la velocidad del flujo de documentos y provocan quejas de los usuarios. Entonces nos dimos cuenta de que era necesario controlar el comportamiento de la aplicación en sí, y no solo de los servidores.

Para resolver este problema, se conectó un equilibrador al sistema de monitoreo a través de API, que funciona con un grupo de servidores de aplicaciones. Gracias a esto, el administrador puede ver cuánto tarda el servidor en responder a cada solicitud del usuario.

Los datos sobre los tiempos de respuesta del servidor estuvieron disponibles para su análisis, lo que permitió vincular la desaceleración del LMS con los procesos que ocurren en el servidor. En particular, surgió una situación interesante: el servidor funciona con lentitud, aunque en este momento no está cargado. Al analizar la anomalía, descubrimos desviaciones en el funcionamiento de Garbage Collector Java. Al final resultó que fue el funcionamiento incorrecto de este servicio lo que provocó esta situación. Al tomar el control de Garbage Collector Java, eliminamos por completo el problema.

Así es como el software libre ayuda a que el sistema de gestión documental del sector bancario se desarrolle y crezca. Hemos abordado únicamente las principales cuestiones relacionadas con el sistema de seguimiento de VTB SDO. Si estás interesado en detalles, pregunta en los comentarios, estaremos encantados de compartir nuestra experiencia contigo.

Fuente: habr.com

Añadir un comentario