MSTG: A Flexible and Scalable Microservices Infrastructure Generator

Emilien Wansart,Maxime Goffart,Justin Iurman,Benoit Donnet
2024-04-21
Abstract:The last few years in the software engineering field has seen a paradigm shift from monolithic application towards architectures in which the application is split in various smaller entities (i.e., microservices) fueled by the improved availability and ease of use of containers technologies such as Docker and Kubernetes. Those microservices communicate between each other using networking technologies in place of function calls in traditional monolithic software. In order to be able to evaluate the potential, the modularity, and the scalability of this new approach, many tools, such as microservices benchmarking, have been developed with that objective in mind. Unfortunately, many of these tend to focus only on the application layer while not taking the underlying networking infrastructure into consideration.
Networking and Internet Architecture
What problem does this paper attempt to address?
The paper attempts to address issues primarily focused on the performance evaluation and testing tools for microservice architectures and their network layers. Specifically: 1. **Limitations of existing tools**: Most current microservice benchmarking tools mainly focus on the application layer while neglecting the impact of the underlying network infrastructure. This oversight leads to an incomplete performance evaluation of the overall microservice architecture, especially under high load and complex network environments. 2. **Need for comprehensive evaluation**: To fully assess the performance, modularity, and scalability of microservice architectures, a tool that can simulate both the application layer and the network layer is needed. Such a tool can better help researchers and developers understand the interactions between microservices and how network conditions affect these interactions. 3. **Necessity of integrating telemetry technology**: As the complexity of microservice architectures increases, monitoring and fault isolation become increasingly difficult. Therefore, a method to integrate telemetry technologies (such as OpenTelemetry) is needed to provide detailed performance monitoring and fault diagnosis at both the microservice and network layers. To address the above issues, the paper introduces the MicroServices Topology Generator (MSTG), a new, modular, and scalable tool capable of generating microservice topologies that include both the application layer and the network layer. The main contributions of MSTG include: - **Flexibility and scalability**: MSTG can generate configurations for microservices and network components based on YAML configuration files, supporting deployment on Docker Compose or Kubernetes. - **Integration of telemetry technology**: MSTG integrates existing telemetry solutions, such as OpenTelemetry and Jaeger, providing capabilities for distributed tracing and performance monitoring. - **Performance evaluation**: The paper details the performance evaluation results of MSTG, demonstrating its performance in microservice architectures of varying scales and complexities. - **Practical application scenarios**: The practical value of MSTG is demonstrated through two use cases (replication of existing architectures and intelligent microservice selection), validating its effectiveness in evaluating the impact of telemetry tools on microservice architectures. In summary, MSTG aims to provide a comprehensive, flexible, and scalable tool to help researchers and developers better understand and optimize the performance of microservice architectures.