Alvic es una empresa del sector de los hidrocarburos. Entre otras soluciones proporcionan el software de gestión de los surtidores y puntos de venta de las gasolineras.
Por las circunstancias de la empresa y sus clientes y debido a una nueva ley que debía salir en vigor en un determinado momento, debían actualizar un determinado software a más de 350 clientes (unas 400 máquinas).
Dada la arquitectura del momento esto requería entrar en cada máquina remotamente o presencialmente para cada actualización de versión del software, gastando muchos recursos cada vez y teniendo un equipo de personas dedicando mucho tiempo a esta tarea.
Tampoco se sabía el inventario exacto de clientes, máquinas, aplicaciones y sus versiones, que era la primera parte a resolver.
El objetivo era, descubrir el estado de las versiones de todas las máquinas, reducir este tiempo y gasto de recursos dedicado a actualizar versiones pensando en el futuro, puesto que el número de clientes y máquinas tiende a crecer mucho con el tiempo.
Para ello se diseñó y se trabajó entre Alvic y Ohmycode una arquitectura en desde una única solución una persona pudiera realizar actualizaciones masivas de versiones.
Era importante tener un inventario de todo lo que había instalado en todas las máquinas de los clientes (algo que con el tiempo se había perdido) recuperando el control de la información de los productos distribuidos entre todos los clientes.
Las máquinas en cuestión estaban siempre en constante comunicación para ver si había una nueva versión disponible y se actualizaban automáticamente, previa aceptación del cliente.
Gracias a Power BI acceder a esta información de manera centralizada y categorizada permitía tener un control diario del estado de las tareas de actualización, o sí había máquinas que no funcionaban correctamente o tenían conflictos de versiones.
Las tecnologías empleadas fueron principalmente React.js, .net (C#) para los servicios, y Mongo DB para la base de datos. Ésta venía determinada por las directrices de Alvic.
El primer paso fue instalar en cada máquina los scripts proporcionada por Alvic para activar el actualizador (un mal menor). Tras plantear el proyecto en varias fases, nos centramos primero en crear una base de datos central que se rellenaba con información de todas las versiones e instalaciones que se habían realizado.
A partir de ahí, a través del backoffice desarrollado, se programaban las actualizaciones las versiones a instalar en cada dispositivo, y de manera automática se iban ejecutando los scripts proporcionados por Alvic para llevar a cabo la actualización para cada máquina y cliente. Esto permitía ejecutar varios clientes a la vez que compartían la casuística de actualización cuando antes se tenía que hacer a mano cada uno.
Conclusiones.Este proyecto es el ejemplo claro de cómo la tecnología puede ahorrar recursos a medio largo plazo, a través de un desarrollo bien diseñado. A partir de este proyecto surgió la idea de aplicar la misma arquitectura para otro software que deben actualizar que supone más de 800 máquinas.