microservices.PNG

Microservices

Welche Problemstellung wird aufgegriffen?

Monolithische Anwendungen setzen auf einen einzigen Technologie-Stack und besitzen zumeist eine Code-Basis, die im besten Fall zwar in einzelne Projekte unterteilt ist, jedoch unzählige Abhängigkeiten besitzt. Dadurch sind die Teams sehr unflexibel, die Applikationen werden sehr komplex und es wird aufwändiger Anpassungen vorzunehmen oder neue Features bereitzustellen.  Das führt dazu, dass Deployments immer größer werden und dadurch mehr Planung und Zeit benötigen, um mögliche Seiteneffekte innerhalb der Applikation zu vermeiden. 

Das reagieren auf größere Nutzungsschwankungen ist bei monolithischen Anwendungen fast unmöglich, da sich diese nur vertikal Skalieren lassen und dem sind schnell Grenzen gesetzt. Um dem durch z.B. eine neue Architektur oder eine Aktualisierung des Technologie-Stack entgegen zu wirken kommt es meist nicht, da die Kosten hierfür meistens zu hoch sind.

Wie wird das Problem von dem Produkt/Framework gelöst?

Um die immensen Nachteile von monolithischen Anwendungen zu lösen, sind Microservices ihren Weg angetreten um Lösungen hierfür anzubieten. Die Vorteile bei der Nutzung von Microservices sind die folgenden:

Single Responsibility

Durch die Verwendung von Microservices lässt sich die Kopplungen an einen Technologie-Stack auflösen und kleinere Teams um die Microservices herum können sich technologisch und auch fachlich spezialisieren.

Keine Abhängigkeiten

Dadurch dass Microservices keine Code-Basis teilen, können somit Seiteneffekte ausgeschlossen werden und der Aufwand für Codeänderung reduziert sich merklich.

Kleine Deployments

Bei Deployments wird ein hoher Automatisierungsgrad angestrebt wodurch Fehleranfälligkeit reduziert und die Deployment-Geschwindigkeit erhöht wird. Dadurch wird ein völlig neues Verständnis geschaffen welches zu vielen kleinen Deployments führt. Etwaige Fehler können dadurch sofort identifiziert und gefixt werden anstatt Rollbacks durchzuführen.

Skalierbarkeit

Microservices ermöglichen es dediziert die Dienste, welche unter Laständerungen stehen, horizontal zu skalieren. Durch die horizontale Skalierung unterliegt man fast keiner technischen Grenzen.

Leichtere Entwicklung

Microservices ermöglichen die schrittweise Aktualisierung und Weiterentwicklung der Anwendung, in dem Microservice für Microservice autonom bearbeitet werden kann.

Wie kann die eBiz dabei unterstützen?

Die eBiz hat Erfahrungen mit monolithischen Architekturen, mit Service Oriented Architecture (SOA) und beschäftigen uns inzwischen seit dem Jahr 2016 mit Microservices Architekturen. Dadurch können wir bei der Identifikation und Ausprägung von Microservices (z.B. Domain Driven Design), beim technischen Design von Microservices und bei der Realisierung von großen Microservices Lösungen unterstützen.

Zur Realisierung gehört auch die Automatisierung und die Umsetzung der DevOps-Prozesse, bei der wir z.B. mit Tools wie Azure DevOps, Jenkins usw. unterstützen.

Wir setzen seit vielen Jahren insbesondere, aber nicht nur Microsoft Technologien für die Realisierung von Microservices Lösungen ein.