Stefan Haselböck: Supporting Microservice Architecture with Decision Models, Dissertation, Institut für Wirtschaftsinformatik/ Software Engineering, Johannes Kepler Universität Linz, June 25, 2020.
Software systems provided via the Internet can be used simultaneously by millions of people, and the number of users can vary considerably. The users of such systems also expect constant availability and a state-of-the-art application. Software architecture plays an important role in meeting these expectations. In recent years, large companies such as Netflix, Amazon, and Twitter have come to rely on microservices to implement their systems. The microservice architectural style was first described in 2011. Its main characteristics are that the software system is based on a number of small services, the services are implemented and operated independently of each other, and the services communicate with each other via defined interfaces. The introduction of a microservice architecture therefore influences a wide range of design areas.
To address these issues, this thesis aims to provide support for implementing microservice architectures using decision models. Toward this end, this work first identifies potential microservice design areas and evaluates their importance in a literature review and subsequent expert interview study. The two studies result in a list of 5 main design areas and 15 sub-areas. On the basis of the identified microservice design areas, decision models are created and evaluated in an industrial context. This work presents a metamodel for the creation of the decision models that describes the main elements and the relations between them. In total, 27 decision models for 11 design areas are presented in this work.
In order to determine how these microservice decision models can be used in industry, potential stakeholders and use cases are identified in a technical action research study. To support stakeholders in the use of microservice decision models, this work presents tool support for identified use cases. This tool support is then used in a controlled experiment to evaluate the use of microservice decision models for decision documentation. Results of this study indicate that participants find microservice decision models helpful, and the models have a positive effect on the completeness and efficiency of decision documentation.