Zur Übersicht

Groß, Größer, Micro! Darum setzen wir bei großen & komplexen Projekten auf Microservices

“Microservices” sind seit geraumer Zeit eine gängige Methode in der Softwarearchitektur um zumindest nach der klassischen Definition, eine komplexe Anwendungsanforderung in unabhängige Prozesse zu unterteilen die dann über definierte Schnittstellen miteinander kommunizieren.

Michael Scharl
Michael Scharl Aktualisiert am 2. Aug. 2022
microservices

Bei MASSIVE ART nutzen wir Microservices in verschiedensten Projektbereichen.

In Mobilen-Bestell-Apps bei denen Direktintegrationen in Systemgastronomie Software mit Push-Notifications erforderlich ist. Für Online Shops die tagesaktuelle Produktdaten und On-Demand Verfügbarkeiten aus externen Warenwirtschaftssystemen anzeigen. Oder bei Kundenportalen die Online Shops, Sub-Account-Management und Asset-Verwaltung zusammenfassen und dabei auch noch als Identity Provider agieren.

Was alle Projekte gemeinsam haben...

... sind komplexe Anforderungen vor allem im Hinblick darauf, dass die Daten aus verschiedenen Experten-Systemen gesammelt, verarbeitet und wieder zurückgespielt werden. Daten müssen synchron und asynchron abgeglichen werden. Die Anforderungen an die einzelnen Funktionen sind teilweise sehr spezifisch. Durch die Gruppierung der einzelnen Funktionen in isolierte Services ist es einfacher diese effizient aufzubauen da nicht eine zentrale Technologie oder ein einzelnes Framework alle Basisanforderungen abdecken muss. Wir können für jeden Microservice das Framework und die Technologie wählen mit der sich die entsprechenden Anforderungen nicht nur effizient umsetzen sondern auch mit hoher Performance ausführen lassen.

In weiterer Folge bedeutet das auch, dass Updates eines einzelnen Systems, egal ob durch externe Faktoren oder im Rahmen der regelmäßigen Wartungen, unabhängig voneinander vorgenommen werden können. Diese Vorgehensweise reduziert die Komplexität der Updates sowie den Aufwand der automatischen und manuellen Tests zur Sicherstellung der korrekten Funktionalität.  

API Service Layer

Ein weiterer wichtiger Punkt in solchen Großprojekten ist die Stabilität, Verfügbarkeit und Zuverlässigkeit der gesamten Infrastruktur.

Mit einer monolithischen Architektur muss man mehr oder weniger einen einzelnen Server bereitstellen der genug “wumms” bietet um alle Anforderungen abzudecken. Zudem muss auf diesem Server auch für alle Technologien gesorgt sein, was die Wartungs-Komplexität erhöhen kann. Microservices bieten auch hier die Möglichkeit flexibler zu agieren, da jeder Service unabhängig vom anderen gehostet werden kann. Diese sind nicht nur besser skalierbar, sondern auch besser auf die einzelnen Anforderungen zugeschnitten. Im schlimmsten Fall bedeutet ein Ausfall eines einzelnen Microservice nur, dass diese eine Funktion nicht verfügbar ist, ein Großteil des Gesamtprodukts bleibt dadurch weiterhin für den Endbenutzer funktional.


Abschließend sind Microservices nicht die Antwort auf alles, diese ist bekanntlich “42”. Es soll nach wie vor abgewogen werden, wann welcher Architekturansatz sinnvoll eingesetzt werden kann. Die Organisation der Anwendung in mehrere entkoppelte Dienste kann auch Nachteile mit sich bringen. So muss abgeschätzt und entschieden werden, ob die Vorteile langfristig die Nachteile ausgleichen.
 

MASSIVE-ART_Michael_Scharl_640x640_circle
Michael Scharl
Technischer Projektmanager & Senior Web Developer
Michael hat als Senior Web Developer bei MASSIVE ART begonnen und ist jetzt technischer Projektmanager. Er ist Experte für Frontend-Entwicklung und dem dazugehörigen Toolset. Michael ist der Meister der Automatisierung, denn er mag es nicht, wenn er immer dieselben Abläufe wiederholen muss und vereinfacht so nicht nur seinen Alltag, sondern auch den seiner Kollegen. Nach Feierabend geht Michael zum Kampfsport oder raus in die Natur – Hauptsache es kommt keine Langeweile auf!