Automated capacity analysis of limitation-aware microservices architectures
- Fresno Aranda, Rafael
- Pablo Fernández Montes Director/a
- Antonio Ruiz Cortés Director/a
Universidad de defensa: Universidad de Sevilla
Fecha de defensa: 22 de marzo de 2024
- Juan Manuel Murillo Rodríguez Presidente/a
- José María García Rodríguez Secretario/a
- Manuel Resinas Arias de Reyna Vocal
- Manuel Noguera García Vocal
- Fabricia Carneiro Roos Frantz Vocal
Tipo: Tesis
Resumen
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.