Anzeige

Anzeige

VERANSTALTUNGEN

ACMP Competence Days Wien
15.05.19 - 15.05.19
In WAGGON-31, Wien

e-Commerce Day
17.05.19 - 17.05.19
In Köln, RheinEnergieSTADION

ACMP Competence Days Dortmund
04.06.19 - 04.06.19
In SIGNAL IDUNA PARK, 44139 Dortmund

Aachener ERP-Tage 2019
04.06.19 - 06.06.19
In Aachen

ACMP Competence Days Zürich
11.06.19 - 11.06.19
In Stadion Letzigrund, Zürich

Anzeige

Anzeige

Programmiererin

Microservices bieten etliche Vorteile, für das Testing ergeben sich aber neue Herausforderungen, denn die Komplexität nimmt deutlich zu. Das Münchner IT-Unternehmen Consol zeigt, welche Herausforderungen bestehen und welche Maßnahmen ergriffen werden müssen, um ein effizientes Testen sicherzustellen.

Microservices entwickeln sich immer mehr zur State-of-the-Art-Systemarchitektur, da sie zahlreiche Vorteile bieten, beispielsweise hohe Agilität, Flexibilität und Skalierbarkeit. Aus Sicht der Entwickler ist zudem ein gravierendes Plus, dass sie eigene technologische Entscheidungen treffen können, das heißt, Technologien auswählen und nutzen können, die perfekt auf ein spezifisches Projekt abgestimmt sind. Derartige Freiheiten wären ohne Microservices undenkbar.

Andererseits bringen Microservices aber auch erhebliche Herausforderungen mit sich. Durch das Architekturmuster und den Fokus auf kleine Funktionsbereiche mit dedizierten Aufgaben entsteht eine komplexe Kommunikationsstruktur zwischen verschiedensten Services. Größere Funktionalitäten müssen durch Komposition mehrerer Microservices erstellt werden, wobei die Microservices untereinander Daten austauschen. Das Handling, die Organisation und Validierung dieser immensen Menge an Kommunikation bedarf einer durchdachten Architektur und ist eine zentrale Aufgabe in großen Microservices-Systemen. Um die Qualität der Software sicherzustellen, ändern und erhöhen sich folglich auch die Anforderungen an das Testing. Microservices-Endpunkte müssen in einer integrierten Testumgebung simuliert werden, um eine funktionsfähige Kommunikationskette sicherzustellen.

Es gibt zahlreiche Gründe, die das Testen von Microservices erschweren. Ins Gewicht fällt vor allem die Tatsache, dass Microservices untereinander viel kommunizieren müssen, um Informationen auszutauschen und dabei die Funktionalität anderer Services in Anspruch nehmen. Da die Kommunikation einen zentralen Bestandteil einer Microservice-Architektur darstellt, muss diese ausführlich getestet werden. Durch die Verwendung unterschiedlichster Kommunikationstechnologien wie zum Beispiel HTTP REST, SOAP, JMS oder Apache Kafka – auch innerhalb von Microservice-Funktionsgruppen – kann dieser Prozess sehr aufwendig werden. Diese Kommunikationstechnologien werden je nach Bedarf gemischt und erlauben spezialisierte und optimierte Kommunikationswege, die im Gegenzug eine hohe Komplexität aufweisen. Durch die technologische Auswahl, die den Entwicklern bei Microservices zur Verfügung steht, kann es etwa durchaus der Fall sein, dass der Nachrichteneingang über HTTP REST realisiert ist, aber der Nachrichtenausgang über Kafka umgesetzt wird. Ein anderer Microservice müsste demnach die versendeten Nachrichten des ersten Services über Kafka abholen. Mit anderen Worten: Je nachdem, wie die Microservice-Architektur aufgebaut ist, müssen komplexe Testfälle erstellt werden, die sicherstellen, dass die Kommunikation über alle verwendeten Technologien hinweg reibungslos funktioniert.

Für das effiziente Testen in Microservices-Umgebungen müssen nach Einschätzung von Consol zunächst mehrere Voraussetzungen erfüllt sein:

  • Die Schnittstellen zwischen den Services sollten klar definiert sein, denn nur so kann die Kommunikation zielgerichtet getestet werden.
  • Ein Microservice sollte zudem ohne Abhängigkeiten zu anderen Services starten können, um ein isoliertes Testen zu unterstützen, bei dem seine reibungslose Funktionsweise überprüft wird.
  • Nicht zuletzt sollten CI/CD-Pipelines zum Einsatz kommen, um das Testen der Services zu automatisieren; sind Tests nicht vernünftig automatisiert, verlängert sich die benötigte Zeit zum Testen sowie die Zeit bis zur Auslieferung im Allgemeinen – ganz abgesehen von der Fehleranfälligkeit manueller Tests.

„Die Vorgehensweise beim Testen von Microservices und von Microservice-Systemarchitekturen mit vielen kleinen isolierten Softwarekomponenten unterscheidet sich prinzipbedingt stark von klassischen Vorgehensweisen bei monolithischer Software“, erklärt Sven Hettwer, Senior Software Engineer mit Fokus auf Testautomatisierungs- und CI/CD-Lösungen bei Consol. „Daher muss erstens ein Umdenken bei den Entwicklern stattfinden und zweitens sind neue Technologien notwendig, die den veränderten Anforderungen gerecht werden.“

Um die Komplexität in den Griff zu bekommen, sind mehrere Maßnahmen erforderlich. Consol empfiehlt Folgendes:

  • Bereitstellung passender Infrastruktur zur automatisierten Ausführung von Tests unter Nutzung moderner CI/CD-Technologien.
  • Erstellung aussagekräftiger Testfälle: Eine Empfehlung lautet, sich an den Workflows der Software zu orientieren. Eine Ableitung von Testfällen aus Abnahmekriterien oder User Stories kann dabei sehr hilfreich sein.
  • Erreichung einer aussagekräftigen Testabdeckung mit Positiv- und Negativ-Szenarien. Dies bedeutet nicht, dass eine 100%-Testabdeckung bestehen muss, aber dass die Tests, die geschrieben werden, sinnvoll und vollständig gestaltet sind.
  • Testen einer kompletten Microservice-Landschaft aus Sicht des Endbenutzers, etwa unter Verwendung der Consol-Lösung Sakuli, die alle Möglichkeiten bietet, eine Software von Ende zu Ende aus Sicht des Endbenutzers zu testen.
  • Testen von Teilsystemen der Microservice-Landschaft, um das reibungslose Zusammenspiel in einem größeren, fachlich wertvollen Zusammenhang sicherzustellen. Dies kann beispielsweise unter Verwendung von Citrus, einer Open-Source Lösung von Consol, erreicht werden.

www.consol.de
 

GRID LIST
Tb W190 H80 Crop Int F88a9f74a0e91ae62afc0bb8dbbd9671

Autonome DevOps als Schlüssel zum Unternehmenserfolg

Marktbedingungen verändern sich durch die Digitalisierung rasant. Unternehmen werden aber…
Tb W190 H80 Crop Int 1b0ff98931e1aae69979bf4568b643b7

Das Mendix Spring '19 Release

Mendix, Siemens-Tochter und Anbieter für No-Code/Low-Code-Lösungen für Unternehmen,…
Tb W190 H80 Crop Int E3e4217c499973e7039b8986b22fe699

IT-Budget fürs nächste Quartal aufbessern

Für viele Unternehmen ist der Beginn eines neuen Geschäftsjahres Anlass, über neue Ziele…
Tb W190 H80 Crop Int 3c6a61694c21527c5f89597953afea7e

NoSQL-Datenbanken massiv auf dem Vormarsch

In der Folge der digitalen Transformation ergeben sich in vielen Unternehmen und…
Software

8 Quick-Tipps für einen Softwarevergleich

Eine neue Software wird benötigt? Die bisherige Software reicht vom Funktionsumfang nicht…
DevOps

DevOps 2.0 – 5 Tipps für die Prozessplanung

Auf der Suche nach der wettbewerbsentscheidenden Agilität und Schnelligkeit in den…