neu

Microservice-Architekturen: Flexibler durch verteilte Aufgaben

Microservices versprechen höhere Flexibilität als die heutigen monolithischen Software-Lösungen. Was sind Microservices – und was sind ihre Vor- und Nachteile?

Hinter dem sperrigen Begriff „Microservice-Architektur“ verbirgt sich eine ganz grundlegende Herangehensweise für die Entwicklung und den Betrieb von Software. Oft werden Software-Lösungen als eine einzige, zentrale Anwendung entwickelt und betrieben. Dieses geschlossene, monolithische System läuft meist auf einem einzigen Server, deckt alle möglichen unterschiedlichen Funktionen ab und kann meist nur im Ganzen einen Schritt nach vorne machen. Bei Microservice-Architekturen wird stattdessen die Software entlang einzelner Funktionen zerteilt, unabhängig voneinander weiterentwickelt und betrieben. Sie sind sogenannte self-contained systems.

Nehmen wir etwa einen beliebigen Webshop: Mit einer Microservice-Architektur werden nun unterschiedliche Funktionen wie etwa die Nutzerverwaltung, die Menüführung oder der Bezahlprozess herausgelöst, eigenständig weiterentwickelt und aktuell gehalten. Die Microservices sprechen über Schnittstellen miteinander – und ergeben so zusammen wieder ein großes Ganzes.

Fünf Grundsätze von Microservices: Welche Vor- und Nachteile haben Microservice-Architekturen?

Microservice-Architekturen unterscheiden sich nicht nur in ihrem Aufbau von monolithischen Software-Lösungen. Sie erfordern ein komplettes Umdenken beim Betrieb – und damit auch bei der Arbeitsweise innerhalb eines Unternehmens. Das ist logisch, denn das Gesetz von Conway besagt, dass Unternehmen immer nur Systeme entwerfen werden, die Kopien ihrer eigenen Struktur sind. Und so arbeiten Microservice-Architekturen nach eigenen Grundsätzen, die Vor- und Nachteile mit sich bringen:

Einfache, homogenisierte Kommunikationswege

Die Kommunikation zwischen den unterschiedlichen Microservices ist essentiell – und wird deswegen so schlicht und einfach wie möglich gehalten, meist kommen REST-APIs zum Einsatz. Ein Vorteil in vielerlei Hinsicht: Dank der standardisierten Kommunikationsprozesse werden operative Risiken minimiert.

Technologieunabhängigkeit

Bei monolithischen Software-Lösungen wird meist auf eine begrenzte Zahl von Technologien gesetzt, was an einigen Stellen die Arbeit hindern kann. Bei einer Microservice-Architektur wählt jedes Team genau die Tools und Technologien, die für die spezifische Funktion am besten ist. Ein klarer Vorteil: So kommt das bestmögliche System zustande – das sich dank verteilter Infrastruktur auch noch sinnvoll skalieren lässt.

Dezentrales Datenmanagement

Microservices verfügen jeweils über eigene Datenverwaltung – und können damit verschiedenen Stakeholdern innerhalb eines Unternehmens Daten nach ganz spezifischen Bedürfnissen liefern. Beispielsweise benötigen Support-Mitarbeiter eine andere Sichtweise auf Kundendaten als Marketing oder Sales. Das kann eine Microservice-Architektur gut leisten. Allerdings mit einem Nachteil: Die unterschiedlichen und teils redundanten Datensätze müssen auch über verschiedene Datenbank-Systeme hinweg stets synchron gehalten werden – eine Herausforderung für die Entwicklung.

Produkt statt Projekt

Microservices werden meist von überschaubaren, crossfunktionalen Teams innerhalb eines Unternehmens entwickelt und betrieben. Dadurch denken diese Teams nicht mehr in „Projekten“, sondern haben ihr „Produkt“, den Microservice, voll im Blick. Schließlich kümmern sie sich über den gesamten Lebenszyklus hinweg darum. Vorteil: Der Blick der Mitarbeiter weitet sich, sie denken ganzheitlicher. Die Services können innerhalb eines Unternehmens mehrmals verwendet werden – und die Entwicklungsgeschwindigkeit erhöht sich.

Evolutionäres Design

Die Zerteilung einer Software-Lösung in Microservices folgt einer bestimmten Logik. Die Services entstehen entlang der Funktionen und Business-Fähigkeiten – und in möglichst großer Unabhängigkeit von anderen Systemen. Das ist ein weiterer Vorteil: Von Vornherein werden so Ausfallrisiken minimiert, und Services lassen sich mit minimalem Aufwand ergänzen oder abschalten.

Was sind die Herausforderungen von Microservice-Architekturen?

Microservice-Architekturen lassen sich nicht von heute auf morgen implementieren – denn einher geht eine Veränderung des gesamten Grundverständnisses innerhalb einer Firma, wie Software entwickelt und betrieben wird. Komplexität verschiebt sich von der Entwicklung in den Betrieb. Auch die Infrastruktur muss angepasst werden, damit sie den Anforderungen der agilen Entwicklung und der logischen Trennung in kleinere Software-Einheiten mit Standard-Schnittstellen entsprechen kann.

Deswegen behandeln wir im zweiten Teil zum Microservices die Frage: Wann ist Ihr Unternehmen bereit für Microservices? Wir zeigen Ihnen, welche Voraussetzungen Sie schaffen müssen, wo Sie am besten anfangen und welche Etappen sie einplanen sollten.