CATMA: Conformance Analysis Tool For Microservice Applications

Clinton Cao,Simon Schneider,Nicolás E. Díaz Ferreyra,Sicco Verwer,Annibale Panichella,Riccardo Scandariato
DOI: https://doi.org/10.1145/3639478.3640022
2024-01-24
Abstract:The microservice architecture allows developers to divide the core functionality of their software system into multiple smaller services. However, this architectural style also makes it harder for them to debug and assess whether the system's deployment conforms to its implementation. We present CATMA, an automated tool that detects non-conformances between the system's deployment and implementation. It automatically visualizes and generates potential interpretations for the detected discrepancies. Our evaluation of CATMA shows promising results in terms of performance and providing useful insights. CATMA is available at \url{
Software Engineering
What problem does this paper attempt to address?
The problem this paper attempts to address is the consistency verification between deployment and implementation in Microservice Architecture (MSA). Specifically, MSA allows developers to split the functionality of a software system into multiple smaller services, which increases flexibility and maintainability but also makes it more difficult to debug and evaluate whether the system deployment conforms to its implementation. Existing methods mainly focus on extracting and reconstructing the model of microservice architecture through static analysis or dynamic analysis, but lack tools to compare these two models to detect inconsistencies. The paper proposes an automated tool named CATMA (Conformance Analysis Tool for Microservice Applications), which aims to detect inconsistencies between deployment and implementation in microservice applications and automatically generate potential explanations to help developers quickly locate and understand the issues. The main contributions of CATMA include: 1. **Automatic Inconsistency Detection**: CATMA can automatically detect inconsistencies between static models and dynamic models, which may indicate problems during system deployment. 2. **Visualization and Explanation**: CATMA not only generates visual graphs of inconsistencies but also provides potential explanations, reducing the number of lines of source code developers need to inspect, thereby improving debugging efficiency. 3. **Performance and Practicality**: Preliminary evaluations show that CATMA performs well in terms of performance and providing useful insights, significantly reducing debugging time. Through these features, CATMA aims to help developers more effectively manage and debug complex microservice applications.