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.pdf | Tesis de grado | 8,94 MB | Adobe PDF | Visualizar/Abrir |
Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons