Elaborado por: Mía Anaya, Technical Lead en Deep Pit Technology.
Desarrollar software que integre datos puede sonar como una tarea ordinaria y sencilla. La realidad es que puede ser una tarea muy compleja. Esto dependerá de muchas variables relacionadas al negocio, la naturaleza de los datos, las fuentes, la disponibilidad; entre otras.
El arte de desarrollar software que integra datos es el proceso que va desde el descubrimiento del negocio, hasta la puesta en producción de la solución integradora; siguiendo parámetros que aseguren una solución óptima y un importante valor aportado al negocio.
Estos son los 5 grandes retos que se ven en los proyectos de software que integran datos:
Descubrir el negocio
Es clave entender el negocio de donde provienen los datos. Para lograr esto, es un requisito que el equipo del proyecto esté conformado por personas con un fuerte background en el negocio. Conocer qué reflejan los datos que se van a integrar permitirá definir qué se puede hacer con ellos y así orientar la arquitectura de software según convenga. Un adecuado conocimiento del negocio también permitirá maximizar el valor que aportará la solución.
Conocer las fuentes de datos
No todas las fuentes de datos son parecidas. Es más, algunas no pueden conversar directamente entre ellas. Modelos relacionales, no relacionales, series de tiempo, archivos binarios; solo algunos ejemplos de los tipos de fuentes de datos que se pueden encontrar. Es importante conocer cada una de estas fuentes y la forma correcta de acceder a los datos. Esto permitirá extraerlos con un formato unificado para luego tratar los datos e integrarlos.
Tecnologías adecuadas
Se necesita consumir los datos, procesarlos y emparejarlos. ¿Como se consumen? ¿Usando scripts y Cron jobs? ¿Configurando triggers en el motor de la base de datos?
Se requiere hacer una evaluación minuciosa respecto al impacto en el rendimiento del sistema de la solución que se proponga. Por ejemplo: si se desea integrar muchos datos de una sola base de datos, es posible que una vista materializada proporcione la mejor eficiencia para esto. Por otro lado, en una integración que requiera de cálculos más complejos (como cálculos geométricos tridimensionales), es posible que utilizando un servicio back-end que aproveche múltiples hilos de procesamiento se logre un rendimiento mucho mayor a otras opciones. La cantidad de opciones es muy grande, pero el arte de hacer software que integra datos debe buscar la solución óptima.
Una arquitectura adecuada
Se debe considerar: ¿Se está trabajando en una única solución que requiere integrar datos? ¿O se tiene la posibilidad de utilizar los datos integrados para desarrollar múltiples soluciones distintas? Estas dos opciones definitivamente se responden de diferente manera cuando se someten al diseño de la arquitectura del software. En el primer caso, es posible que una arquitectura monolítica proporcione el método más seguro y eficiente de manejar la integración; de manera que un único servicio se encargue de la obtención y procesamiento de datos. Será natural que esta solución tenga un acoplamiento muy fuerte con las fuentes de datos; pero se debe buscar que esta solución sea expandible para añadir fuentes de datos o modificar las existentes.
En caso de que se desee que los datos integrados sean consumidos por diferentes servicios, se necesitará que la solución disponga de un endpoint que permita consumir los datos procesados. Se asoma una arquitectura orientada a servicios, o SOA. Las responsabilidades serán distribuidas en diferentes servicios donde algunos de ellos serán responsables de la obtención y tratamiento de los datos, y otros de proporcionar las soluciones que aportan valor al negocio utilizando los datos integrados.
Definir un alcance
Es un verdadero reto poder definir hasta donde podemos llegar con la integración, desde el punto de vista de negocio. Con los datos integrados, es posible que se asomen un sinfín de posibles soluciones para el negocio que consuman los datos integrados. Sin embargo, es necesario tener claros los alcances del proyecto y cerrar cada etapa. Dejar cabos sueltos para apresurar otra solución que se asoma podría pasar factura en el futuro. La obra de arte llamada software que integra datos necesita la cereza en la cima para darse por concluida, antes de poder aprovechar la integración de datos mediante la construcción de nuevo software.
Entonces: ¿Cómo dominamos el arte de construir software que integra datos? La respuesta es mediante un equipo multidisciplinario: con especialistas en análisis y procesamiento de datos (científicos de datos), desarrolladores y arquitectos de software, especialistas en el negocio e involucramiento tanto de los clientes como de la persona que gestiona el proyecto. En Deep Pit Technology contamos con un equipo con todos los especialistas para llevar a cabo el arte de desarrollar software integrador.
¿Se te ocurre algún problema de integración de datos en tu empresa? ¡Nos encantaría escuchar de ello!