SEMar 5, 2020

Microservice Decomposition via Static and Dynamic Analysis of the Monolith

arXiv:2003.02603v145 citations
Originality Synthesis-oriented
AI Analysis

This work addresses the challenge of microservice decomposition for software engineers and IT service providers, presenting an incremental approach that combines established techniques with dynamic visualization.

The paper tackles the problem of decomposing monolithic software systems into microservices by extending static analysis with dynamic analysis of runtime behavior, applied to a real-world legacy lottery application to identify appropriate service boundaries.

Migrating monolithic software systems into microservices requires the application of decomposition techniquesto find and select appropriate service boundaries. These techniques are often based on domain knowledge, static code analysis, and non-functional requirements such as maintainability. In this paper, we present our experience with an approach that extends static analysis with dynamic analysis of a legacy software system's runtime behavior, including the live trace visualization to support the decomposition into microservices. Overall, our approach combines established analysis techniques for microservice decomposition, such as the bounded context pattern of domain-driven design, and enriches the collected information via dynamic software visualization to identify appropriate microservice boundaries. In collaboration with the German IT service provider adesso SE, we applied our approach to their real-word, legacy lottery application in|FOCUS to identify good microservice decompositions for this layered monolithic Enterprise Java system.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes