TRABAJOS FIN DE GRADO curso: 2023-24
Estudio y evaluación de técnicas de optimización para el despliegue de Microservicios |
Tecnologías Específicas
Computación
Descripcion y Objetivos
Descripción
Las arquitecturas de microservicios han surgido como un nuevo estilo arquitectónico que permite desarrollar una aplicación como una suite de pequeños servicios, cada uno en su propio proceso, que se comunican mediante mecanismos ligeros como HTTP. Una arquitectura de microservicios impone diferentes restricciones para que sea considerada como tal, como por ejemplo, el desarrollo basado en productos no en proyectos, el cumplimiento de la Ley Conway, etc. [1][2].
Los sistemas basados en microservicios son usualmente complejos dada las características del problema y necesidades para que los que se suelen utilizar. Además, otro aspecto añade una dimensión más a la complejidad de su desarrollo: Edge Computing [3]. La aparición de este nuevo paradigma que promueve facilitar el despliegue de los sistemas a los límites de la red, ofrece numerosas ventajas. Por ejemplo, permite reducir el tiempo de respuesta acercando la computación al extremo donde se utiliza. Además, también facilita reducir el coste de despliegue utilizando aquellos nodos de computación más adecuados según las necesidades del usuario final como, por ejemplo, la privacidad de la información o el coste del sistema final.
Sin embargo, al ser un sistema distribuido ha de encontrarse una forma de facilitar el despliegue de dichos microservicios que ofrezca sistema optimo y eficiente. Dicha optimización resulta en la búsqueda de soluciones válidas para los múltiples objetivos que se requieran necesarios [4], [5]. La elección de qué objetivos y cómo satisfacerlos vendrá determinadas por las necesidades concretas de cada desarrollador, de acuerdo al contexto concreto, entendido éste como tiempo de ejecución y coste. Se trata por tanto de un problema de optimización que ha de ser capaz de responder a esas necesidades. Es necesario por tanto identificar qué algoritmos de optimización [6], [7] son los más adecuados a fin de determinar qué configuración despliegue de microservicios es la más adecuada para cada sistema.
Objetivos:
- Comprender el concepto de Microservicio y sus restricciones para el despliegue en el edge.
- Identificar y evaluar alternativas de optimización para el despliegue de microservicios.
- Desarrollar y evaluar diferentes algoritmos de optimización que permiten realizar dicho despliegue de acuerdo a las necesidades impuestas por el desarrollador.
Metodología y Competencias
Metodología:
Scrum: se utilizará mayormente durante el proceso de desarrollo ágil desarrollo y la evaluación del sistema.
Competencias:
[CM1] Capacidad para tener un conocimiento profundo de los principios fundamentales y modelos de la computación y saberlos aplicar para interpretar, seleccionar, valorar, modelar, y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática.
[CM4] Capacidad para conocer los fundamentos, paradigmas y técnicas propias de los sistemas inteligentes y analizar, diseñar y construir sistemas, servicios y aplicaciones informáticas que utilicen dichas técnicas en cualquier ámbito de aplicación.
[CM5] Capacidad para adquirir, obtener, formalizar y representar el conocimiento humano en una forma computable para la resolución de problemas mediante un sistema informático en cualquier ámbito de aplicación, particularmente los relacionados con aspectos de computación, percepción y actuación en ambientes o entornos inteligentes.
[CM6] Capacidad para desarrollar y evaluar sistemas interactivos y de presentación de información compleja y su aplicación a la resolución de problemas de diseño de interacción persona computadora.
Medios a utilizar
Se utilizarán los siguientes medios:
- Visual Studio Code, IDE de programación.
- Un Pc.
- Servidores.
Bibliografía
[1] Newman, Sam. 2015. Building Microservices. O’Reyly, 2021.
[2] Dragoni, N., Giallorenzo, S., Lafuente, A. L., Mazzara, M., Montesi, F., Mustafin, R., & Safina, L. (2017). Microservices: yesterday, today, and tomorrow. Present and ulterior software engineering, 195-216.
[2] Varghese, B., Wang, N., Barbhuiya, S., Kilpatrick, P., & Nikolopoulos, D. S. (2016, November). Challenges and opportunities in edge computing. In 2016 IEEE international conference on smart cloud (SmartCloud) (pp. 20-26). IEEE.
[3] R. Minerva, G. M. Lee, and N. Crespi, “Digital Twin in the IoT Context: A Survey on Technical Features, Scenarios, and Architectural Models,” Proceedings of the IEEE, vol. 108, no. 10, pp. 1785–1824, Oct. 2020, doi: 10.1109/JPROC.2020.2998530.
[4] G.-G. Wang, X. Cai, Z. Cui, G. Min, and J. Chen, “High Performance Computing for Cyber Physical Social Systems by Using Evolutionary Multi-Objective Optimization Algorithm,” IEEE Trans Emerg Top Comput, pp. 1–1, 2017, doi: 10.1109/TETC.2017.2703784.
[5] V. M. Mostofi, D. Krishnamurthy, and M. Arlitt, “Fast and Efficient Performance Tuning of Microservices,” in 2021 IEEE 14th International Conference on Cloud Computing (CLOUD), IEEE, Sep. 2021, pp. 515–520. doi: 10.1109/CLOUD53861.2021.00067.
[6] A. Konak, D. W. Coit, and A. E. Smith, “Multi-objective optimization using genetic algorithms: A tutorial,” Reliab Eng Syst Saf, vol. 91, no. 9, pp. 992–1007, Sep. 2006, doi: 10.1016/j.ress.2005.11.018.
[7] M. Lin, J. Xi, W. Bai, and J. Wu, “Ant Colony Algorithm for Multi-Objective Optimization of Container-Based Microservice Scheduling in Cloud,” IEEE Access, vol. 7, pp. 83088–83100, 2019, doi: 10.1109/ACCESS.2019.2924414.
Tutores NAVARRO MARTÍNEZ, ELENA MARIA LÓPEZ JAQUERO, VÍCTOR MANUEL | Alumno LÓPEZ RÓDENAS, JUAN
|
|