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.
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.
© 2008-2024 Fundación Dialnet · Todos los derechos reservados