Microservice Demonstrator for Education
Muhammad Sadiq Odho
Dr.-Ing. Sebastian Heil
Prof. Dr.-Ing. Martin Gaedke
Learning microservices for beginner students is not easy due to the complexity of the topic, requiring a wide range of knowledge covering software architecture, operation, and various technologies. Structuring an application based on microservices adds architectural complexity and introduces specific challenges, that need to be addressed. Microservice patterns are well-known solutions to these common problems. Learning to design a microservice architecture based on microservice patterns on a theretical level, however, leaves most students unable to put their knowledge into practice. In order to be able to design, implement, deploy and operate a microservice-based application, a hands-on practical experience is necessary. The initial learning curve, however, is steep. Thus, an educational microservice demonstrator is needed, that provides a didactically well-designed, incremental learning experience for students and can be used as material for lectures, tutorials and self-learning.
This thesis aims at the creation of such demonstrator, covering all required source code, configuration, and a step-by-step guidance through its creation and setup. The following concepts and patterns need to be covered: basic patterns like API Gateway, Saga, CQRS, operations aspects like cluster and virtualization setup and Continuous Integration and Continuous Delivery (CI/CD), micro frontends and frontend-related patterns as well as advanced patterns for observability, event sourcing and circuit breaker. The demonstrator provides an educational interactive user interface that leads students through all relevant aspects in small increments, providing all required information and configuration. A didactic concept that identifies the input for the students in each increment and a suitable sequence breaks down the content to be learned into feasible small portions is the basis for the demonstrator.
The objective of this thesis is to find an approach or a combination of approaches to solve the above problem of creating an educational microservice demonstrator in the context of microservice patterns. This particularly includes the state of the art regarding microservice architecture and patterns and educational concepts and materials on these topics. The implementation of the demonstrator concept is part of this thesis as well as a suitable evaluation with student test subjects.