A Complexity Metric for Microservices Architecture Migration
- 1 March 2020
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 169-178
Abstract
Monolith applications tend to be difficult to deploy, upgrade, maintain, and understand. Microservices, on the other hand, have the advantages of being independently developed, tested, deployed, scaled and, more importantly, easier to change and maintain. This paper addresses the problem of migrating a monolith to a microservices architecture. Therefore, we address two research questions: (1) Can we define the cost of decomposition in terms of the effort to redesign a functionality, which is implemented in the monolith as an ACID transaction, into several distributed transactions? (2) Considering several similarity measures between domain entities, which provide a better decomposition when they are compared using the proposed complexity metric? To answer the first research question, we propose a complexity metric, for each functionality of the monolith application, that measures the impact of relaxing the functionality consistency on the architecture redesign and implementation. Regarding the second research question, we experiment with four similarity measures, each based on a different type of information collected from monolith functionality implementation. We evaluated our approach with three monolith systems and compared our complexity metric against industry metrics of cohesion and coupling. We also evaluated the different similarity measures in terms of the complexity of the decomposition they produce. We were able to correctly correlate the complexity metric with other metrics of cohesion and coupling defined in other research and we conclude that no single combination of similarity measures outperforms the other, which is confirmed by the existing research. Additionally, we conclude that the approach can help on an incremental migration to microservices, which, actually, is the strategy proposed by the industry experts.Keywords
This publication has 16 references indexed in Scilit:
- Automatically measuring the maintainability of service- and microservice-based systems2017
- Microservices Identification Through Interface Analysis2017
- Extraction of Microservices from Monolithic Software Architectures2017
- Workload-Based Clustering of Coherent Feature Sets in Microservice Architectures2017
- Service Cutter: A Systematic Approach to Service Decomposition2016
- Perspectives on the CAP TheoremComputer, 2012
- A Metrics Suite for Evaluating Flexibility and Complexity in Service Oriented Architectures2009
- Towards robust distributed systems (abstract)2000
- A critique of ANSI SQL isolation levelsACM SIGMOD Record, 1995
- A metrics suite for object oriented designIEEE Transactions on Software Engineering, 1994