Final Thesis: Performance Optimization for JValue: Implementing and Evaluating Microservice Architectures

Abstract: The emergence of microservice architectures presents a paradigm shift in application development, offering a modular approach where applications are composed of small, independent services, that focus on one specific task. While this architecture fosters many advantages regarding flexibility, scalability, and maintainability, it introduces challenges, particularly in testing. Crucially, performance testing serves as a cornerstone in the decision-making process for choosing architecture, technology, frameworks, and infrastructure. Thus, having quantifiable and comparable metrics is essential to build a solid foundation for decision-making. Performance testing becomes paramount to ensure adherence to non-functional requirements like throughput and response time, identifying potential bottlenecks in a distributed environment. In this thesis, the examination focuses on the broader issue of testability and performance bottlenecks within microservice architectures, through the lens of the JValue application. The JValue Hub serves as a tool for developers and data scientists in the context of open data application development, enabling users to collect open data from APIs, to apply processing and cleaning processes, and to make the transformed data available for further processing. Given the current architecture of the JValue Hub, there exists a bottleneck. Each generated pipeline run within the JValue architecture spawns an individual subprocess, which demands a substantial allocation of resources. The initialization and management of subprocesses results in significant overhead, including memory usage, process creation and termination, as well as general subprocess management by the main process. This architectural limitation poses a considerable challenge to the overall system performance and scalability of the JValue Hub. This thesis focuses on comparing three different microservice architectures, analyzing their performance regarding different metrics and aspects, to guide informed architectural decisions. Furthermore, this research aims to provide valuable insights into enhancing the performance of the JValue application.

Keywords: microservices, performance, performance test, bottleneck, message queue, RabbitMQ, JValue

PDF: Master Thesis

Reference: Marco Döll. Performance Optimization for JValue: Implementing and Evaluating Microservice Architectures. Friedrich-Alexander-Universität Erlangen-Nürnberg: 2024.