Prodef-saas: despliegue y puesta en marcha de un servicio para la resolución de problemas de optimización
Autor
Tornero Hernández, ÁngelFecha
2022Resumen
En la actualidad, los algoritmos de optimización bio-inspirados son ampliamente utilizados en ámbitos académicos y existe una gran cantidad de investigación dedicada a estos. No obstante, son métodos altamente complejos con una larga curva de aprendizaje,
no solo de comprensión sino también de implementación. Es por esto que, a pesar de
ser técnicas considerablemente útiles, su uso no se extiende mucho más allá del ámbito investigador. Prodef es una herramienta que surge en este contexto con el objetivo de expandir el alcance de estas técnicas, tratando de acercarlas a entornos empresariales.
Prodef permite modelar problemas con una interfaz gráfica basada en bloques, definir algoritmos sin escribir código y generar instancias de problemas para su posterior resolución. Sin embargo, en un principio Prodef no era una herramienta que tuviera fácil acceso: utilizarla requería instalar manualmente múltiples dependencias, y se debía hacer uso de
una terminal de Linux para poner en marcha todos los microservicios. Para complicar aún más las cosas, los recursos computacionales corrían a cuenta del usuario. Esta serie de inconvenientes no casaba con la base de Prodef de acercarse a un público sin experiencia.
En este trabajo se ha diseñado una infraestructura para desplegar la herramienta Prodef como un servicio web empleando el modelo SaaS (Software como servicio). Para alcanzar este objetivo, se ha llevado a cabo un aprendizaje previo al trabajo acerca de las tecnologías y plataformas más utilizadas para este tipo de implementación. Primero, se ha contenerizado cada microservicio de la herramienta utilizando Docker. Asimismo, se ha realizado una configuración en Docker-compose capaz de poner en marcha todos los contenedores de Prodef simultáneamente. Para esta tarea ha sido necesario realizar cambios en el código tanto del back-end como del front-end. También ha sido necesario contratar un proveedor de servicios de nube como DigitalOcean. Por último, se ha desarrollado un plan de Terraform capaz de crear un servidor virtual nuevo que, automáticamente, realiza todos los pasos necesarios para poner el marcha el Docker-compose de Prodef, consiguiendo de esta forma el despliegue del servicio.
Como resultado de este Trabajo de Fin de Grado no solo se ha establecido un plan de despliegue portable a cualquier proveedor de servidores virtuales, sino que también se ha adaptado el código de Prodef para futuras tareas de este ámbito. Además, se ha dejado operativo un enlace con nombre de dominio para acceder a Prodef desde cualquier navegador. Currently, bio-inspired optimization algorithms are widely used in academic settings and there is a large amount of investigation devoted to them. However, they are highly
complex methods with a long learning curve, not only in understanding but also in
implementation. This is why, despite being considerably useful techniques, their use does
not extend much beyond the investigation environment. Prodef is a tool that arises in this
context with the aim of expanding the scope of these techniques, trying to bring them closer to business environments. Prodef allows modeling problems with a block-based
graphical interface, defining algorithms without writing code and generating problem instances for subsequent resolution. Initially, however, Prodef was not a tool that was easily accessible: using it required multiple dependencies to be installed manually, and a Linux terminal had to be used to launch all the microservices. To complicate matters
further, computational resources were at the user’s expense. This set of drawbacks did not fit with Prodef’s rationale of reaching out to an inexperienced audience.
In this work, an infrastructure has been designed to deploy the Prodef tool as a web service using the SaaS (Software as a Service) model. To achieve this goal, a pre-work
learning has been carried out about the most used technologies and platforms for this type of implementation. First, each microservice of the tool has been containerized using Docker. Also, a configuration has been made in Docker-compose capable of starting all the Prodef containers simultaneously. For this task it has been necessary to make changes in the code of both the back-end and front-end. It has also been necessary to contract a cloud
service provider such as DigitalOcean. Finally, it has been developed a Terraform plan capable of creating a new virtual server that automatically performs all the necessary steps to launch the Docker-compose of Prodef, thus achieving the deployment of the service.
As a result of this Final Degree Project, not only a deployment plan portable to any virtual server provider has been established, but also the Prodef code has been adapted for
future tasks in this area. In addition, a link with a domain name has been left operational to access Prodef from any browser.