Implementación de patrones de microservicios

Grondona, Luis Ignacio - Aguirre, Guillermo - González, Bruno

Supervisor(es): González, Laura - Vergara, Sebastián

Resumen:

En el tiempo reciente la arquitectura de microservicios ocupa un lugar cada vez más importante a la hora de definir e implementar sistemas de software. Surge como alternativa a otras arquitecturas, como por ejemplo la monolítica, intentando solucionar los problemas que éstas han presentado a lo largo de los años. Sin embargo, la arquitectura de microservicios introduce algunas nuevas problemáticas ya que resulta, en general, más compleja y no cuenta aún con la madurez suficiente en las prácticas definidas para guiar su adopción. Como respuesta a esto surgen los patrones de microservicios que apuntan a definir soluciones estandarizadas a problemáticas comunes dentro de la arquitectura de microservicios. Si bien esto es un avance importante, aún existen problemas que son difíciles de resolver y otros que se derivan de la propia adopción de los patrones. En particular, se presentan desafíos en relación a cuándo es adecuado utilizar determinado patrón, cómo éste se relaciona con otros patrones, su compatibilidad con el sistema que se intenta diseñar y cómo realizar una implementación basada en dichos patrones utilizando diferentes tecnologías. Este proyecto propone una plataforma que apunta a facilitar y disminuir la curva de aprendizaje necesaria para diseñar, implementar y poner en marcha sistemas de microservicios basados en patrones. Primero, se hizo un análisis de requerimientos funcionales y no funcionales para la plataforma. También, se estudió el trabajo realizado en el área junto con los patrones existentes, extendiendo lo abordado en proyectos de grado anteriores. Luego, en base a los requerimientos recabados se propuso una solución. Se definió una plataforma en la cual un usuario técnico con requerimientos sobre un sistema a construir puede obtener una recomendación de patrones de microservicios que abordan sus problemáticas y luego, en base a esa recomendación, un sistema ejecutable que implemente dichos patrones. Finalmente, se implementó la plataforma definida. Esto involucró el desarrollo de un portal web para la interacción con el usuario final, un motor de recomendación de patrones de microservicios y un generador de un sistema de ejemplo ejecutable que contiene los patrones recomendados.


Detalles Bibliográficos
2021
Arquitectura de microservicios
Patrones de microservicios
Implementación de microservicios
Plataforma de microservicios
Contenedores
Orquestación de contenedores.
Español
Universidad de la República
COLIBRI
https://hdl.handle.net/20.500.12008/32323
Acceso abierto
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0)
Resumen:
Sumario:En el tiempo reciente la arquitectura de microservicios ocupa un lugar cada vez más importante a la hora de definir e implementar sistemas de software. Surge como alternativa a otras arquitecturas, como por ejemplo la monolítica, intentando solucionar los problemas que éstas han presentado a lo largo de los años. Sin embargo, la arquitectura de microservicios introduce algunas nuevas problemáticas ya que resulta, en general, más compleja y no cuenta aún con la madurez suficiente en las prácticas definidas para guiar su adopción. Como respuesta a esto surgen los patrones de microservicios que apuntan a definir soluciones estandarizadas a problemáticas comunes dentro de la arquitectura de microservicios. Si bien esto es un avance importante, aún existen problemas que son difíciles de resolver y otros que se derivan de la propia adopción de los patrones. En particular, se presentan desafíos en relación a cuándo es adecuado utilizar determinado patrón, cómo éste se relaciona con otros patrones, su compatibilidad con el sistema que se intenta diseñar y cómo realizar una implementación basada en dichos patrones utilizando diferentes tecnologías. Este proyecto propone una plataforma que apunta a facilitar y disminuir la curva de aprendizaje necesaria para diseñar, implementar y poner en marcha sistemas de microservicios basados en patrones. Primero, se hizo un análisis de requerimientos funcionales y no funcionales para la plataforma. También, se estudió el trabajo realizado en el área junto con los patrones existentes, extendiendo lo abordado en proyectos de grado anteriores. Luego, en base a los requerimientos recabados se propuso una solución. Se definió una plataforma en la cual un usuario técnico con requerimientos sobre un sistema a construir puede obtener una recomendación de patrones de microservicios que abordan sus problemáticas y luego, en base a esa recomendación, un sistema ejecutable que implemente dichos patrones. Finalmente, se implementó la plataforma definida. Esto involucró el desarrollo de un portal web para la interacción con el usuario final, un motor de recomendación de patrones de microservicios y un generador de un sistema de ejemplo ejecutable que contiene los patrones recomendados.