Was sind eigentlich Microservices? Welche Vor-, aber auch welche Nachteile hat diese Art der Software-Architektur? Dies sind nur einige der Fragen, die wir in Teil 1 unserer Blogserie beleuchten wollen.

Tags: , , , 4.6 Min. LesezeitZuletzt aktualisiert: 17. September 2021

Spotify, Tinder, Zalando – nur einige bekannte Beispiele für innovative Digitalunternehmen, die auf Microservices setzen. Und spätestens seit Netflix 2016 öffentlich gemacht hat, dass die Komplexität von globalem Videostreaming nur durch eine Microservices-Architektur bewältigt werden konnte, hat der Microservice-Hype seine Spitze erreicht. Doch wo Licht ist, ist auch Schatten.

Was sind Microservices eigentlich?

Bei Microservices handelt es sich um ein komplexes, technisches Architekturthema. Daher müssen wir zunächst klären, was Microservices eigentlich sind.

Die Microservices-Architektur ist eine Art, Software zu schreiben, bei der die Software in einzelne Teile aufgebrochen wird – meist anhand eines sogenannten „fachlichen Schnitts“. Diese einzelnen Teile (die eigentlichen „Microservices“) laufen jeweils in ihrem eigenen Prozess und kommunizieren miteinander über Webservices.

Der große Unterschied zur klassischen Architektur? Microservices lassen sich einzeln und unabhängig voneinander entwickeln und in Betrieb nehmen.

Etwas anschaulicher: Man stelle sich ein Aktiendepot vor, bei dem die Funktionalitäten wie Börsenkurse, Transaktionsabwicklung oder die Nutzerdaten nicht von einem einzelnen (man sagt gewöhnlich „monolithischen“) Software-Artefakt zur Verfügung gestellt werden, sondern aufgeteilt sind in einzelne Teile. Der große Unterschied zur klassischen Architektur? Microservices lassen sich einzeln und unabhängig voneinander entwickeln und in Betrieb nehmen.

Das kann ganz einfach dargestellt dann so aussehen:

Aktiendepot als monolithische Softwarestruktur
Aktiendepot mit Microservices

Gegenüberstellung der Software-Strukturen: Aktiendepot als Monolith und mit Microservices © Unterschied & Macher

Merken Sie sich die Darstellung des Aktiendepots mit der Microservices-Architektur. Es begleitet uns als Beispiel durch den Artikel.

Vorteile einer Microservice-Architektur

Wenn man den Vorteil einer Microservices-Architektur in einen einzelnen Satz verpacken möchte, ist es wohl dieser:

Microservices helfen beim Bewältigen von Komplexität, bei gleichzeitigem Gewinn von Flexibilität und Skalierbarkeit.

1. Komplexität bewältigen

Eine Software ist im Allgemeinen ein sehr komplexes Gebilde. Je mehr Funktionalitäten enthalten sind, desto komplexer ist das Konstrukt. Hier können Microservices Abhilfe schaffen.

Komplexität wird durch eine Microservices-Architektur hauptsächlich bewältigt, indem sich kleinere Entwicklungsteams um einen klar abgegrenzten Bereich kümmern können. Diese Entwicklungsteams werden um den oben erwähnten „fachlichen Schnitt“ herum gebildet. Es gibt also nicht mehr ein riesiges Team, das die Gesamtarchitektur betrachten muss, sondern mehrere kleine, die sich jeweils nur um einen Ausschnitt, einen Teil der Software kümmern.

Angewandt auf unser Aktiendepot-Beispiel würde dies so aussehen:

In einer Microservice-Architektur kümmert sich „Team Börsenkurse“ ausschließlich um die Bereitstellung der Funktionalität für das korrekte Abrufen und Darstellen von Börsenkursen und -charts. Idealerweise ist es auch in der Lage, Änderungen an dieser Funktionalität ohne die Zuarbeit von anderen Beteiligten durchzuführen – von der Erhebung der Anforderungen bis zum Livegang des Features.

Dadurch wird die Kommunikation innerhalb des Teams einfacher, weil die Teams kleiner sind und eine teamübergreifende Kommunikation durch den engen Verantwortungsbereich reduziert wird.

Dieser Effekt macht sich hauptsächlich bei großen Teams bemerkbar.

2. Flexibilität

Flexibilität bedeutet in diesem Zusammenhang vor allem technologische Freiheit. Ein Microservice ist ein unabhängiges Deployment-Artefakt und meist in einen Docker-Container eingepackt. Daher kann das jeweilige Entwicklungsteam Programmiersprache und Betriebssystem frei wählen.

Übersetzt auf unser Aktiendepot-Beispiel könnte man sich das folgendermaßen vorstellen:

  • die Börsenkurse werden in Java mit Spring in einem Linux-OS bereitgestellt,
  • der Login und die Verwaltung der Nutzerdaten dagegen als C#-Anwendung auf .NET in Windows.

Das eröffnet den Teams die Möglichkeit, den jeweils besten Technologiemix für die konkrete Anwendung zu verwenden. Völliger Wildwuchs ist natürlich nicht sinnvoll – aber die Möglichkeit zu haben, nicht mit einer einzigen Technologie das komplette Produkt entwickeln zu müssen, ist schon ein großer Vorteil.

Dadurch kann das jeweilige Team die Technologie wählen, die einerseits für das Problem am besten geeignet ist und andererseits gezielt Spezialisten-Know-how im Team erfolgreich einsetzen. Auch auf lange Sicht ist das ein Vorteil: eine Applikation, die schon länger live ist könnte bspw. so stückweise (also: „Microservice-weise“) auf einen neuen Technologie-Stack gehoben werden.

Nutzerdaten und Börsenkurse als Microservices

Einzelne Microservices können auf unterschiedliche Technologie-Stacks gehoben werden. © Unterschied & Macher

3. Skalierbarkeit

Die Skalierbarkeit zeigt sich anhand der Möglichkeit, die einzelnen Microservices unabhängig voneinander in Betrieb zu nehmen und daher auch unabhängig voneinander zu skalieren.

Im klassischen, monolithischen Deployment-Modell ist es nur möglich die Gesamtapplikation zu skalieren, was üblicherweise durch „mehr Server“ oder „stärkere Server“ getan wird.  Manchmal ist es aber nur ein Teil der Gesamtapplikation, der eigentlich skaliert werden müsste.

Zurück zum Aktiendepot-Beispiel:

Wenn man Microservices verwendet und merkt, dass die Börsenkurs-Funktionalität besonders häufig benutzt wird, kann dieser Aspekt der Anwendung einzeln skaliert werden.

Der Rest der Applikation kann also bei den aktuellen Ausprägungen bleiben – was sich unter anderem in Sachen Skalierungs-Geschwindigkeit und Betriebskosten bemerkbar macht.

Nutzerdaten, Transaktionsabwicklung und Börsenkurse als Microservices

Skalierung des Microservices „Börsenkurse“ © Unterschied & Macher

Microservices sind super – weg mit den Monolithen? Bitte nicht!

Auch wenn die obigen Punkte so klingen, als sollten nun alle auf Microservices setzen und das „alte“ Architekturmodell nicht mehr benutzen – das wäre ein voreiliger Schluss!

Warum Monolithen durchaus auch Ihre Vorteile haben und wann man vielleicht lieber keine Microservice-Architektur einsetzen sollte, diskutieren wir im zweiten Teil unserer Artikel-Reihe über Microservices.

Weiterlesen

Autor

Benedikt Eger
Head of Technology, Managing Director bei Unterschied & Macher. Mit mittlerweile jahrzehntelanger Expertise in der digitalen Produktentwicklung berate ich Kunden aus Legal und Finance. Mein Fokus liegt dabei immer darauf, die richtige Lösung für die aktuelle Challenge zu finden - sei es durch den Einsatz eines existierenden Produktes oder individuelle Implementierung.
DT&B Newsletter Logo

Insights aus den Bereichen Legal, Finance & Digital Tech. Bleiben Sie informiert.