dc.contributor.advisor | Fernández Montes, Pablo | es |
dc.contributor.advisor | Ruiz Cortés, Antonio | es |
dc.creator | Fresno Aranda, Rafael | es |
dc.date.accessioned | 2024-05-20T10:09:50Z | |
dc.date.available | 2024-05-20T10:09:50Z | |
dc.date.issued | 2024-03-22 | |
dc.identifier.citation | Fresno Aranda, R. (2024). Automated capacity analysis of limitation-aware microservices architectures. (Tesis Doctoral Inédita). Universidad de Sevilla, Sevilla. | |
dc.identifier.uri | https://hdl.handle.net/11441/158600 | |
dc.description.abstract | La aparición de las arquitecturas de microservicios (MSAs) ha supuesto un cambio importante
en la forma en la que se desarrollan sistemas y aplicaciones. Se trata de una
evolución del paradigma de las arquitecturas orientadas a servicios (SOAs), y cuenta
con diversas ventajas frente a las arquitecturas monolíticas tradicionales. Por ejemplo,
podemos destacar la agilidad y rapidez de despliegue, escalabilidad, rendimiento, mejor
mantenimiento o flexibilidad. Esto hace que las MSAs hayan ganado popularidad en los
últimos años, habiendo sido adoptadas por muchas empresas como Netflix, Amazon o
Spotify.
En el contexto de las MSAs, es habitual el uso de interfaces de programación de
aplicación (APIs), que sirven como mecanismo de comunicación entre los servicios de la
arquitectura. Entre los diversos tipos de APIs, las más populares son las APIs RESTful,
que se basan en el uso de peticiones HTTP para controlar el estado de datos o servicios,
denominados recursos. Esta aproximación permite una mayor descentralización de los
servicios, lo que coincide con la esencia de las MSAs.
Ante este escenario, muchas empresas han encontrado en las APIs la posibilidad de
vender sus datos y funcionalidades para que puedan ser usados por otras empresas. Este
nuevo paradigma se denomina API economy, y se define como el conjunto de modelos y
prácticas de negocio que se centran en torno al uso de APIs públicas. Esto abre la puerta
a nuevas formas de innovación, colaboración y generación de beneficios.
Una de las bases de la API economy es la definición de planes de precios. Las empresas
que quieran usar una API deberán elegir entre diversos planes. Estos planes establecen
una serie de limitaciones de uso a cambio de un precio específico, habitualmente una
suscripción periódica. Las limitaciones más habituales son las restricciones del número
de peticiones que se pueden enviar en un determinado periodo de tiempo. No obstante,
existen otras muchas limitaciones que dependen del dominio de cada API.
Con la aparición de la API economy, se hace necesario analizar cómo influyen las
limitaciones y los precios de los planes elegidos en la capacidad de la MSA. Esto es,
averiguar la carga de trabajo que la MSA puede soportar sin exceder las limitaciones de
las APIs consumidas, así como mantener los costes dentro del presupuesto de las empresas.
Además, no es poco frecuente que las empresas ofrezcan sus propias APIs con sus propios
planes a sus clientes. En este escenario, las empresas actúan como prosumidores, porque
consumen APIs externas a la vez que proveen sus propias APIs. La confrontación de estos
dos roles genera un problema de impedancia, porque las empresas necesitan gestionar y
equilibrar cuidadosamente los costes de las APIs consumidas, mientras que mantienen
condiciones óptimas para sus clientes.
Hasta donde nosotros sabemos, este análisis no se ha hecho nunca en la literatura
existente, lo que abre una línea de investigación interesante a la vez que útil. Además, el
análisis manual de una MSA con APIs externas es tedioso y propenso a errores, por lo
que es conveniente tener algún sistema de análisis automático. Por lo tanto, el objetivo
principal de esta tesis es el desarrollo de modelos y técnicas para asistir en el análisis de
la capacidad de arquitecturas de microservicios que consumen APIs externas con limitaciones.
Estas MSAs las hemos denominado arquitecturas de microservicios conscientes
de limitaciones (LAMAs). Los resultados principales han sido:
(I) Definición de un modelo para la descripción de LAMAs y los planes de precios.
Esto comprende: (i) analizar un conjunto representativo de APIs reales para conocer
su estructura y elementos habituales; (ii) extensión de un modelo existente con nuevos
elementos; (iii) proponer un nuevo modelo para la descripción de la topología de una
LAMA; (iv) definir un catálogo de operaciones para resolver cuestiones sobre planes de
precios y sobre la capacidad de una LAMA.
(II) Implementación de un ecosistema de herramientas para dar soporte al análisis
automático de la capacidad de una LAMA. Esto incluye: (i) desarrollar un conjunto de
herramientas para el análisis de la validez de un pricing y la capacidad de una LAMA;
(ii) implementar un catálogo base de operaciones de análisis; (iii) validar las herramientas
con escenarios reales y sintéticos.
En esta tesis, presentamos un conjunto de modelos y herramientas que comprende
lo siguiente: (i) un modelo para describir planes de precios de APIs RESTful, así como
una serialización alineada con el estándar OpenAPI; y (ii) diversas herramientas para
validar un pricing, calcular automáticamente la capacidad de una LAMA y dar respuesta
a operaciones de análisis. Por lo tanto, los resultados de esta tesis están destinados
a ayudar a las empresas que usen LAMAs en la toma de decisiones en función de sus
necesidades. | es |
dc.description.abstract | The appearance of microservice architectures (MSAs) has been an important change in
the way that systems and applications are developed. They are an evolution of the
service-oriented architecture (SOA) paradigm, and have multiple advantages over traditional
monolithic architectures; as an example, we can highlight the agility and speed of
deployment, scalability, performance, improved maintenance or flexibility amongst others.
This made MSAs more and more popular over the last years, and they have been adopted
by many companies such as Netflix, Amazon or Spotify.
In the context of MSAs, it is common to use application programming interfaces
(APIs), that serve as a communication mechanism between the services of the architecture.
Among the various types of APIs, the most popular are RESTful APIs, which are based on
the usage of HTTP requests to manage the state of data or services, known as resources.
This approach contributes to the decentralization of services, and this is aligned with the
essence of MSAs.
In this scenario, many companies have found in APIs the possibility to sell their data
and functionality so that they can be used by other businesses. This new paradigm is
known as API economy, and is defined as the set of business models and practices that
revolve around the usage of public APIs. This paves the way for new ways of innovation,
collaboration and revenue generation.
One of the elements of the API economy is the definition of pricings and plans. Businesses
who wish to use an API must choose between different plans. These plans define a
set of usage limitations for a specific price, which is usually a periodic subscription. The
most common limitations are the restrictions to the number of requests that can be sent
over a certain period of time. Nonetheless, there are many other limitations that depend
on the domain of each API.
With the appearance of the API economy, it becomes necessary to analyze how the
limitations and the price of the chosen plans have an impact on the capacity of the MSA.
That is, calculating the workload that the MSA is able to handle without exceeding the
limitations of the consumed APIs, as well as keeping costs within the businesses’ budget.
Furthermore, it is not uncommon for businesses to offer their own APIs with their own
plans to their customers. In this scenario, businesses act as prosumers, because they
consume external APIs but also provide their own APIs. The confrontation of these
two roles creates an impedance problem, where businesses need to carefully manage and
balance the costs of the consumed APIs, while simultaneously keeping optimal offerings
for their customers.
To the best of our knowledge, this analysis has never been done in the literature,
and this fact opens a line of research that is interesting and also useful. Furthermore,
the manual analysis of an MSA with external APIs is tedious and error-prone, so it is
convenient for businesses to have some automated analysis systems. Given all of this, the
main goal of this thesis is the development of models and techniques to assist in the capacity
analysis of microservice architectures that consume external APIs with limitations. We
coin this type of MSAs as limitation-aware microservice architectures (or LAMAs). The
main results have been the following:
(I) Definition of a model for the description of LAMAs and pricings. This comprises:
(i) analyzing a representative set of real-world APIs to know their structure and common
elements; (ii) extending an existing model with new elements; (iii) proposing a new model
for the description of the topology of a LAMA; (iv) defining a catalogue of operations to
solve questions about pricings and the capacity of a LAMA.
(II) Implementation of an ecosystem of tools to support the automated analysis of the
capacity of a LAMA. This includes: (i) developing a set of tools for the automated analysis
of the validity of a pricing and the capacity of a LAMA; (ii) implementing a base catalogue
of analysis operations; (iii) validating the tools with real-world and synthetic scenarios.
In this thesis, we present a set of models and tools that comprises the following:
(i) a model to describe RESTful API pricings, and a serialization that is in line with the
OpenAPI standard; and (ii) various tools to validate a pricing, automatically calculate the
capacity of a LAMA and provide answers to analysis operations. Therefore, the results of
this thesis are oriented to help businesses using LAMAs in the process of making decissions
according to their needs. | es |
dc.format | application/pdf | es |
dc.format.extent | 167 p. | es |
dc.language.iso | eng | es |
dc.rights | Attribution-NonCommercial-NoDerivatives 4.0 Internacional | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/4.0/ | * |
dc.title | Automated capacity analysis of limitation-aware microservices architectures | es |
dc.type | info:eu-repo/semantics/doctoralThesis | es |
dc.type.version | info:eu-repo/semantics/publishedVersion | es |
dc.rights.accessRights | info:eu-repo/semantics/openAccess | es |
dc.contributor.affiliation | Universidad de Sevilla. Departamento de Lenguajes y Sistemas Informáticos | es |