Table of Contents
Fetching ...

A Model-driven Approach for Continuous Performance Engineering in Microservice-based Systems

Vittorio Cortellessa, Daniele Di Pompeo, Romina Eramo, Michele Tucci

TL;DR

The paper tackles performance management in microservice-based systems under continuous deployment by linking runtime tracing data to UML-MARTE architectural models. It proposes a model-driven loop with four steps: runtime data acquisition, design-runtime traceability generation, model analysis/refactoring, and system refactoring, leveraging JTL and PADRE to detect performance antipatterns such as Blob and Pipe-and-Filter. Refactorings, including Clone and Move operations, are translated into running-system changes via Docker and proxy configurations, enabling a continuous performance engineering cycle. Evaluations on two realistic case studies (E-Shopper and Train Ticket) show performance improvements when antipattern-driven refactorings are applied, validating the approach and highlighting the value of design-runtime traceability for performance-aware evolution.

Abstract

Microservices are quite widely impacting on the software industry in recent years. Rapid evolution and continuous deployment represent specific benefits of microservice-based systems, but they may have a significant impact on non-functional properties like performance. Despite the obvious relevance of this property, there is still a lack of systematic approaches that explicitly take into account performance issues in the lifecycle of microservice-based systems. In such a context of evolution and re-deployment, Model-Driven Engineering techniques can provide major support to various software engineering activities, and in particular they can allow managing the relationships between a running system and its architectural model. In this paper, we propose a model-driven integrated approach that exploits traceability relationships between the monitored data of a microservice-based running system and its architectural model to derive recommended refactoring actions that lead to performance improvement. The approach has been applied and validated on two microservice-based systems, in the domain of e-commerce and ticket reservation, respectively, whose architectural models have been designed in UML profiled with MARTE.

A Model-driven Approach for Continuous Performance Engineering in Microservice-based Systems

TL;DR

The paper tackles performance management in microservice-based systems under continuous deployment by linking runtime tracing data to UML-MARTE architectural models. It proposes a model-driven loop with four steps: runtime data acquisition, design-runtime traceability generation, model analysis/refactoring, and system refactoring, leveraging JTL and PADRE to detect performance antipatterns such as Blob and Pipe-and-Filter. Refactorings, including Clone and Move operations, are translated into running-system changes via Docker and proxy configurations, enabling a continuous performance engineering cycle. Evaluations on two realistic case studies (E-Shopper and Train Ticket) show performance improvements when antipattern-driven refactorings are applied, validating the approach and highlighting the value of design-runtime traceability for performance-aware evolution.

Abstract

Microservices are quite widely impacting on the software industry in recent years. Rapid evolution and continuous deployment represent specific benefits of microservice-based systems, but they may have a significant impact on non-functional properties like performance. Despite the obvious relevance of this property, there is still a lack of systematic approaches that explicitly take into account performance issues in the lifecycle of microservice-based systems. In such a context of evolution and re-deployment, Model-Driven Engineering techniques can provide major support to various software engineering activities, and in particular they can allow managing the relationships between a running system and its architectural model. In this paper, we propose a model-driven integrated approach that exploits traceability relationships between the monitored data of a microservice-based running system and its architectural model to derive recommended refactoring actions that lead to performance improvement. The approach has been applied and validated on two microservice-based systems, in the domain of e-commerce and ticket reservation, respectively, whose architectural models have been designed in UML profiled with MARTE.
Paper Structure (30 sections, 5 equations, 15 figures, 5 tables)

This paper contains 30 sections, 5 equations, 15 figures, 5 tables.

Figures (15)

  • Figure 1: A high-level workflow of our approach.
  • Figure 2: Runtime data acquisition
  • Figure 3: Log Metamodel
  • Figure 4: A fragment of the raw log
  • Figure 5: A Log Model sample in Eclipse
  • ...and 10 more figures