english Icono del idioma   español Icono del idioma  

Por favor, use este identificador para citar o enlazar este ítem: https://hdl.handle.net/20.500.12008/48522 Cómo citar
Título: Plataforma para algoritmos evolutivos paralelos con una arquitectura basada en microservicios.
Autor: Costela Rodio, Luis Sergio
Tutor: Iturriaga, Santiago
González, Laura
Tipo: Tesis de grado
Palabras clave: Algoritmos evolutivos, Arquitectura de microservicios, Patrones de diseño, Código abierto, Computación distribuida y paralela, DevOps, Cloud native
Fecha de publicación: 2024
Resumen: En el campo de los problemas de optimización, existen diversas técnicas para hallar o aproximar soluciones. En este contexto, los algoritmos evolutivos son métodos computacionales inspirados en la evolución natural que definen una serie de pasos para buscar soluciones, las cuales no necesariamente son exactas. Los algoritmos evolutivos paralelos constituyen un caso particular, en el que se utiliza la ejecución simultánea para acelerar la búsqueda en el espacio de soluciones. Por otro lado, la arquitectura de microservicios aporta una serie de beneficios tanto al software como al proceso de desarrollo, abarcando todo su ciclo de vida. Esta arquitectura es considerada uno de los pilares fundamentales del modelo cloud native. El enfoque cloud native busca que las aplicaciones estén diseñadas para ser escalables, resilientes y manejables en condiciones cambiantes y entornos dinámicos, explotando las ventajas de la computación en la nube. Si bien existen diversas herramientas que permiten implementar algoritmos evolutivos paralelos, a nuestro leal saber y entender, ninguna de ellas se adhiere plenamente al enfoque cloud native. Esto representa una oportunidad para explorar nuevas soluciones que aprovechen las ventajas de esta perspectiva. En este contexto, este proyecto propone una plataforma con una arquitectura de microservicios para la ejecución de algoritmos evolutivos paralelos, siguiendo los principios fundamentales del modelo cloud native. En primer lugar, se realiza una revisión de la literatura académica relacionada con las temáticas tratadas, estableciendo una base de conocimientos para tomar decisiones adecuadas al plan de este proyecto. También se consultan sitios web de profesionales con experiencia en el campo, así como la documentación oficial de productos con trayectoria en el área, como jMetal, ParadisEO y HeuristicLab. Simultáneamente, se estudian diversos trabajos relacionados con investigaciones alineadas con la propuesta de este proyecto. Posteriormente, se realiza el análisis y diseño de la plataforma, evaluando la aplicabilidad de la arquitectura de microservicios en sistemas diseñados para ejecutar algoritmos evolutivos. Este proceso se centra en analizar la viabilidad de la arquitectura propuesta, estableciendo requisitos no funcionales verificables. Finalmente, se implementa un prototipo de la propuesta utilizando lenguajes y herramientas de código abierto y de uso libre, garantizando un producto de iguales características. Siempre que es posible, se opta por instalar productos especializados, siguiendo un enfoque orientado a la reutilización. Como tecnología de orquestación, se elige Kubernetes, estándar de facto en la industria, reconocido por su capacidad para automatizar el despliegue, escalado y administración de aplicaciones basadas en contenedores. Además, al utilizar Kubernetes, se obtiene una solución integrada a la nube, que permite tanto un enfoque DevOps como un desarrollo cloud native. Para validar su efectividad y rendimiento, se llevan a cabo pruebas utilizando problemas conocidos en el campo de la optimización. Estos experimentos permiten identificar los beneficios y limitaciones de esta arquitectura, destacando los problemas más adecuados para este entorno y aquellos donde resulta menos favorable frente a otras soluciones. Los resultados obtenidos son satisfactorios y confirman que esta arquitectura es viable para construir este tipo de sistemas, identificando escenarios de uso interesantes.
Editorial: Udelar. FI.
Citación: Costela Rodio, L. Plataforma para algoritmos evolutivos paralelos con una arquitectura basada en microservicios [en línea] Tesis de grado. Montevideo: Udelar. FI. INCO, 2024.
Título Obtenido: Ingeniero en Computación.
Facultad o Servicio que otorga el Título: Universidad de la República (Uruguay). Facultad de Ingeniería.
Licencia: Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0)
Aparece en las colecciones: Tesis de grado - Instituto de Computación

Ficheros en este ítem:
Fichero Descripción Tamaño Formato   
Cos24.pdfTesis de grado 8,94 MBAdobe PDFVisualizar/Abrir


Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons