Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Zerlegung von Monolithen in Microservices
Tabby Ward und Dmitry Gulin, Amazon Web Services (AWS)
April 2023 (Dokumentengeschichte)
Eine Migration zur Amazon Web Services (AWS) Cloud hat viele Vorteile, darunter technische und geschäftliche Flexibilität, neue Umsatzmöglichkeiten und geringere Kosten. Um diese Vorteile voll auszuschöpfen, sollten Sie die Software Ihres Unternehmens kontinuierlich modernisieren, indem Sie Ihre monolithischen Anwendungen in Microservices umgestalten. Dieser Prozess besteht aus drei Hauptschritten:
-
Zerlegen Sie Monolithe in Microservices — Verwenden Sie die in diesem Leitfaden enthaltenen Zerlegungsmuster, um monolithische Anwendungen in Microservices zu zerlegen.
-
Integrieren Sie Microservices — Integrieren Sie die neu erstellten Microservices in eine Microservices-Architektur, indem Sie AWSserverlose Dienste
verwenden. -
Datenpersistenz für Microservices aktivieren — Fördern Sie die polyglotte Persistenz
Ihrer Microservices, indem Sie Datenspeicher dezentralisieren.
Die Modernisierung umfasst in der Regel zwei Arten von Projekten:
-
Brownfield-Projekte beinhalten die Entwicklung und Bereitstellung eines neuen Softwaresystems im Kontext vorhandener oder älterer Systeme.
-
Greenfield-Projekte beinhalten die Erstellung eines Systems von Grund auf für eine völlig neue Umgebung, ohne dass veralteter Code erforderlich ist.
Bei Brownfield-Projekten besteht einer der ersten Schritte auf Ihrem Weg zur Anwendungsmodernisierung darin, die Monolithen in Ihrem Portfolio in Microservices zu zerlegen.
Die meisten Anwendungen beginnen als Monolithe, die für einen bestimmten Geschäftsanwendungsfall konzipiert wurden. Wenn die Architektur des Monolithen kein modulares Design vorschreibt, kann ein Monolith eine gültige Wahl für Anwendungen bleiben, für die innerhalb der Grenzen des etablierten Fachwissens keine klar definierten Zuständigkeiten gelten. Das zentrale Merkmal eines Monolithen als einzelne Einsatzeinheit kann auch dazu beitragen, Konstruktionsfehler wie eine enge Kopplung oder eine fehlende interne Struktur zu minimieren.
Obwohl ein Monolith für einige Anwendungsfälle eine gültige Option sein kann, ist er normalerweise nicht für eine moderne Anwendung geeignet. Die schlecht definierten internen Strukturen eines Monolithen können die Wartung des Codes erschweren, was zu einer steilen Lernkurve für neue Entwickler führt und zusätzliche Supportkosten verursacht. Eine hohe Kopplung und eine geringe Kohäsion können die Zeit, die für das Hinzufügen neuer Funktionen benötigt wird, erheblich verlängern, und Sie können einzelne Komponenten möglicherweise nicht auf der Grundlage von Verkehrsmustern skalieren. Monoliths erfordern außerdem, dass sich mehrere Teams für eine große Version koordinieren, was die Zusammenarbeit und den Wissenstransfer erhöht. Schließlich können Sie feststellen, dass es schwierig wird, neue Funktionen hinzuzufügen oder neue Benutzererlebnisse zu erstellen, wenn Ihr Unternehmen oder Ihre Benutzerbasis wächst.
Um dies zu vermeiden, können Sie Dekompositionsmuster verwenden, um monolithische Anwendungen zu zerlegen, sie in mehrere Microservices umzuwandeln und sie auf eine Microservices-Architektur zu migrieren. Eine Microservices-Architektur strukturiert eine Anwendung als eine Reihe von lose gekoppelten Diensten. Microservices sind darauf ausgelegt, die Softwareentwicklung zu beschleunigen, indem fortlaufende Bereitstellung und fortlaufende Bereitstellung (CI/CD) ermöglicht werden.
Bevor Sie mit dem Zersetzungsprozess beginnen, sollten Sie abwägen, welche Monolithe zersetzt werden sollen. Stellen Sie sicher, dass Sie Monolithe mit Zuverlässigkeits- oder Leistungsproblemen verwenden, oder verwenden Sie mehrere Komponenten in einer eng gekoppelten Architektur. Wir empfehlen Ihnen außerdem, den geschäftlichen Anwendungsfall für den Monolithen, seine Technologie und seine Interdependenzen mit anderen Anwendungen vollständig zu verstehen.
Dieser Leitfaden richtet sich an Anwendungsinhaber, Geschäftsinhaber, Architekten, technische Leiter und Projektmanager. Es werden die folgenden sechs cloudnativen Muster beschrieben, die zur Zersetzung von Monolithen verwendet werden, und die Vor- und Nachteile der einzelnen Muster werden beschrieben:
Der Leitfaden ist Teil einer Inhaltsreihe, die den von empfohlenen Ansatz zur Anwendungsmodernisierung behandeltAWS. Die Serie umfasst auch:
Fortlaufende Werktage
Nach der Zerlegung Ihrer Monolithen in Microservices sollten Sie mit den folgenden Ergebnissen rechnen:
-
Ein effizienter Übergang Ihrer monolithischen Anwendung in eine Microservices-Architektur.
-
Schnelle Anpassungen an schwankende Geschäftsnachfrage ohne Unterbrechung der Kernaktivitäten, z. B. hohe Skalierbarkeit, verbesserte Resilienz, kontinuierliche Bereitstellung und Ausfallisolierung.
-
Schnellere Innovation, da jeder Microservice individuell getestet und eingesetzt werden kann.