Microservices: Trend in der Softwareentwicklung

Software-Architekturen befinden sich in stetigem Wandel. Aktuell stellen viele Unternehmen ihre monolithischen Software-Strukturen auf Microservice-basierte Lösungen um. Microservices sind ein Architektur-Ansatz, bei welchem eine Anwendung in viele einzelne Dienste unterteilt wird. Diese Dienste laufen jeweils in einem eigenen Prozess oder einer eigenen Umgebung und sind stark voneinander entkoppelt. Zur Kommunikation zwischen den einzelnen Diensten wird häufig ein auf Request-Response-basiertes Verfahren oder eine Event-gesteuerte Architektur verwendet. Microservices bieten den Vorteil einer starken Modularisierung der Anwendung, wodurch die Strukturierung der gesamten Software erleichtert wird. Da die Dienste unabhängig voneinander sind, lässt sich ein einzelner Dienst in einem kleineren Team mit einer agilen Arbeitsweise entwickeln. Ebenso vereinfacht sich die Wartbarkeit, das Deployment und die Skalierbarkeit der Anwendung durch die einzelnen Microservices. [1]

Servicequalität in Microservice-Architekturen durch automatisiertes Testen

Bereits in monolithischen Anwendungen hat sich die Entwicklung von automatisierten Tests bewährt, um Anforderungen und Qualitätsstandards an die Software zu erfüllen und um Mängel und Fehler in der Anwendung frühzeitig zu erkennen. Die höhere Komplexität einer Microservice-Architektur erfordert dabei jedoch neue Herangehensweisen, um die Anwendung im Ganzen testen zu können. Daher stellt sich die Frage, wie sich die Servicequalität von Microservice-Architekturen mithilfe von automatisierten Teststrategien sicherstellen und verbessern lässt, um den immer komplexer werdenden Anforderungen an Microservices gerecht zu werden.

Teststrategien auf Microservices übertragen

Der Studierende Jan Eisenhauer hat sich in seiner Abschlussarbeit als Ziel gesetzt, bekannte Teststrategien aus der Literatur aufzugreifen und auf eine Microservice-Architektur zu übertragen und anzuwenden. Dabei wurden die Teststrategien in Bezug auf die Verbesserung der Servicequalität und der Realisierbarkeit bewertet und Unterschiede zu monolithischen Anwendungen dargestellt. Die Strategien wurden anschließend anhand einer Beispielanwendung getestet und praktisch umgesetzt.

[1] J. Lewis und M. Fowler, Microservices Guide, 2014, https://martinfowler.com/microservices