Abstract
AbstractThe microservice architecture is claimed to satisfy ongoing software development demands, such as resilience, flexibility, and velocity. However, developing applications based on microservices also brings some drawbacks, such as the increased software operational complexity. Recent studies have also pointed out the lack of methods to prevent problems related to the maintainability of these solutions. Disregarding established design principles during the software evolution may lead to the so-called architectural erosion, which can end up in a condition of unfeasible maintenance. As microservices can be considered a new architecture style, there are few initiatives to monitoring the evolution of software microservice-based architectures. In this paper, we introduce the SYMBIOTE method for monitoring the coupling evolution of microservice-based systems. More specifically, this method collects coupling metrics during runtime (staging or production environments) and monitors them throughout software evolution. The longitudinal analysis of the collected measures allows detecting an upward trend in coupling metrics that could represent signs of architectural degradation. To develop the proposed method, we performed an experimental analysis of the coupling metrics behavior using artificially generated data. The results of these experiment revealed the metrics behavior in different scenarios, providing insights to develop the analysis method for the identification of architectural degradation. We evaluated the SYMBIOTE method in a real-case open source project called Spinnaker. The results obtained in this evaluation show the relationship between architectural changes and upward trends in coupling metrics for most of the analyzed release intervals. Therefore, the first version of SYMBIOTE has shown potential to detect signs of architectural degradation during the evolution of microservice-based architectures.
Funder
Conselho Nacional de Desenvolvimento Cient?fico e Tecnol?gico
Publisher
Springer Science and Business Media LLC
Reference50 articles.
1. Shahin M, Zahedi M, Babar MA, Zhu L (2018) An empirical study of architecting for continuous delivery and deployment. Empir Softw Eng 24:1–48.
2. Lewis J, Fowle M (2014) Microservices - a definition of this new architectural term. http://martinfowler.com/articles/microservices.html. Accessed 01 Nov 2018.
3. Bogner J, Fritzsch J, Wagner S, Zimmermann A (2018) Limiting technical debt with maintainability assurance – an industry survey on used techniques and differences with service- and microservice-based systems In: 2018 IEEE/ACM International Conference on Technical Debt (TechDebt), 125–133.. Association for Computing Machinery, New York.
4. de Silva L, Balasubramaniam D (2012) Controlling software architecture erosion: a survey. J Syst Softw 85(1):132–151.
5. Chen L (2018) Microservices: architecting for continuous delivery and devops In: 2018 IEEE International Conference on Software Architecture (ICSA), 39–397.. IEEE Computer Society, Los Alamitos.
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献