• Jose A. Esteban

Tecnología IronIA Fintech. Azure Cognitive Search.

Alguno de los miembros de nuestra comunidad nos han pedido que expliquemos qué tecnología utilizamos en IronIA FinTech y por esa razón, nace esta sección en nuestro blog.


Personalmente llevo tiempo intentando convencer al mundo de que solo el conocimiento de la tecnología, el conocimiento profundo, diferencia a los profesionales de los parasitrones.


Considero que la mejor forma de compartir conocimiento es el ejemplo y sin pretender ser una guía para nadie, sí me gustaría compartir cómo y con qué elementos estamos trabajando y lo más importante ¿por qué?


¿Por qué? es lo más importante. Ya lo dice el saber popular "No es el arco sino el indio quien acierta en el blanco", lo mismo pasa con la arquitectura de aplicaciones. No son las soluciones o herramientas que empleamos sino cómo lo hacemos.


Así que hoy comenzamos con Azure Cognitive Search.




Problema. Caso de Uso.

Los fondos de inversión están compuestos de acciones de empresas en lo que los gestores de los fondos invierten, pero ¿Cómo puedo saber en qué empresas invierte cada fondo?


Esta información la tenemos en la documentación del fondo. No está toda la composición del fondo, ya que esta varia en el tiempo, pero sí las posiciones principales.


Así que mi problema se traduce a cómo extraigo esa información de más de 54.000 documentos, 3 documentos por cada fondo.


Aquí es donde entra Azure Cognitive Search. Este servicio me permite buscar en el contenido de archivos mediante el procesamiento del lenguaje natural. Dicho de otro modo, para que nos entendamos, busca como tú o como yo buscaríamos en un documento. No hace un reconocimiento del texto tipo OCR, trasformando torpemente imágenes en texto, sino que "entiende" el documento y extrae la información. Podríais pensar que los documentos son información desestructurada, ERROR, todos los documentos están perfectamente estructurados en un formato denominado pdf. En este caso lo que pasa es que saber que es un pdf no es lo que yo necesito, yo necesito saber si tiene los nombres de las empresas que busco o no y eso no está en la estructura del archivo.


Conclusión, con Azure Cognitive Search puedo "leer" los documentos y buscar las empresas. Pensaréis pues ya lo tengo hecho, ¿no?


Impedimento número 1.

Azure Cognitive Search no puede leer documentos almacenados en Google Cloud Storage.


Toda la plataforma de IronIA FinTech está en Google Cloud, así que esto parece un impedimento insalvable.


Nada más lejos de la realidad. Google Storage permite el acceso a la información a través del API de Google por lo que puedo hacer un programa que copie los archivos de un almacenamiento Google (Google Storage) a un almacenamiento Azure (Azure Blob Storage).


Como soy programador y para un martillo todos los problemas son clavos, pues me pongo a programar. Lástima, también soy arquitecto de aplicaciones y uno de los principios de arquitectura es "Uso de servicios administrados no de infraestructura". Vamos, que no utilices servidores para todo o te engañes pensando que un contenedor no es un servidor.


El servicio que permite la ingesta y orquestación de datos en Microsoft Azure es Azure Data Factory mientras que en Google tenemos Cloud Data Fusion. Estoy seguro que podría haberlo hecho con cualquiera de los dos pero resulta que Microsoft Data Factory tiene un conector para Google Storage y un conector para Azure Blob Storage, por lo cual parece más sencillo utilizar el servicio que ya lo tiene casi todo implementado.



Como ya expliqué Azure Data Factory me permitió realizar la copia de todos los archivos de forma sencilla, gracias a que los conectores ya están creados y la documentación es totalmente detallada.


De esta forma pude crear una canalización (pipeline) que copia todos los archivos de documentación de los fondos de Google Storage a Azure Blob y programarla para que se ejecute de forma incremental todos los días a las 7:00 de la mañana.


Todo esto sin escribir una sola línea de código, empleando servicios ya desarrollados y en menos de 60 minutos.


Ya tenemos resuelta la parte de tener la información en un Azure Blob Storage. Ahora creamos el servicio Azure Cognitive Service, lo cual no tiene mucho misterio, solo debemos seguir los pasos que marca el proceso de creación.


Tras unos momentos de indexación ya tenemos nuestros servicio listo para poder ser llamado a través de un API con muy buenos resultados y totalmente seguro a través de https y gestión de identidades en la llamada.



Ahora solo queda incluir el servicio en nuestra aplicación para proporcionar a nuestros clientes una nueva forma de localizar los fondos en los que desean invertir y así tenemos el buscador de empresas.


Aún no está disponible, lo tenemos en fase desarrollo pero en el mes de febrero del 2021 será una funcionalidad más para que nuestros clientes puedan buscar de forma libre. Porque IronIA FinTech es justo eso ¡Libertad para Invertir!


Además, gracias a nuestra implantación de integración continua y despliegue continuo podemos asociar la tarea realizada con la versión del código fuente que la realiza, de forma que tenemos trazabilidad completa. Para esto utilizamos Azure DevOps, que algunos piensan que no sirve para gestionar requisitos, tareas y bugs junto con el código que los implementa y por ello se embarcan en un mega proyecto de Jira con Jenkis y git hub y unas 200 horas de técnicos para hacerlo funcionar, pero esa es otra historia de la que ya hablaremos.

Y por si teníamos alguna duda, también cumplimos el otro principio de diseño "Diseñar para la operación" ya que podemos monitorizar el tiempo de respuesta de cada búsqueda. Es decir, podemos tener una métrica de negocio de nuestra transacción, sin necesidad de invertir cientos de miles de euros en sistemas de monitorización.


Algunos diréis, todo esto está muy bien pero es muy caro. Así que ¿cuánto cuesta todo esto?


Sí, lo han visto bien 66,02 €/mes. Ahora pueden seguir comprando infraestructura y pagando consultoras para hacer proyectos de inteligencia Artificial e invertir en sistemas de monitorización para resolver problemas que con 66,02 €/mes y conocimiento de arquitecturas cloud se resuelven en dos horas.


Total coste del proyecto 150 €/hora x 2 horas arquitecto de aplicaciones + 66,02 €/mes. Valor para la empresa... aún no lo sabemos. Pero lo sabremos. Lo pondremos en marcha y lo mediremos según nuestra forma de trabajar Kaizen.


Por cierto, para los que echaban de menos en el "diseño para la operación" la creación de elementos para la gestión de incidentes, la monitorización empleada crea bug directamente en el servicio de DevOps para su resolución.

y utiliza la IA para la detección de patrones de comportamiento y anomalías.

Creo que ya no se me olvida nada. Barato me parece los 15 €/hora del arquitecto de aplicaciones de verdad. Pidan presupuesto a alguna consultora para hacer algo parecido, seguro que tendrán una bonita sorpresa.


Hacer las cosas como siempre no garantiza hacerlas bien.


El juego no es complicado si conoces el juego.



551 vistas0 comentarios

Entradas Recientes

Ver todo

Kaizen