Zurück zur Übersicht

Microservices: Struktur für Ihre Software Anwendung

ProfilfotoManuel Reinfurt
Chief Technical Officer

24.06.2021

Wer heute von Cloud Native spricht, kommt um die sogenannten Microservices kaum noch herum. Lesen Sie hier, wie sie die Arbeit an Ihrem Software Projekt vereinfachen können.

Bei Microservices handelt es sich um abgeschlossene Einheiten innerhalb der Anwendung, die jeweils einen spezifischen Zweck erfüllen. Beim Bau von Cloud-Architekturen, aber auch in der allgemeinen Entwicklung von Software, wie zum Beispiel in der App-Entwicklung, können sie deshalb eine wichtige Rolle spielen. Microservices beschreiben ein Konzept, das auch unabhängig von der Cloud funktionieren kann. Es geht darum, wie Sie eine Software-Anwendung strukturieren. Microservices funktionieren unabhängig voneinander und steuern alle einen Teil zur Anwendung bei, wobei sie über Schnittstellen und Protokolle miteinander kommunizieren.

Microservices

Lange wurden Cloud Anwendungen in Form von modularen Monolithen gebaut. Hierbei handelte es sich um große Projekte, die alle Aufgaben und Services unter dem Schirm der allumfassenden Anwendung einschlossen. Das hatte den Vorteil, dass alle Teilbereiche der Anwendung exakt aufeinander abgestimmt waren und miteinander kommunizieren konnten. Jedoch erhöhte sich der Wartungsaufwand, sobald ein Teilbereich aktualisiert wurde. Das bedeutete nämlich, dass die gesamte Anwendung aktualisiert werden musste, damit das Konstrukt weiterhin funktionierte. Microservices lösen genau dieses Problem: Sie bauen hier nicht eine Anwendung, die für alles zuständig ist, sondern eine Architektur aus kleinen, voneinander getrennten Anwendungen, die per Schnittstellen kommunizieren, aber auch noch in anderen Kontexten agieren können. Technisch gesehen besitzt dabei jeder Dienst seine eigene Datenspeicherung, eigenes Networking, Logging, Authentifizierung etc. Änderungen können dann an den einzelnen Microservices vorgenommen werden, ohne die gesamte Anwendung bearbeiten zu müssen. Das erleichtert die Wartung und ggf. Reparaturen. Sollte einer der Dienste einmal ausfallen, arbeiten die anderen weiter.

Zusammengefasst: Vorteile von Microservices

  • Jede Einheit deckt nur ein kleines, aber in sich geschlossenes Stück Funktionalität ab und ist daher leichter zu verstehen und zu warten.
  • Jede Einheit kann eigenständig entwickelt und getestet werden.
  • Jede Einheit kann mit der Technologie gebaut werden, die für die Aufgabe am Besten geeignet ist.
  • Einheiten können einzeln deployed werden, sodass nichts für Wartung heruntergefahren werden muss.

Effektiveres Arbeiten durch Microservices

Entwickler Team

Die Anwendungsentwicklung mit Hilfe von Microservices kann auch für ein effektiveres und robusteres Zusammenarbeiten der Entwicklerteams sorgen. Verschiedene Teams arbeiten an den jeweiligen Services. Das sorgt für klare Verantwortlichkeiten. So wie die Microservices, arbeiten auch die Teams unabhängig voneinander, da sie in der Entwicklung nicht an die anderen Teams gebunden sind. So können Aktualisierungen jederzeit veröffentlicht werden, ohne große Releasetermine abzuwarten. Sind schon verschiedene Microservices vorhanden, können diese weiterverwendet und bestimmte Prozesse in der Entwicklung standardisiert werden, was wiederum zu höherer Produktivität und hochwertigeren Ergebnissen führt.

Je ausgeprägter Ihre Microservice Architektur ist, umso weniger müssen Ihre Entwickler programmieren. Das lohnt sich vor allem bei großen, komplexen Anwendungsarchitekturen.

Wann genügt der modulare Monolith?

Die Microservice Architektur geht allerdings auch mit einem hohen Arbeitsaufwand einher, der abgewägt werden muss. Haben Sie den Bedarf, einzelne Elemente Ihrer Anwendung wiederzuverwenden oder steht die Anwendung als Lösung für einen bestimmten Business Case? Ist Letzteres der Fall, kann sich der modulare Monolith als pflegeleichter herausstellen. Hinzu kommt, dass Microservice Architekturen zwar einfacher zu warten sind, die einzelnen Microservices jedoch ebenfalls einen hohen Pflegeaufwand bedeuten. Bei größeren Änderungen müssen Sie Microservices versionieren und alte und neue Versionen parallel betreiben, bis alle Microservices aktualisiert wurden. Beim modularen Monolithen hingegen wissen Sie genau, wer auf welche Services zugreift und können es entsprechend anpassen.

Besonders im Zusammenhang mit Kubernetes haben Microservices eine entscheidende Bedeutung.

Mehr zu Kubernetes erfahren!
Weiterempfehlen:

IoT Architektur Teil 3: Warum Konnektivität erfolgsentscheidend ist

2021-11-30LesenArrow forward

IoT Architektur Teil 2: Was macht eine IoT Plattform?

2021-11-16LesenArrow forward

IoT Architektur Teil 1: Welche Hardware Möglichkeiten haben Sie?

2021-11-02LesenArrow forward

Update gefällig?