Probando microservicios en un entorno ágil

Rodríguez Alcalá, Daniel (2019). Probando microservicios en un entorno ágil. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. de Sistemas Informáticos (UPM), Madrid.

Description

Title: Probando microservicios en un entorno ágil
Author/s:
  • Rodríguez Alcalá, Daniel
Contributor/s:
  • Ortega Requena, Fernando
Item Type: Final Project
Degree: Grado en Ingeniería del Software
Date: July 2019
Subjects:
Freetext Keywords: Microservicios; Desarrollo ágil del software
Faculty: E.T.S.I. de Sistemas Informáticos (UPM)
Department: Sistemas Informáticos
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (2MB) | Preview
[img] Archive (ZIP) - Users in campus UPM only
Download (31MB)

Abstract

A día de hoy muchas corporaciones se han encontrado con un problema de escalabilidad, en la que sus productos están llegando a más y más personas, y los equipos de desarrollo empiezan a ser más diversos y la gran mayoría ha adoptado algún tipo de metodología ágil, esto ha conllevado a una gran cantidad de empresas a migrar a una arquitectura de microservicios. Este cambio tecnológico no sólo son ventajas. El hecho de cambiar de una arquitectura monolítica en el que todo se encuentra en un solo servicio a una arquitectura de microservicios supone que hay que tomar decisiones que influyen de manera directa con el éxito que tendrá la migración, como por ejemplo, cómo dividir una aplicación enorme en servicios más pequeños de responsabilidad única. Otros de los retos que supone el cambio a una aplicación de microservicio son las pruebas. Debido a que dividir la aplicación en servicios de menor tamaño que se comunican entre sí, supone un incremento en la complejidad de la aplicación, aumentando el número de pruebas de integración necesarias para verificar la calidad de la aplicación, otro dato de interés es la cantidad de recursos necesarios para ser capaz de probar la aplicación en local, en el caso de una aplicación monolítica a pesar de ser muy grande, aún sería posible probarla en local, mientras que si se divide en cientos de servicios, no sería posible. Uno de los puntos clave que se detallarán a lo largo de este trabajo, es como aplicar metodologías y practicas ágiles en el desarrollo de una aplicación de microservicios para obtener la mayor probabilidad de éxito. Haciendo especial hincapié en los distintos tipos de pruebas que se pueden implementar en una aplicación para obtener ciertas garantías de calidad primando la velocidad. Este trabajo se divide en dos partes. La primera parte describe y analiza la teoría sobre las principales metodologías y prácticas ágiles, después se estudian y catalogan los diferentes tipos de pruebas que se pueden implementar en una aplicación y por último se describe en detalle el concepto de microservicios, definiendo cada una de las características que lo componen. La segunda parte, mucho mas practica, demuestra cómo desarrollar una nueva funcionalidad en un microservicio, paso por paso, aplicando prácticas ágiles e implementando los distintos tipos de pruebas que se han estudiado anteriormente. Abstract: As of today many corporations have found an scalability issue, in which their products are reaching more and more persons, and the development teams have become more diverse, the big majority has adopted agile methodologies, this have made most companies migrate to a microservice architecture. This technological change is not only advantages. Changing from a monolithic architecture in which everything is found in a single service to a microservices architecture means that it is needed to take decisions that will directly influence the success of the migration, such as how to split a huge application in smaller services with unique responsibility. Other challenges that the change to a microservice application involves are the tests. Because dividing the application into smaller services that communicate with each other, implies an increase in the complexity of the application, increasing the number of integration tests needed to verify the quality of the application, another thing to have in consideration is the amount of resources needed to be able to test the application locally, in the case of a monolithic application despite being very large, it would still be possible to test locally, while if it is divided into hundreds of services, it would not be possible. One of the key points that will be detailed throughout this work, is how to apply methodologies and agile practices in the development of a microservice application to obtain the highest probability of success. With special emphasis on the different types of tests that can be implemented in an application to obtain certain quality guarantees while keeping the development speed optimal. This paper is divided in two parts. The first part describes and analyzes the theory of agile methodologies and agile practices, then the different types of tests that can be implemented in an application are studied and cataloged and finally the microservices concept is described in detail, defining each one of the characteristics that compose it. The second part, much more practical, demonstrates how to develop a new functionality in a microservice, step by step, applying agile practices and implementing the different types of tests that have been studied previously.

More information

Item ID: 56440
DC Identifier: http://oa.upm.es/56440/
OAI Identifier: oai:oa.upm.es:56440
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 16 Sep 2019 07:02
Last Modified: 16 Sep 2019 07:04
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM