Buscar
Cerrar este cuadro de búsqueda.

IoT y los datos: Cosmos DB

Picture of Andrea Martín
Andrea Martín
| 23 octubre, 2023

 Los dispositivos inteligentes actúan como interceptores, captadores, mensajeros o procesadores de datos. Estos datos son, en ocasiones, imprescindibles en la toma de algunas decisiones, en el ahorro de costes o en el buen funcionamiento de flujos de trabajo. Además, cada vez es más normal encontrarnos con fuentes de datos de procesamiento más complejo, como datos no estructurados, no relacionados o de costoso almacenamiento como imágenes o sonidos, entre otros. Para poder adaptarnos a esta realidad, demandamos herramientas de gestión y almacenamiento de la información que sean capaces de dar soporte a estas necesidades de forma eficaz y rápida. 

Un poco de historia

 Partimos del almacenamiento clásico con bases de datos relaciones desarrolladas en los años 70 como principal patrón de modelado de datos, bajo el nombre de Relational Software System – lo que hoy conocemos como Oracle Corporación – que solo admitían datos fuertemente jerarquizados y estructurados, lo que supone la creación de un modelo claro y conciso para los datos, que no es siempre posible dado que hay datos que se relacionan de una manera distinta. Por eso, surgen a finales de los 90 las bases de datos No Relacionales, promovidas por diferentes empresas en la búsqueda de crear soluciones para sus problemas específicos. 

¿Qué demandamos en la actualidad?

Nuestra forma de interaccionar con los datos ha cambiado hacia un lugar: la nube. 

Cada vez confiamos más nuestros datos en ella y a nivel empresarial, encontramos muy útil el basar nuestras soluciones y almacenamiento en Cloud. 

No voy a hablar de qué es la nube, pero sí considero importante que entiendas su papel fundamental en el mundo del internet de las cosas. 

En desarrollos en los que coexisten dispositivos inteligentes hay varios aspectos fundamentales a tener en cuenta: 

 

  • Latencia: es el tiempo que tardan los datos en transferirse por la red que los soporta. Este factor influye de forma directa en soluciones algunas soluciones IoT, porque si realmente queremos utilizar esta tecnología a nuestro favor, el tiempo es uno de los factores determinantes, lo que conocemos como Hot paths o aquellos datos que necesitan ser accesibles en cuestión de segundos o menos para poder ser consumido por clientes de análisis. Por ejemplo, In&motion creó un sistema de airbag en modo traje para los esquiadores profesionales que es capaz de evaluar si el esquiador está teniendo una caída e hinchar ciertas zonas como el tórax o la columna para evitar daños graves en los deportistas. Esto es solamente posible si los datos que requiere el sistema de evaluación son rápidos en transmitirse a este, por lo que se vuelve fundamental el estar conectado a una red fiable y rápida, y en la actualidad tenemos a nuestra disposición redes capaces de conectarse a internet como 5G o Esnet – sin mencionar redes privadas o microrredes – que permiten la creación de infraestructuras de dispositivos conectados en diversos ámbitos y terrenos, pudiendo crear soluciones en regiones o territorios aislados, como es el caso de las centrales petroleras y en contraposición, de los edificios inteligentes. 
  • Persistencia: se refiere a la capacidad de guardar información manteniéndola intacta en el tiempo y a la recuperación íntegra de la misma. Este concepto tiene mucha importancia en desarrollos a los que atraviesan tecnologías de Machine Learning o aprendizaje autónomo, que necesitan de gran cantidad de datos fiables a su disposición para poder conseguir su objetivo o realizar sus funciones. Veamos un ejemplo: 

    Desde 2017, se comenzaron a desarrollar algoritmos basados en Inteligencia Artificial para tratar de aportar al sector agrícola, más en concretamente a la apicultura. Se utilizaron diferentes algoritmos para tratar de reconocer los sonidos de las abejas, tarea complicada en un entorno como es el natural, dónde sonidos de otros animales y sobre todo de otros polinizadores pueden interferir. Estos resultados se utilizaron más tarde en otros estudios para tratar de saber si una colmena había perdido a su reina, una ardua tarea para los apicultores que conlleva una gran pérdida económica. Ahora bien, es sabido – según Al-Turjman en su aportación F. Artificial Intelligence in IoT; Springer: Cham, Switzerland, 2019 y Badenhorst, J.; de Wet, F. The Usefulness of Imperfect Speech Data for ASR Development in Low-Resource Languages. Information 2019 – que el acceso a información abierta fomenta las líneas de investigación y las hace más fiables, así como que el entreno de aprendizajes de máquinas es más efectivo y puede tardar menos tiempo en llegar a su objetivo cuanta más información fiable tengan a su disposición. Además, considerando el ejemplo anterior a una escala global, si investigadores de diferentes partes del mundo comparten resultados con el resto, no hablamos manualmente, sino de que los dispositivos que usan estas personas para recabar toda esta información la volcasen directamente a la red, estando disponible en todo momento, los procesos de aprendizaje y desarrollo serían, por la deducción anterior, más rápidos y efectivos y aquí entra en juego el papel del almacenamiento y la libre disposición de los datos preservando su integridad 

Fuente: IoT-Based Bee Swarm Activity Acoustic Classification Using Deep Neural Networks 

Fruto del desarrollo, Microsoft construye Cosmos DB, una base de datos totalmente gestionada, elásticamente escalable y globalmente distribuida con un enfoque multimodal que permite utilizar datos basados en documentos, clave-valor, columnas anchas o gráficos, con posibilidad de comunicación con diversas API como MongoDB, Cassandra o Table API. Además, proporciona acuerdos de nivel de servicio (SLA) completos para garantías de rendimiento, latencia, disponibilidad y coherencia, algo que no ofrece ningún otro servicio de base de datos. Con ella podríamos dar solución al problema previamente descrito. 

Cosmos DB & IoT 

Vamos a hablar de Cosmos DB y su relación con el IoT a través de diferentes soluciones, lo que nos permitirá remarcar sus ventajas y desventajas. 

  • Bosch Smart Home: Bosch hace instalaciones de casas inteligentes y para que su producto sea accesible a todos sus clientes usan Cosmos DB. La razón es sencilla, pensemos que Bosch puede hacer este tipo de instalaciones en cualquier lugar del mundo, además del acondicionamiento inteligente, ofrece una plataforma dónde el cliente puede controlar y visualizar los diferentes componentes Smart de su hogar, por lo que el acceso a los datos que genera su producto debe ser accesible desde diversos lugares, con rapidez y soportando gran volumen de peticiones y Cosmos DB cubre estas necesidades. 
  • Rx.Health: es la solución de salud integral de un grupo de ingenieros y médicos para monitorizar la salud de los pacientes utilizando la ubiquidad de sus teléfonos móviles. La plataforma aúna las prácticas de medicina más tradicional trasladas al mundo digital, como revisiones por videollamada o diagnósticos en base a tests, con las innovaciones de monitorización corporal mediante dispositivos como relojes inteligentes o incluso dispositivos corporales. Esta solución es un reto a nivel de datos, ya que se envía mucha información a la aplicación, por lo que decidieron adoptar un modelo sin servidor que usa Cosmos DB como responsable de datos. 

Un componente de Cosmos DB que hace posible que los datos del Hot Path puedan ser analizados instantáneamente y también almacenados es el Change Feed. 

El Change Feed es un registro persistente de los cambios de entrada y salida, orientado a largos conjuntos de datos con muchas operaciones de escritura, que se producen entre la base de datos y los dispositivos de telemetría. Asegura que todos los datos son tratados y procesados con los protocolos que se hayan establecido para ello, de forma ordenada, fidelizando así la fiabilidad de la solución. 

Fuente: SAIKALYAN AKUNURI 

Esta herramienta nos permite crear Views que conviene tener actualizadas y que están compuestas por datos importantes para nuestra solución. 

Pero Cosmos DB no solo sirve para grandes soluciones, Microsoft pone a disposición de los desarrolladores de soluciones más modestas, con picos de cargas de trabajo una opción serverless de Azure Cosmos DB que la hace más asequible económicamente. El coste es por operación de cómputo, es decir, por los recursos necesarios en cada operación 

Transición Cloud en España con CosmosDB 

Según las encuestas, el 67% de las empresas ya usa infraestructuras Cloud para el 20% de sus operaciones y el 95% cree que es inevitable la transición total a la nube. Muchas de estas empresas adoptan primero modelos híbridos, manteniendo parte de la infraestructura On-Premise y Cosmos DB tiene mucho que aportar en este sentido ya que está concebida para ser escalable y poder adaptarse a las necesidades en tendencia creciente de los clientes. El cliente paga por lo que consume y no tiene que preocuparse por dedicar recursos en mantener la infraestructura, Cosmos DB lo hace por ellos, lo que hace una opción interesante para las migraciones a Cloud. 

Use Case Raona: Cosmos DB & Azure OpenAI 

Raona también se ha tirado a la piscina con CosmosDB, elaborando una solución muy interesante y que atraviesa desde la arquitectura serverless hasta el uso de IA. 

La solución se basa en un middleware entre una solución externa y ChatGPT. Ofrece los servicios de OpenAI instalados en una instancia de Azure, pero de forma segura ya que la información generada al usar la herramienta no la gestiona directamente OpenAI sino esta capa intermedia que se encuentra, además, encriptada. 

Azure te ofrece varios modelos de ChatGPT disponibles dentro de tu organización proporcionando un entorno seguro, a lo que han sabido sacarle partido en Raona. 

La interfaz es básicamente una Web App que simula la UI de ChatGPT, esto sería la parte frontal de la solución, mientras que la lógica reside en unas Azure Functions que gestionan todas las peticiones que generan los usuarios, haciendo uso de los modelos de ChatGPT y persistiendo las peticiones en una base de datos no relacional que es Cosmos DB. 

Todo esto, desarrollado en una instancia de Azure adoptando un modelo serverless que contabiliza a través de RU los recursos que utiliza la solución y los factura de esta manera. 

La encriptación corre por cuenta de Azure Key Vault y la “salud” de la aplicación la gestiona Azure Application Insights, por lo que el resultado se resume en tres palabras: ubicuidad, seguridad y ahorro. 

 

¿Quieres recibir más información acerca de IoT?



    Andrea Martín

    Knowledge Seeker y amante de la cultura ‘Maker’. Consultant en Ingeniería de Software en Raona.

    Compartir en Redes Sociales