Das können Microservices für Ihr Unternehmen leisten
Microservices gelten momentan als der ideale Weg, um Anwendungen aufzubauen. Doch sie sind mit Herausforderungen verbunden, die nicht jedes Unternehmen alleine bewältigen kann.
Zahlreiche Unternehmen stehen vor der Aufgabe, ihre IT-Landschaft zu modernisieren. Dabei rücken Microservices immer mehr in den Mittelpunkt der Debatte. Fach- und Führungskräfte erhoffen sich von der Technologie mehr Flexibilität in der eigenen IT. Demgegenüber stehen Sorgen vor einer größeren Komplexität und Fehleranfälligkeit der Systeme. Was Microservices wirklich leisten und wo etwaige Stolpersteine liegen können, erfahren Sie in diesem Artikel.
Ob in der Fachpresse, auf Messen oder im Gespräch mit Beratern: Schnell entsteht im IT-Bereich der Eindruck, dass der Microservicesansatz ein regelrechtes Zaubermittel ist, um die IT-Infrastruktur zukunftsfähig aufzustellen. Während die bislang in vielen Unternehmen vorherrschenden monolithischen Systeme als veraltet, umständlich und wenig flexibel wahrgenommen werden, gelten Microservices als modern, vielseitig und flexibel erweiter- oder veränderbar.
Darin steckt viel Wahres, jedoch sollte die Komplexität für das Implementieren und Orchestrieren von Microservices nicht unterschätzt werden. Dazu müssen IT-Administratoren und Teams bereit sein, neue Aufgaben zu übernehmen, ihre Fähigkeiten zu erweitern und Strukturen zu verändern. Eine solche Umstellung stellt viele Teams vor eine echte Herausforderung. Daher gilt es folgende Aspekte genauer zu beachten:
Monolith versus Microservices
Bei der Entscheidung für eine neue IT-Architektur stellen sich IT-Entscheider:innen unter anderem folgende Fragen: Welche Anforderungen an das IT-Setup bringen unterschiedliche Architekturen mit sich? Oder: Welche IT-Infrastruktur kommt für meine Anforderungen infrage? Da eine derartige Umstellung mit einem erhöhten finanziellen und zeitlichen Aufwand verbunden ist, sollten Sie die Entscheidung für eine Struktur stets mit Weitblick treffen.
Gerade in Zeiten des rapiden technologischen Wandels ist die grundsätzliche Haltbarkeit von IT-Systemen eher kurz. Eine neue Architektur sollte jedoch mindestens für mehrere Jahre Bestand haben – oder besser noch: die Weichen für die langfristige technologische Entwicklung stellen.
Doch was sind die wichtigen Faktoren, die für oder gegen die einzelnen Architekturen sprechen?
Monolithisch aufgebaute Anwendungen werden mit allen Funktionen aufgesetzt, die in der IT-Architektur zentral verortet und verwaltet sind und in einer gemeinsamen Codebasis verfasst sind.
Bei Microservice-Architekturen hingegen gibt es verschiedene Komponenten, die je eine bestimmte Anwendung als Service bereitstellen. Verschiedene Funktionen werden modular implementiert, wobei die einzelnen Module zwar weitestgehend unabhängig voneinander sind und über APIs miteinander kommunizieren.
Unternehmen auf dem Prüfstand: Bereit für Microservices?
Bei der Antwort auf die Frage, ob Microservices für Sie eine gute Lösung sein könnten, sollten Sie insbesondere die aktuelle Personalsituation in die Überlegungen mit einbeziehen. Denn gute Entwickler sind auf dem aktuellen Arbeitsmarkt rar. Nochmal schwieriger ist es, wenn spezielle Kompetenzen in einem relativ seltenen Bereich benötigt werden.
Dieses Problem kommt auch bei der Entscheidung für oder gegen Microservices zum Tragen. Da monolithische Strukturen sehr häufig eingesetzt werden, bringen Entwickler oftmals wesentlich mehr Erfahrung beim Implementieren, dem Betrieb und der Wartung dieser Systeme mit, als für Microservices.
Demgegenüber steht ein starkes Abhängigkeitsverhältnis zwischen Programmierern bei der Zusammenarbeit an einer Mainline bei einer monolithischen Infrastruktur. Durch die enge Vernetzung des Systems ist eine hohe Fachkompetenz aller Mitarbeiter erfordert, damit sie sich nicht gegenseitig behindern.
Bei Microservices hingegen steigt die Unabhängigkeit der Entwickler untereinander, da sie relativ unabhängig voneinander an einzelnen Funktionen arbeiten. IT-Administratoren geben damit einen beträchtlichen Teil der Verantwortung ab und haben entsprechend mehr Zeit für Supervision, Qualitätsmanagement sowie die Führung und Unterstützung der Mitarbeiter bei etwaigen Problemen.
Datenhaltung: Zentral oder dezentral?
Ein weiterer Unterschied ist die Datenhaltung in den unterschiedlichen Systemen. So werden die Daten bei monolithischen Infrastrukturen zumeist zentral gespeichert. Dies ist grundsätzlich auch bei Microservices möglich, beispielsweise in einem neutralen Data Layer. Doch das ist nicht alternativlos: Microservices können ihre Daten auch jeweils einzeln speichern. In einem solchen Fall ist das Verknüpfen der einzelnen Anwendungen sowie der reibungslose Datenfluss und -austausch zentral, um Fehlfunktionen zu verhindern.
„Zentrale Stärken von Microservicearchitekturen sind vor allem ein Resultat aus deren modularen Aufbau: Einzelne Funktionen lassen sich in der Regel problemlos anpassen, ohne dass dies Auswirkungen auf das restliche System hat.“
Bernd Alter, Turbine Kreuzberg
Flexibilität, Schnelligkeit und freie Technologiewahl: Vorteile von Microservices
Zentrale Stärken von Microservicearchitekturen sind vor allem ein Resultat aus deren modularen Aufbau: Einzelne Funktionen lassen sich in der Regel problemlos anpassen, ohne dass dies Auswirkungen auf das restliche System hat.
Besonders bei Systemen beziehungsweise Komponenten, die Sie häufig aktualisieren müssen, ist das ein großer Vorteil. Selbst komplett neue Features entwickeln und implementieren Sie einfach und während des Betriebs der restlichen Infrastruktur. Die Unabhängigkeit der einzelnen Komponenten trägt maßgeblich zur Robustheit des Gesamtsystems bei, da bei Fehlern einer einzelnen Komponente der Rest des Systems im Allgemeinen normal weiter arbeitet.
Bei monolithischen Systemen hingegen führen Ausfälle einzelner Teile relativ schnell zu einem kompletten Ausfall. Zudem steigt die Flexibilität bei der Technologiewahl erheblich. Denn im Gegensatz zur Abhängigkeit von einer einzelnen Codebasis beziehungsweise einer bestimmten Programmiersprache oder einem Softwareanbieter gestalten und skalieren Sie bei Microservices jede Anwendung individuell.
Microservices im Betrieb
Unterschiedliche Anforderungen gibt es auch beim Betrieb der Systeme: So erfordern Microservices, im Gegensatz zu Monolithen, multiples Deployment und den parallelen Betrieb zahlreicher modularer Elemente. Dafür braucht es Fachkompetenzen bei verschiedenen Technologien, die nicht in jedem zur Verfügung stehen. Die verschiedenen Komponenten erfordern eine hohe Kommunikation und Vernetzung untereinander, was häufig zusätzliche Netzwerkressourcen bindet und höhere Latenzen mit sich bringt. Zudem braucht es spezielle Lasttests und entsprechendes Monitoring, um einen gleichmäßigen Ressourcenverbrauch sicherzustellen.
Mitarbeiter als entscheidender Erfolgsfaktor
Entscheidender Faktor beim erfolgreichen Implementieren einer Microservicearchitektur sind die Menschen, die daran beteiligt sind. IT-Teams brauchen viel Eigenverantwortung und entsprechende Kompetenzen, um solche Architekturen aufzusetzen. IT-Administratoren müssen Verantwortung und Kontrolle abgeben, werden dafür aber entlastet und arbeiten intensiver und vertrauensvoller mit dem Team zusammen.
Wann lohnt sich das Investment?
Der Aufbau von Microservicearchitekturen gehört in die Hand entsprechender Experten, die Vertrauen und Entscheidungsspielraum erhalten, beispielsweise bei der Technologieauswahl oder der Entwicklung der Anwendungen. Dies passt schlecht mit starren Hierarchien und strikten Vorgaben zusammen.
Sind diese Voraussetzungen gegeben, sind Microservices eine gute Lösung, um komplexe und hochgradig skalierbare Anwendungen zu entwickeln. Diese müssen nicht zwingend intern umgesetzt werden: Durch den modularen Aufbau beziehen Sie auch externe Partner unkompliziert in das Erstellen von Features mit ein – ohne dass Dienstleister Zugriff auf das gesamte System benötigen.
Über den Autor:
Bernd Alter ist Co-CTO bei Turbine Kreuzberg. Seit über 15 Jahren beschäftigt er sich bei der Technologieagentur mit der Konzeption und technischen Leitung von Softwareprojekten. Seine Spezialität ist PHP, begleitet von Infrastruktur-Themen (Docker/Kubernetes und Cloud) sowie der Entwicklung von Software- und Systemarchitekturen.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.