Tesis "Método para el manejo implícito de patrones de microservicios en mallas de servicios"
Sustentante: Antonio Nicolas Plata
Directores: Dr. José Luis González Compeán, Cinvestav Unidad Tamaulipas; Dr. Víctor Jesús Sosa Sosa, Cinvestav Unidad Tamaulipas.
Sinodales: Dr. José Luis González Compeán, Cinvestav Unidad Tamaulipas; Dr. Víctor Jesús Sosa Sosa, Cinvestav Unidad Tamaulipas; Dr. Iván López Arévalo, Cinvestav Unidad Tamaulipas; Dr. Miguel Morales Sandoval, Cinvestav Unidad Tamaulipas.
Resumen:
La nube se ha convertido en el nuevo facilitador de procesamiento, almacenamiento y análisis de datos. Los servicios ofrecidos en la nube actualmente se construyen con esquemas flexibles de bajo acoplamiento siguiendo una arquitectura de microservicios (conjunto de aplicaciones encapsuladas como contenedores virtuales) y administrados por gestores de mallas de servicios. Este tipo de arquitectura permite, a los diseñadores, crear patrones arquitecturales (tuberías, flujos de datos o estructuras de procesamiento paralelo/distribuido) que son usados para construir sistemas de microservicios. Sin embargo, los gestores de mallas de servicios actuales se basan en patrones de tubería y delegan la construcción de otros patrones a los gestores de contenedores virtuales (e.g. Kubernetes ofrece el patrón manejador-trabajador, el cual es usado para desplegar microservicios). Por lo tanto, la creación de servicios de procesamiento y análisis de datos para entornos de la nube están limitados al uso de los patrones actualmente disponibles, lo que crea una dependencia con el gestor de microservicios y/o de contenedores virtuales. Esta limitación evita que el diseñador defina la combinación de patrones que le interese crear para obtener una característica de diseño dada (e.g. eficiencia) en los sistemas de microservicios. Esta característica, sin embargo, no se encuentra actualmente presente en los gestores de mallas de servicios. En este proyecto de tesis se propone un método para el manejo implícito de patrones genéricos de microservicios en mallas de servicios, el cual permita a los diseñadores crear patrones no considerados actualmente o crear diseños que consideren la combinación de patrones. Este método posibilita la creación y despliegue de patrones arquitecturales genéricos definidos por los usuarios finales mediante la técnica llamada infraestructura como código y un modelo de construcción genérico y declarativo. Este método, por tanto, permite a diseñadores/desarrolladores construir patrones o combinaciones de patrones sin dejar de utilizar los patrones disponibles en la malla de servicios. Este método también considera la integración de componentes para el manejo implícito de los patrones genéricos. Esto significa que las tareas de acoplamiento de microservicios y la gestión de carga de trabajo se realiza de manera transparente, lo que elimina la intervención del gestor de mallas de servicios o del usuario final. Un prototipo funcional basado en este método fue integrado a un esquema gestor de microservicios (Kubernetes) para mejorar las prestaciones de dicho gestor en términos de flexibilidad (para construir patrones nuevos) y eficiencia (al considerar esquemas paralelos y distribuidos).