RadioShop
RadioShop es una empresa que proporciona ambientes sonoros a comercios y empresas.
Para facilitar la gestión de las músicas, tuvimos que poner en producción, en equipo de dos, una arquitectura Big Data y crear una API REST en NodeJS.
Presentación del proyecto
(10 minutos)
Tras presentarnos al equipo de RadioShop, mi tutor me explicó que debía crear una API, un programa que permite comunicar, tratar o modificar los datos almacenados en la base de datos.
Para realizarla correctamente, mi tutor me hacía desarrollar pequeños programas que más tarde se fusionarían para construir la API.
Escucha y descarga de la música
(5 días)
Tras una autoformación en Node.js (plataforma libre que permite usar JavaScript), mi tutor me dio un programa de escucha de música que un desarrollador había construido antes. Busqué entender su funcionamiento para retomarlo y mejorarlo.
Mi primer programa permitía escuchar una música de mi ordenador en una página web en streaming: el envío de pequeños fragmentos de la música a la página para ahorrar ancho de banda.
Programas de visualización, inserción y modificación
(2 días)
La API permite comunicarse con una base de datos, por lo que es esencial poder visualizarla, insertar y modificar datos. Al usar una base MongoDB (NoSQL), tuve que aprender su sistema de consultas (JSON).
Encender todos los servidores de MongoDB
(2 días)
La persona encargada de encender los servidores MongoDB tenía dificultades, así que me uní para ayudarla.
Así conocí el sistema de replicación, un grupo de tres servidores con los mismos datos: si el principal se detiene, uno de los otros dos ocupa su lugar y es elegido como principal. También descubrí el sistema de shard, que reparte la base de datos en fragmentos, uno en una réplica y otro en una réplica distinta.
Creación de una primera versión de la API
(1 día)
La primera versión de la API solo permitía comprobar que toda la información que insertaba se transmitía correctamente a MongoDB y poder visualizarla. Solo permitía una inserción, modificación o visualización simple. El uso de la API se hace mediante una petición HTTP.
Programa de inserción de músicas
(7 días)
Este programa inserta una música (en binario) y su información asociada en la base de datos.
Para ello realicé un programa que «descarga» una música a través de un enlace, recuperando solo su binario, y la cifra para que MongoDB entienda que el valor es binario y crea un documento JSON con toda la información de la música. Por último, el programa envía el documento JSON a la API para insertarlo.
OpLog
(Hasta el final de las prácticas)
El oplog es un archivo de MongoDB que permite la sincronización entre los servidores. Este archivo nos dio muchos problemas hasta el final de las prácticas.
Mi programa de inserción envía la información muy rápido; el oplog, que guarda las últimas inserciones, modificaciones y eliminaciones de la base de datos, no logró seguir el ritmo e hizo caer los servidores.
La API, su versión final
(5 días)
Para aligerar mi trabajo, un miembro del equipo había programado la inserción de las carátulas y de las letras de las canciones, así como su visualización. Por mi parte, realicé la escucha y la visualización de las músicas mono.
Una vez realizados todos los programas, los fusioné con la API y creé un programa que formatea correctamente las letras en la base de datos.
Las pruebas de rendimiento consistieron en comparar el tiempo de descarga de varios cientos de músicas entre los distintos servidores de RadioShop. Una vez terminados mis programas, redacté una documentación técnica y de usuario para cada uno.