Background & Problem Statement
The Microservice architecture pattern is a software architecture pattern that structures a software application into many individual services instead of a single, strongly-coupled application, also called monolithic architecture. While it creates many solutions to today’s problems in the fast-paced world of software development and shows a particularly high appeal to the industry, this highly distributed architectural pattern creates new problems and challenges in essential software engineering activities, such as quality assurance. However, the effect of the microservice architecture pattern on the quality of a software product has only become the subject of increased research in recent years. This results in an unclear and non-standardized understanding of microservice architectures. Also, to date there is very little support for evaluating microservice architectures. The underlying problem is that it is difficult to carry out evaluations for new tools and techniques. This is because there is either a lack of microservice systems to be used for evaluating new tools, metrics and patterns, or too little understanding of existing systems being evaluated with to be able to meaningfully interpret the results of such evaluations.
If a system to evaluate new techniques exists, it’s as-is architecture first has to be reconstructed. An as-is architecture of a software system about which one wants to assess its quality and give reasoning of its quality is not a clearly defined artefact that can serve as input for this matter. Rather, it is a conglomerate of statically distributed source code and configuration files from which running applications are generated. Thus, in order to assess the quality of a software system, a model of its as-is architecture must first be created with the help of certain architecture reconstruction methods. However, this method quickly reaches its limits. To reconstruct an as-is architecture of a software system, software architecture reconstruction tools have to analyse certain static source files and dynamic data such as runtime traces. Since only a fraction of the information can be obtained with both techniques, i.e. there is a large information gap between the as-is architecture and the reconstructed as-is architecture model, only a very limited part of the automated quality measurements can be performed on a reconstructed as-is architecture model.
Due to the limitations of reconstructed as-is architecture models stated above, we are trying to develop an exploration platform for microservice applications at the SWC research group at the RWTH Aachen University. Our vision is to use a descriptive approach to define the properties that the microservice application under test should have. By doing so, we hope to be able to create new ways to conduct research on microservice architectures, as this approach is not bound to the limited information content that applies to reconstructed architecture models.