Microservices Architektur
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
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
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.