Was sind Microservices?

Was sind Microservices?

In den letzten Jahren sind Microservices in aller Munde. Vom Musikdienst Spotify bis hin zum Online-Versandhändler Zalando nutzen mehr und mehr Unternehmen Microservices mit dem Ziel, übersichtlichere Systemlandschaften zu schaffen. Wieso sie sich gerade jetzt zunehmend großer Beliebtheit erfreuen und was genau Microservices überhaupt sind, erklären wir Ihnen in folgendem Artikel.

Warum Microservices?

Das Konzept der Microservices entstand aus dem Bedarf an Lösungen für die Probleme monolithischer Architekturen. Wir bezeichnen eine Architektur als monolithisch, wenn die gesamte Anwendung in einer einzigen ausführbaren Datei beziehungsweise einem einzigen Paket aufgebaut ist. Dieser Code wird entweder ganz oder gar nicht ausgeführt und nutzt nur eine einzige Datenbank. Monolithische Applikationen beinhalten in der Regel ein User Interface und eine serverseitige Applikation. Der große Vorteil dieser Strukturen liegt insbesondere in kleinen Web-Applikationen. In kurzem Gesamtumfang sind sie übersichtlich, leicht zu bearbeiten und somit auch für neue Entwickler gut verständlich.

Der große Nachteil monolithischer Strukturen besteht allerdings darin, dass bei Ausfällen das gesamte System beeinträchtigt ist. Darunter leidet die Zuverlässigkeit. Insbesondere in immer größeren und komplexeren Systemen, wie sie heutzutage in den meisten Unternehmen Gang und Gäbe sind, leidet die Übersichtlichkeit enorm. Monolithische Architekturen haben in der Regel auch eine monolithische Codebasis, die auf einer Programmiersprache geschrieben wird. Normalerweise ist der Code für einen Monolithen in einer Sprache geschrieben und verwendet dieselben SDK- und Drittanbieter-Bibliotheksversionen. Dies macht es sowohl riskant als auch kostspielig, selbst einfache Dinge wie eine Drittanbieterbibliothek zu ändern, da alle Module des Systems zum gleichen Zeitpunkt geändert werden müssen. Die Verwendung einer neuen modernen Programmiersprache ist für große Monolithen so kostspielig, dass sie häufig jahrzehntelang auf einem alten Technologiestapel festsitzen. Microservices bieten im Vergleich zu dieser traditionellen Herangehensweise einen neuartigen Ansatz. Microservices werden in letzter Zeit vermehrt dazu eingesetzt, um Workflows zu digitalisieren.

Microservice Definition

Microservices sind ein architektonischer Ansatz für die Entwicklung großer verteilter Systeme. Microservice-Architekturen ermöglichen eine schnellere Bereitstellung von Funktionen und eine Skalierung für große Anwendungen. Auch wenn es keine genaue Microservice Definition gibt, ist die Idee grundsätzlich leicht zu verstehen. Die Kernidee von Microservices besteht darin, das große System in lose gekoppelte Dienste aufzuteilen, die unabhängig voneinander eingesetzt werden können. Diese einzeln, als Einheit agierenden Dienste sind häufig sehr spezialisiert und operieren mit einem minimalen Funktionsumfang.

In einem modularen Ansatz wird die Software in ihre Komponenten aufgeteilt, die beliebig erweiterbar sind und unabhängig voneinander austauschbar. Durch diesen dezentralisierten, kleinteiligen Aufbau sind Microservices flexibel an verschiedenste Hard- und Softwareumgebungen, sowie Programmiersprachen anpassbar.

Microservice Architektur

Um eine modulare Microservice Architektur aufzubauen, muss zunächst eine Ermittlung der Business Capabilities stattfinden. Anschließend müssen die verschiedenen Services definiert werden, die am Ende unabhängig voneinander laufen sollen. Für das Verständnis der verschiedenen Abhängigkeiten ist ein Microservice Architekturdiagramm von hohem Wert. Ohne das Verstehen der Abhängigkeiten kann die Flexibilität nicht in vollem Umfang garantiert werden.

Obwohl Microservices grundsätzlich unabhängig voneinander funktionieren, müssen sie dennoch gelegentlich miteinander in Abhängigkeit kommunizieren. Das geschieht über sogenannte APIs (Application Programming Interfaces). Die Microservices sollten im Optimalfall, um Verantwortung zu verteilen, jeweils eine eigene Datenbank besitzen. Dadurch können auch Updates individuell vollzogen werden.

Es ist typisch, dass sich Abhängigkeiten unter den Microservices bei zunehmendem Wachstum, steigender Anzahl an Schnittstelle, Protokollen und Standorten erhöhen. API-Gateways leiten innerhalb der Microservice Architektur Anfragen an denjenigen Service weiter, der am besten für deren Beantwortung geeignet ist.

Vorteile Microservices

Vor allem bei großen Applikationen bieten Microservices eine ganze Palette an Vorteilen. Vorteile Microservices zu benutzen sind somit in den komplexen Systemlandschaften der heutigen Geschäftswelt zuhauf gegeben. Hier ein Überblick der wichtigsten drei:

  • Bug-Fixing und Wartung: Durch die kleinteilige Architektur können Fehler schnell lokalisiert und gelöst werden. Die restliche Software bleibt oft von Fehlern in einem einzelnen Service unbetroffen. Updates können zudem auch für einzelne Microservices durchgeführt werden. Das macht sie evolutionär und anpassungsfähig.
  • Skalierung: Bei zu hoher Auslastung der Applikationen können die Services beliebig dupliziert und Engpässe somit vorgebeugt werden. Horizontale Skalierung funktioniert aber auch, indem einzelne Services auf leistungsfähiger Hardware oder mehreren Rechnern operieren.
  • Integration: In sich ständig verändernden Systemlandschaften, sollte Software in der Lage sein, notwendige Softwarekomponenten in Form von Features und Services zu integrieren. Vorteile Microservices zu nutzen sind hier, dass durch kontinuierliche Verwendung von Integrationstools der komplette Anbindungsprozess durch Microservices revolutioniert wurde. Vor allem für die Prozessdigitalisierung bieten sich hier völlig neue Möglichkeiten.

Fazit

Gegenüber traditioneller Architektur bieten Microservices insbesondere dann zahlreiche Vorteile, wenn Web-Applikationen eine gewisse Größe erreicht haben. Der monolithische Ansatz hingegen ist eher für kleine und mittlere Größen gut geeignet, kann jedoch auch hier zum Teil bei Wartungen oder Updates für Kopfschmerzen sorgen. Für eine Entscheidung bezüglich der System-Architektur lässt sich als Fazit sagen, dass es sich stets lohnt professionelle Beratung in Anspruch zu nehmen.

 

 

 

Sie wollen mehr über die praktische Anwendung in der Prozessdigitalisierung erfahren? Erstellen Sie sich jetzt einen kostenfreien Account und testen Sie PIPEFORCE noch heute!