Stranner, H. (2020). Microservice decomposition : a case study of a large industrial software migration in the automotive industry [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2020.81104
Microservices sind eine aufkommende Softwarearchitektur. Im Gegensatz zu einem Monolithen wird in einer Microservicearchitektur eine Reihe relativ kleiner Dienste bereitgestellt, die nur über das Netzwerk miteinander kommunizieren. Sie können unabhängig voneinander bereitgestellt und skaliert werden und arbeiten zusammen, um die volle Funktionalität zu erreichen. Monolithen leiden regelmäßig unter schlechter Skalierbarkeit und Wartbarkeit. Mehrere Zerlegungen wurden dokumentiert, um die Situation zu verbessern. In industriellen Umgebungen existieren bereits häufig Monolithen, die unter einer Teilmenge dieser negativen Eigenschaften leiden. Befürworter argumentieren, dass nach dieser Architektur die Wartbarkeit von Software im Vergleich zu einer monolithischen Architektur besser ist. In der akademischen Literatur sind mehrere Migrationen solcher Monolithen zu einer Microservice-Architektur dokumentiert, aber der Ansatz wird nicht immer detailliert beschrieben. Andere Veröffentlichungen stellen Ansätze für solche Migrationen vor, es fehlen jedoch umfangreiche akademische Evaluierungen. Genaue Beschreibungen der verwendeten Ansätze für solche Zerlegungen in Kombination mit groß angelegten Bewertungen im industriellen Kontext sind in der akademischen Literatur selten. Diese Arbeit beschreibt den verwendeten Ansatz für eine solche Zerlegung in der Automobilindustrie und dokumentiert Änderungen am System. Es werden begrenzte Kontexte verwendet, um zu bestimmen, welche Funktionalität zu einem eigenen Dienst werden soll. Fassaden ermöglichen einen schnellen Wechsel zwischen verschiedenen Implementierungen, wodurch das System ohne unnötige Unterbrechungen schrittweise geändert werden kann. Alternative Ansätze werden bewertet und Experteninterviews werden durchgeführt, um sowohl die Realisierbarkeit alternativer Ansätze als auch die mit dem aktuellen Ansatz erzielten Fortschritte zu bewerten. Als Ergebnis der Evaluierung stellt sich die Migration als Erfolg dar. Außerdem hat sich die Entwicklungsgeschwindigkeit verbessert.
de
Microservices are emerging software architecture. Contrary to a monolith, in a microservice architecture a set of relatively small services is deployed, which communicates with each other only over the network. They can independently be deployed, scaled and work together to achieve the full functionality. Monoliths regularly suffer from poor scalability and maintainability and several decompositions are documented with the aim to improve the situation. In industrial settings monoliths already often exist which suffer from any subset of these negative qualities. Proponents argue, that following this architecture the maintainability of software is better, compared to a contrasting monolithic architecture. In academic literature several migrations of such monoliths to a microservice architecture are documented, but the approach is not always described in detail. Other papers present approaches for such migrations but lack large scale evaluations. Precise descriptions of used approaches for such decompositions in combination with large scale industrial evaluations are rare in academic literature. This work describes the used approach for one such decomposition in the automotive industry and documents changes to the system. To summarize bounded contexts are used to determine which functionality should become its own service and facades allow to quickly switch between different implementations, which allows to gradually change the system without unnecessary disruptions. Alternative approaches are evaluated and expert interviews are conducted to assess both the viability of alternative approaches and the progress made using the current approach. While still ongoing, the experts agree that the migration is a success. While the migration is still ongoing, it can already be considered a success as a significant part of the development effort has shifted over to the newer services and the experts prefer working on them. The development speed has also improved drastically.