Microservices Architektur

Was sind Mikroservices und weshalb soll die Microservices Architektur der Schlüssel zum Erfolg sein? Auf diese Frage möchte ich in diesem Post eingehen. So, dass Sie beim nächsten Meeting zum Thema Software Architektur mitreden können.

Um sich ein Bild von der Microservices Architektur machen zu können, müssen Sie verstehen, was eine monolithische Anwendung ist und wie diese in kleine winzige Mikroanwendungen zerlegt wird, die unabhängig voneinander gepackt und bereitgestellt werden.

In diesem Post erfahren Sie mehr über die folgenden Punkte:

Monolithische Architektur

Ein Software-Monolith ist vergleichbar mit einem Baumstamm. Gross, schwer, unhandlich.

Nun, bevor ich Ihnen von Mikroservices erzähle, lassen Sie uns die Architektur sehen, die vor den Mikroservices vorherrschte, nämlich die monolithische Architektur. Laienhaft ausgedrückt, kann man sagen, dass es einem grossen Software-Klumpen ähnelt, bei dem alle Softwarekomponenten einer Anwendung zusammengefügt und dicht verpackt sind.

Daraus ergibt sich ein System welches folgende, negativen Eigenschaften hat:

  • Unflexibel
    Monolithische Anwendungen können nicht mit verschiedenen Technologien erstellt werden. Ein falscher Technologieentscheid zu beginn eines Projektes kann somit schwerwiegende negative Folgen haben in der Weiterentwicklung des Systems.
  • Unzuverlässig
    Wenn auch nur eine Funktion des Systems nicht funktioniert, dann funktioniert das gesamte System nicht.
  • Schlecht skalierbar
    Anwendungen können nicht einfach skaliert werden, da jedes Mal, wenn die Anwendung aktualisiert werden muss, das gesamte System neu aufgebaut werden muss.
  • Langsame Entwicklung
    Die Entwicklung in monolithischen Anwendungen erfordert viel Zeit, da jedes einzelne Feature nacheinander erstellt werden muss und sich alle Entwickler an einen fixen Releasezyklus halten müssen.
  • Teure Entwicklung
    Der fixe Releasezyklus verursacht einen grossen Aufwand für Abstimmung, Testing und Deployment.

Microservice Architektur

Viele Holzstücke, eine Analogie zu Microservices: Klein, leicht, handlich.

Microservices, auch bekannt als Microservice Architektur, ist ein Software Architekturstil, der eine Anwendung als eine Sammlung kleiner autonomer Dienste strukturiert.

Alle Mikroservices kommunizieren miteinander über einen zustandslosen Server, der entweder REST, GraphQL oder ein Nachrichtenbus (Message Broker) ist.

Alle Funktionalitäten der Microservices werden den Clients über ein API-Gateway zur Verfügung gestellt. Auch die internen Kommunikation wird über den API-Gateway abgehandelt, so dass jeder, der sich mit dem API-Gateway verbindet, automatisch mit dem Gesamtsystem verbunden wird.

Eigenschaften von Microservices

  • Entkopplung
    Dienste innerhalb eines Systems sind weitgehend entkoppelt, so dass die gesamte Anwendung leicht erstellt, geändert und skaliert werden kann.
  • Komponentenbildung
    Mikroservices werden als unabhängige Komponenten behandelt, die leicht ausgetauscht und aktualisiert werden können.
  • Geschäftsfähigkeiten
    Mikroservices sind sehr einfach und konzentrieren sich auf eine einzige Fähigkeit.
  • Kontinuierliche Auslieferung
    Entwickler und Teams können unabhängig voneinander arbeiten. Es kann für jeden Microservice einen individuellen Releasezyklus definiert und so die Geschwindigkeit neue Software einzuspielen erhöht werden.
  • Verantwortung
    Microservices konzentriert sich nicht auf Anwendungen als Projekte. Stattdessen behandeln sie Anwendungen als Produkte, für die sie verantwortlich sind.
  • Dezentrale Steuerung
    Der Fokus liegt auf der Verwendung des richtigen Tools für den richtigen Job. Das bedeutet, dass es kein standardisiertes Muster oder ein Technologiemuster gibt. Entwickler haben die Freiheit, die besten nützlichen Werkzeuge zur Lösung ihrer Probleme auszuwählen.
  • Agilität
    Microservices unterstützen die agile Entwicklung. Jede neue Funktion kann schnell entwickelt und auch wieder verworfen werden.
  • Eigenständige Entwicklung
    Alle Mikroservices können leicht auf der Grundlage ihrer individuellen Funktionalität entwickelt werden.
  • Unabhängige Bereitstellung
    Basierend auf ihren Diensten können sie individuell in jeder Anwendung eingesetzt werden.
  • Fehlerisolierung
    Auch wenn ein Dienst der Anwendung nicht funktioniert, funktioniert das System weiterhin.
  • Mixed Technology Stack
    Verschiedene Sprachen und Technologien können verwendet werden, um verschiedene Dienste aus derselben Anwendung zu erstellen.
  • Granulare Skalierung
    Einzelne Komponenten können nach Bedarf skaliert werden, es ist nicht notwendig, alle Komponenten zusammen zu skalieren.

Unternehmen, die Mikroservices nutzen

Internetkonzerne wie Netflix, Amazon oder Zalando setzen schon seit längerem auf Microservices. Diese Firmen zeigen erfolgreich, wie bestehende monolithische Systeme aufgebrochen werden können und Schritt für Schritt ein agiles, Service-orientiertes Architektur aufgebaut werden kann.

Microservices in Ihrem Unternehmen?

Möchten Sie mehr über die Möglichkeiten von Microservices in ihrem IT-Umfeld erfahren? Kontaktieren Sie mich unverbindlich. Gerne berate ich Sie und zeige Ihnen wie auch Sie ihre IT-Infrastruktur agil, skalierbar und leistungsfähiger machen.