30 Nov 2020
16:00 Master's Defense Fully distance
Theme
Monitoring the coupling evolution of microservice-based architectures: a method for detecting indications of architectural erosion
Student
Daniel Rodrigo de Freitas Apolinário
Advisor / Teacher
Breno Bernard Nicolau de France
Brief summary
Delivering software faster and more frequently has been instrumental in an increasingly digital world and with increasingly demanding consumers. The industry has increasingly adopted microservice architecture due to the assumption that this style of architecture meets modern software development demands, such as resilience, flexibility and speed. However, developing applications based on microservices also has some drawbacks, such as increasing the operational complexity of the software. Recent studies point to the lack of methods to prevent problems related to the maintainability of solutions based on this architectural style. Architectural problems are common causes of loss of software maintainability. Ignoring known design principles during the evolution of the software can lead the software to architectural erosion, which can prevent its maintenance. To avoid this, it is essential to monitor the evolution of the software architecture. However, there are few initiatives to monitor the evolution of microservices-based architectures. The objective of this work is to develop a method to monitor and analyze the evolution of microservices-based architectures, allowing software engineers to make architectural decisions in a timely manner. For this, the method collects coupling metrics between services at run time (test or production environments). The metrics used were obtained in the literature and are calculated from a dependency graph between microservices. The method analyzes the evolution of the graph over time to identify significant upward trends in coupling metrics, which may be signs of architectural erosion. We performed an experimental analysis of the behavior of the coupling metrics using artificially generated data to help develop the proposed method. The experiment showed that one of the four metrics used is not sensitive to the simulated architectural problems. The method uses 3 other metrics in a combined way to alert you to the indication of an architectural problem. Finally, the method was evaluated using the Spinnaker software, a real industrial case available in the GitHub repository. The results of applying the method in the real case demonstrate the feasibility of its application in most software based on existing microservices, as it depends on commonly used technologies such as Kubernetes and Docker. The results of the work also demonstrate the potential of the method to detect evidence of architectural erosion during the evolution of microservices-based architectures.
Examination Board
Headlines:
Breno Bernard Nicolau de França IC / UNICAMP
Paulo Sérgio Medeiros dos Santos EIA / UNIRIO
Luiz Eduardo Buzato IC / UNICAMP
Substitutes:
Eliane Martins IC / UNICAMP
Gustavo Henrique Lima Pinto ICEN / UFPA