Zum Inhalt

Wichtige Gründe für die Umwandlung eines Monolithen in Microservices

Microservices

Von Stefan Hetges, Gründer und Vorsitzender

Verwenden Sie bereits eine Microservices-Architektur (MSA)? Wahrscheinlich schon, aber Sie wissen es nicht einmal!

Bei einer Google-Suche werden beispielsweise durchschnittlich etwa 70 Microservices generiert, wenn Sie auf die Schaltflächen "Google Search" oder "I'm Feeling Lucky" klicken. Es ist also keine Überraschung, dass heute etwa 50% der Unternehmen behaupten, Microservices auf die eine oder andere Weise zu nutzen.

In diesem Blogbeitrag erkläre ich, warum MSA interessant ist und wie Sie es am besten in Verbindung mit Ihren bestehenden Legacy-Systemen einsetzen können. Mit dem richtigen Ansatz und den richtigen Werkzeugen ist es risikolos, kritische Prozesse aus dem Monolithen zu befreien und sie als unabhängig bereitstellbare Microservices zu liefern. Eine MSA bietet viele Vorteile, nicht nur für den Entwicklungsprozess, sondern auch für Benutzer und Stakeholder.

Microservices-Architektur ist nicht nur eine Technologieentscheidung

Bei der Entscheidung für den Einsatz von Microservices geht es nicht nur um den Einsatz einer neuen Technologie. Um die Vorteile voll ausschöpfen zu können, müssen Sie sich auch die Entwicklungskultur von DevOps zu eigen machen. Sie müssen Kompromisse und erhöhte Komplexität in Betracht ziehen (es gibt kein kostenloses Mittagessen). Jeder Microservice wird als unabhängiger Dienst implementiert und von einem kleinen Team entwickelt, das ihn unabhängig von allen anderen Änderungen im System bereitstellt. Kleinere autonome Serviceteams schließen ihre Entwicklung ab und treffen Entscheidungen über die Bereitstellung schneller als andere Organisationen.

Die gute Nachricht ist, dass sich die Entwicklungskultur nicht über Nacht ändern muss. In dem Maße, in dem Sie Geschäftsfunktionen aus einem monolithischen System herauslösen, definieren Sie parallel dazu den organisatorischen Entwicklungsrahmen.

Verstehen Sie Ihre Software-Assets

Das Verständnis der Software-Assets in einem Altsystem dauert bei herkömmlichen manuellen Ansätzen mehrere Monate oder sogar Jahre. Es ist Verschwendung, die wichtigsten Ressourcen Ihres Unternehmens mit der Aufgabe zu belasten, die Vergangenheit zu verstehen. Intelligent Automation kann Ihnen Zeit sparen, die Effizienz steigern und die Qualität verbessern.

Die erfolgreiche Planung der MSA-Transformation eines bestehenden Monolithen erfordert ein Verständnis sowohl der Geschäftsprozesse als auch ihrer Semantik. Wie sehen die Abhängigkeiten zu bestehenden Geschäftsprozessen aus? Die Häufigkeit der Aufrufe? Die Nutzung von Geschäftsfunktionen? Wo liegen Leistungsprobleme? Was verursacht Systemausfälle? Welches sind die Datenquellen und Schnittstellen?

Die effiziente Entwicklung dieses detaillierten Verständnisses ist ein Vorteil von Intelligent Automation von smartShift. Durch den Einsatz von Algorithmen und maschinellen Lernverfahren wird diese normalerweise zeitaufwändige Arbeit drastisch reduziert.

Auswahl von Software-Assets, die zu Microservices werden sollen

Die folgenden sieben Kriterien können Ihnen helfen, Prioritäten zu setzen, welche Software-Assets Sie aus dem Monolithen herauslösen sollten. Wenn eines dieser Kriterien auf ein bestimmtes Software-Asset zutrifft, werden Sie wahrscheinlich davon profitieren, die Geschäftsfunktionalität künftig in einer MSA zu betreiben.

Eine hohe Veränderungsrate
Einige Ihrer Geschäftsprozesse ändern sich häufig. Sie entwickeln sich mit unterschiedlicher Geschwindigkeit oder sogar in eine völlig andere Richtung. Unsere Erfahrung zeigt, dass etwa 10%-30% der Altsysteme sehr häufig an die Geschäftsanforderungen angepasst werden müssen, der Rest in geringerem Umfang. Relevante Prozesse sollten herausgearbeitet werden, um die Wettbewerbsfähigkeit und die Anpassungsfähigkeit an die Marktanforderungen zu erhöhen.

Unabhängige Lebenszyklen
Softwareänderungen - und die damit verbundenen Änderungen der Geschäftsprozesse - werden in der Regel nach einem festen Zeitplan umgesetzt. Feste Release-Pläne bedeuten, dass Innovationen nicht agil sind und die Chance auf einen Marktvorteil geschmälert wird. Oftmals schaffen Innovationen entweder nie den Sprung in die Produktion oder werden nicht so schnell eingesetzt, wie es die Geschäftswelt benötigt. Die Trennung kritischer Dienste vom Kernsystem ermöglicht es Ihnen, schnell zu iterieren und neue Geschäftsmöglichkeiten zu nutzen. Die Fähigkeit zur kontinuierlichen Umsetzung und Anwendung von Innovationen ermöglicht es Ihnen, Ihre führende Rolle auf Ihrem Markt zu erlangen bzw. zu halten und sie noch zu verbessern.

Unabhängige Skalierbarkeit
Einige Geschäftsprozesse sind zu bestimmten Zeiten stark ausgelastet (z. B. zum Ende eines Geschäftsjahres) und müssen unabhängig vom Rest der Anwendung skaliert werden. Saisonabhängigkeit, Zeitabhängigkeit oder auch Bedarfsspitzen (z. B. Sensoren, die große Datenmengen zur Verarbeitung erzeugen) sind Beispiele für dieses Phänomen. Autonome Microservices skalieren unabhängig, wenn die Last steigt, und die MSA startet mehrere Service-Instanzen. Wenn Sie die Module im monolithischen Framework belassen, haben Sie keine andere Wahl, als die gesamte Anwendung zu skalieren, was bedeutet, dass Ihre Lizenz- und Hardwarekosten für das Worst-Case-Szenario dimensioniert werden müssen.

Isolierung des Scheiterns
Ihre Anwendung hat eine externe Schnittstelle, die einen unzuverlässigen Dienst aufruft. Ihr System reagiert mit einem Ausfall, z. B. wenn einige Daten nicht vollständig sind oder wenn die Betriebszeit des Systems nicht Ihren Anforderungen entspricht. Sie können diese Abhängigkeit vom Rest des Systems isolieren und einen Failover-Mechanismus aufbauen, um die Daten konsistent zu halten, oder sogar Daten zwischenspeichern, wenn der Dienst nicht verfügbar ist. Die Microservices-Architektur mildert Leistungseinbußen aufgrund unzuverlässiger Abhängigkeiten von Dritten. Sie müssen sich nicht auf Warteschlangenmechanismen verlassen, die Ihr System verlangsamen.

Schnelle Testzyklen
Dies ist die beste Nachricht für Unternehmen, in denen lange Testzyklen die Innovation hemmen. Ein kleiner, autonomer Microservice wird nicht nur viel schneller getestet, sondern Sie werden auch erstaunt sein, wie viel Automatisierung bei der Bereitstellung und den Tests möglich ist. Der unmittelbare Vorteil ist, dass Unit-, Integrations- und Regressionstests mehrmals am Tag durchgeführt werden können. Microservices werden in verschiedenen Repositories verwaltet, was sie einfach hält und das Testen erleichtert. Statt Heerscharen von Geschäftsanwendern zum Testen heranzuziehen, benötigen Sie nur wenige Ressourcen. Mit einem feinkörnigen MSA-Ansatz werden Probleme isoliert und können daher leicht identifiziert, behoben und getestet werden.

Vereinfachung der Interaktion
In einer Welt mit stark vernetzten Verbrauchern und Diensten möchten Sie die Flexibilität haben, einen Dienstanbieter gegen einen anderen auszutauschen oder weitere Anbieter hinzuzufügen, um sicherzustellen, dass Sie nie unterversorgt sind. Mit einer Abstraktionsschicht können Sie Ihr System vor externen Abhängigkeiten schützen, die sich häufig ändern. Eine technische Schicht verbirgt die Komplexität der Abhängigkeiten und erleichtert so die Migration in der Zukunft.

Wahl der Technologie
In einem Monolithen haben Sie nur begrenzte Möglichkeiten, das Technologiepaket zu ändern. Der Technologiestapel und das Tempo der Technologieübernahme werden vom Lieferanten/Hersteller diktiert. Noch schwieriger wird es, wenn Ihr System alt ist und das ursprüngliche Team, das es entwickelt hat, schon lange nicht mehr da ist.

Ein MSA strukturiert eine Anwendung als eine Sammlung von lose gekoppelten Diensten. Bei dem Projekt handelt es sich nicht um eine einzige Anwendung, sondern um eine Reihe von unabhängig voneinander einsetzbaren kleinen Diensten, die jeweils in einer eigenen Sprache implementiert sind. Um beispielsweise große Datenmengen zu verarbeiten, wählen die Ingenieure Python. Ruby ist die richtige Wahl für eine ansprechende grafische Auswertung, und ein großer und stabiler Teil der Anwendung verwendet Java. Die Wahl der Technologie gilt auch für Datenbanken. Nutzen Sie die elastische Suche für Big-Data-Analysen, oder teilen Sie Ihre Unternehmensdaten in hochverfügbare Daten in (z. B.) SAP HANA auf und speichern Sie kalte Daten in Hadoop, um Kosten zu sparen und dennoch verfügbar zu sein. Sie müssen sich nicht für eine Technologie für ein ganzes Projekt entscheiden, sondern für eine bestimmte Aufgabe, die Ihren Anforderungen am besten entspricht.

7Kriterien

Was kommt als Nächstes?

Die MSA-Kandidaten müssen aus ihrer monolithischen Legacy-Eingrenzung befreit werden. smartShift Continuous Intelligent Automation wird eingesetzt, um die Kandidatenfunktionalität herauszuschneiden und die Komponenten zu generieren, die für den Betrieb der Geschäftsprozesse als Service auf einer neuen Plattform erforderlich sind. Die Geschäftsfunktionalität wird schrittweise in etwas Besseres, Billigeres, Schnelleres und einfacher zu Pflegendes umgewandelt. Im Monolithen können die "toten" Teile in den Ruhestand versetzt und entfernt werden. Wenn Sie während des Liberalisierungsprozesses neue Funktionen einbeziehen, können Sie die Umwandlung für die Geschäftsinteressenten attraktiver gestalten und deren Unterstützung für Ihre MSA-Implementierungsbemühungen sichern helfen.

Möchten Sie mehr darüber erfahren, wie Sie Ihren Monolithen in Microservices verwandeln können? Vereinbaren Sie noch heute ein kostenloses Beratungsgespräch mit einem Experten von smartShift!

Diesen Artikel teilen

Verwandte Themen

Holen Sie sich Ihre kostenlose Rapid Code Analysis!

Erfahren Sie aus allererster Hand, was unsere Technologie für Ihr SAP-Projekt leisten kann. Melden Sie sich noch heute für Ihre kostenfreie Custom Code-Analyse.

en_USEN