¿Qué son los informes de microservicios?
Los informes de microservicios son los informes se crean a partir de una arquitectura de microservicios. Si bien la arquitectura de microservicios ofrece muchos beneficios a la organización, crea desafíos para la elaboración de informes debido a su naturaleza fragmentada.
Informes de microservicios
En una organización donde se utilice una arquitectura de microservicios, un modelo sencillo tendría diferentes programas para:
- Finanzas y facturación
- Herramienta de flujo de trabajo
- Programa de ventas
- Sistema de nómina
Cada uno de estos microservicios tiene su propia base de datos. Las API funcionan para vincular estos programas para que puedan operar bajo una sola interfaz. Sin embargo, los problemas comienzan cuando se requieren informes que extraigan datos de las múltiples bases de datos.
Un ejemplo es cuando las pagas se basan en trabajos completados y facturados. La herramienta financiera necesita acceso a la herramienta de flujo de trabajo, y solo entonces la herramienta de nómina tiene la información precisa para poder pagar a los empleados. Si una empresa desea ejecutar un informe que muestre el trabajo en curso frente a las ventas completadas durante el mes, necesita acceder a tres programas diferentes.
Esto se vuelve aún más complejo cuando hay muchísimos microservicios. Netflix, por ejemplo, tiene más de dos mil millones de solicitudes de API perimetrales por día, repartidas por sus más de 700 microservicios. Uber utiliza más de 1300 microservicios. Cuando hay una gran cantidad de servicios, los informes se vuelven más complejos.
Desafíos de los informes de microservicios
Los informes de microservicios se enfrentan a tres desafíos principales.
Problemas de rendimiento
Si una empresa tiene dos mil millones de solicitudes de API al día para funciones comerciales, imagine cuántos informes se sumarán a estas solicitudes. Si una herramienta de informes extrae datos de múltiples fuentes, a menudo varios cientos de veces al día, ¿cómo afectará esto al sistema? Esto ralentizará considerablemente los procesos o posiblemente terminará excediendo el tiempo de espera.
Anti-patrón
La idea misma de la arquitectura de microservicios es que cada servicio está delimitado. Es decir, cada aplicación es un miniprograma en sí misma. Contiene todo lo que necesita y opera dentro de sus propios límites. No necesita acceso a nada más para completar sus funciones.
Cuando los informes requieren que los servicios compartan sus bases de datos, se vuelve anti-patrón.
Diferentes modelos y tipos de datos
Si cada servicio está escrito en un lenguaje de programación diferente, es necesario que haya una capa adicional de comunicación entre los servicios para permitir la comprensión. Y luego, si la forma en que se presentan los datos no es la misma, es necesario manipularlos automáticamente para que puedan ser digeridos y utilizados por la herramienta de informes.
Datos en conflicto
Puesto que cada servicio tiene su propia base de datos, puede darse la redundancia, duplicación o conflictos de datos. Por ejemplo, si un proveedor también es cliente y tiene la misma dirección física pero una es incorrecta en el sistema, esto podría causar problemas en la recopilación de datos.
Requisitos de los informes para microservicios
Una buena presentación de informes es esencial para la salud y el crecimiento de una organización. Un buen sistema de informes debe tener los siguientes elementos:
Fácil de usar
Los informes deben ser fáciles de ejecutar. Si se utiliza un panel central para los informes, será sencillo seleccionar parámetros y aplicar los datos relevantes. Dado que todos los microservicios se encuentran bajo el paraguas de un panel, esto se logra fácilmente.
Una sola de información
Para que los informes sean precisos, los datos deben ser correctos. Debe haber una fuente única de información para los datos, sin duplicaciones, información obsoleta o incorrecta, y todo lo que el informe necesita debe estar allí. Este es el mayor desafío para los microservicios, ya que las aplicaciones están separadas y poco acopladas entre sí.
Actuales
En un mundo donde todo es instantáneo, los informes deben estar actualizados al minuto. Cuando hay rebajas navideñas, un cambio en el entorno de trabajo o un comportamiento diferente del cliente, estos cambios deben detectarse y abordarse lo antes posible. Esto también presenta desafíos para el modelo de microservicios, dependiendo de cómo se acceda a los datos.
Fast
Si un informe tarda horas en ejecutarse y ejerce presión sobre los recursos, es una barrera importante para los sistemas de generación de informes. La ejecución de miles de API para acceder a los datos simultáneamente crea una barrera considerable para obtener buenos informes en la arquitectura de microservicios.
Automatización
El sistema de obtención, extracción, procesamiento de los datos y ejecución de informes debe estar altamente automatizado. Los usuarios no deberían tener que acceder al back-end, ejecutar operaciones manuales ni manipular ellos mismos los datos.
Fáciles de comprender
Presentar informes en filas de datos granulares no siempre es lo que se necesita ni es la mejor manera de entender la información. Por el contrario, para que los informes sean fácilmente digeridos por una variedad de usuarios, deben presentarse en gráficos, tablas y otros conceptos que muestren rápidamente tendencias, patrones y cifras.
Capacidad de profundizar
Si un usuario o ponente tiene un gráfico simple pero necesita la capacidad de comprender cómo y por qué sucedió algo, es necesario que exista una funcionalidad que le permita ver los datos granulares. Las organizaciones deberán poder profundizar fácilmente en la información para identificar problemas, fortalezas y anomalías.
Funcionalidad de inteligencia artificial (IA)
No tiene sentido tener datos si no se pueden crear mejoras procesables basadas en ellos. Para habilitar esta función, es necesario que exista una funcionalidad de IA para que los datos se conviertan en conocimientos y predicciones. Una vez que se recopilan los datos, agregar funcionalidad de IA es sencillo, dada la naturaleza segmentada de los microservicios.
Posibles soluciones para informes de microservicios
Hay varias opciones disponibles para permitir la generación de informes en una arquitectura de microservicios. La solución correcta para una organización dependerá de muchos factores diferentes y la respuesta no es la misma para todos.
El primer paso es encontrar los servicios correctos. El modelo de microservicios implica que cada tarea requiere una aplicación o programa diferente. Estos microservicios se ubicarán junto con todas las demás aplicaciones y programas. Es probable que una empresa necesite un servicio que extraiga o reciba los datos, otro con funciones de generación de informes y otro más con capacidades de inteligencia artificial.
Una vez instalados estos servicios, es cuestión de extraer los datos de los otros microservicios y crear los informes necesarios.
Conexiones directas de bases de datos
El servicio de informes se conecta directamente con los otros microservicios, recupera la información relevante de sus bases de datos y la canaliza a un almacén de datos. Parece sencillo, pero significa que cualquier cambio en el esquema de una base de datos también requerirá un cambio adicional en el servicio de informes. También rompe el contexto delimitado, que es tan importante en la arquitectura de microservicios.
Modelo de extracción HTTP del servicio de agregación
Este servicio utiliza API para conectarse con los microservicios relevantes. Solicita la información requerida y la canaliza a través del almacén de datos y la herramienta de generación de informes. Sin embargo, este método es propenso a producir un rendimiento lento y errores de tiempo de espera excedido 504. Cada servicio adicional con el que necesita comunicarse añade más carga al sistema, agregando múltiples fuentes de datos que crean enormes problemas de rendimiento.
Una vez más, debido a que se trata de un modelo de extracción, viola el contexto delimitado.
Extracción por lotes y base de datos dedicada
En esta estrategia, se ejecuta un comando según un calendario y la información se extrae en lotes de todas las bases de datos de microservicios relevantes. Luego, estos datos se actualizan de forma masiva en la base de datos de informes. Sin embargo, al igual que con la conexión directa a la base de datos, cualquier cambio en el esquema podría interrumpir todo el trabajo por lotes. Cada vez que cambia el esquema, las funciones por lotes también deben actualizarse.
El otro problema es que, como modelo pull (modelo de extracción), es contrario al contexto delimitado y es posible que no produzca informes en el momento oportuno. Si la solicitud de extracción está vinculada al momento en que la carga es más liviana, a las 2:00 a. m., solo contará con una actualización por día.
Base de datos dedicada con envío de eventos asincrónicos
Esto es más complicado, pero produce mejores resultados y no viola el modelo delimitado. Un microservicio de procesador de eventos recibe actualizaciones cuando algo en otro servicio se actualiza o cambia. La aplicación, en lugar de extraer información de ella, envía notificaciones de eventos. Eso significa que se notifica a un servicio de captura de datos sobre cualquier actualización relevante y se actualiza la base de datos. Desde allí, un servicio de informes puede ejecutar informes según sea necesario.
Los beneficios de este método de presentación de informes son los siguientes:
- Preserva los principios de arquitectura delimitada de microservicios. El servicio de informes no "escucha" a las aplicaciones ni extrae información.
- Garantiza que los informes resultantes estén actualizados porque el servicio de informes recibe notificaciones de eventos o actualizaciones de información.
- Descarta información que no es requerida durante todo el servicio de captura de datos.
- Agrega datos en un formulario que el servicio de informes puede utilizar a través del servicio de captura de datos.
- Proporciona informes asincrónicos para evitar cargas de procesamiento pesadas, tiempos de espera excedidos o acoplamiento temporal.
Cómo resolver datos contradictorios
Debido a que podría haber literalmente miles de bases de datos, es casi seguro que habrá datos duplicados, incorrectos o defectuosos. Resolver esto es importante para crear informes precisos. Hay un par de soluciones diferentes para este desafío.
Un servicio para actualizar bases de datos
Si existe un servicio intermediario que reconoce cuándo se actualiza una información, puede enviar esa actualización a los otros servicios. Por ejemplo, si se actualizó la dirección física de un cliente, esa información se envía a todas las instancias de la información de ese cliente. Esto puede ser increíblemente complejo y requerir más ancho de banda en el sistema, y es anti-patrón.
Elija una fuente única de información para cada tipo de datos
Debido a que cada servicio en esta arquitectura realiza una sola tarea, no es necesario que la base de datos sea completa. El departamento de facturación necesita conocer la dirección postal, mientras que el departamento de ventas necesita la dirección física para enviar el producto. Designe un servicio para que sea la fuente única de información para ese dato.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut rutrum ornare mi, ut tincidunt turpis convallis sed. Aenean dictum purus libero, ultrices fermentum metus mollis vitae. Nullam vel ipsum tristique magna lacinia pretium non sit amet nisi. Fusce est dolor, dictum sit amet porttitor condimentum, placerat a metus. Maecenas fringilla sem sit amet lorem euismod ultricies. Vestibulum semper felis egestas, pharetra magna ut, tincidunt risus. Vivamus at malesuada purus, sed efficitur ex. Vestibulum luctus dictum tempus. Donec eu tortor eu metus convallis vehicula. Nullam a vestibulum enim. Sed et odio a risus efficitur ullamcorper. Mauris mattis eleifend dolor sit amet maximus.
Los informes de microservicios requieren planificación
Hay bastantes desafíos para los informes de microservicios y no es la arquitectura más simple en términos de informes. Incluso mantener datos consistentes requiere más planificación y estudio que otras arquitecturas tradicionales. Sin embargo, es posible ejecutar informes manteniendo los principios de los servicios delimitados.
Si una organización desea adoptar un marco de microservicios, el equipo de TI debe realizar una planificación y un trabajo preliminar considerables para garantizar que la coherencia y precisión de los datos sean lo primero, seguido de un enfoque en la ruta de los datos enviados desde los servicios de origen a otros servicios que crean lagos de datos como fuente de datos y luego procesar esos datos para convertirlos en los informes requeridos.
Teniendo en cuenta los enormes beneficios que el modelo de microservicios puede ofrecer a una organización, vale la pena la complejidad adicional a la hora de generar informes. Todos los desafíos se pueden superar con estudio y planificación.
Informes de microservicios con Jaspersoft
Recursos Relacionados
Jaspersoft in Action: Embedded BI Demo
See everything Jaspersoft has to offer – from creating beautiful data visualizations and dashboards to embedding them into your application.
Back to Basics: Reporting 101
Discover the fundamentals of delivering reporting to users wherever they are and in a variety of formats.