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.
Aktivieren der Datenpersistenz in Microservices
Tabby Ward und Balaji Mohan, Amazon Web Services (AWS)
Dezember 2023 (Dokumentverlauf)
Organisationen suchen ständig nach neuen Prozessen, um Wachstumsmöglichkeiten zu schaffen und die Markteinführungszeit zu verkürzen. Sie können die Agilität und Effizienz Ihrer Organisation erhöhen, indem Sie Ihre Anwendungen, Software und IT-Systeme modernisieren. Modernisierung hilft Ihnen auch dabei, Ihren Kunden schnellere und bessere Services zu bieten.
Die Modernisierung von Anwendungen ist ein Gateway für die kontinuierliche Verbesserung Ihrer Organisation und beginnt mit der Umgestaltung einer monolithischen Anwendung in eine Reihe unabhängig entwickelter, bereitgestellter und verwalteter Microservices. Dieser Prozess umfasst die folgenden Schritte:
-
Zerlegen von Monolithen in Microservices – Verwenden Sie Muster, um monolithische Anwendungen in Microservices aufzuteilen.
-
Microservices integrieren – Integrieren Sie die neu erstellten Microservices in eine Microservices-Architektur mithilfe von AWSServerless Services von Amazon Web Services ().
-
Aktivieren der Datenpersistenz für die Microservices-Architektur – Fördern Sie die Polyglot-Persistenz
zwischen Ihren Microservices, indem Sie deren Datenspeicher dezentralisieren.
Obwohl Sie für einige Anwendungsfälle eine monolithische Anwendungsarchitektur verwenden können, funktionieren moderne Anwendungsfunktionen oft nicht in einer monolithischen Architektur. Beispielsweise kann die gesamte Anwendung nicht verfügbar bleiben, während Sie einzelne Komponenten aktualisieren, und Sie können einzelne Komponenten nicht skalieren, um Engpässe oder Schwachstellen zu beheben (relativ dichte Regionen in den Daten Ihrer Anwendung). Monolithe können zu großen, nicht überschaubaren Anwendungen werden, und zwischen mehreren Teams sind erhebliche Bemühungen und Koordination erforderlich, um kleine Änderungen einzuführen.
Legacy-Anwendungen verwenden in der Regel eine zentrale monolithische Datenbank, die Schemaänderungen schwierig macht, eine Technologiesperre mit vertikaler Skalierung als einzige Möglichkeit, auf Wachstum zu reagieren, und einen einzigen Fehlerpunkt vorsieht. Eine monolithische Datenbank verhindert auch, dass Sie die dezentralisierten und unabhängigen Komponenten erstellen, die für die Implementierung einer Microservices-Architektur erforderlich sind.
Zuvor bestand ein typischer Architekturansatz darin, alle Benutzeranforderungen in einer relationalen Datenbank zu modellieren, die von der monolithischen Anwendung verwendet wurde. Dieser Ansatz wurde von der beliebten relationalen Datenbankarchitektur unterstützt, und Anwendungsarchitekten haben das relationale Schema normalerweise in den frühesten Phasen des Entwicklungsprozesses entwickelt, ein hoch normalisiertes Schema erstellt und es dann an das Entwicklerteam gesendet. Dies bedeutete jedoch, dass die Datenbank das Datenmodell für den Anwendungsanwendungsfall bewegte, anstatt auf die andere Weise.
Indem Sie sich dafür entscheiden, Ihre Datenspeicher zu dezentralisieren, fördern Sie die Polyglot-Persistenz zwischen Ihren Microservices und identifizieren Ihre Datenspeichertechnologie anhand der Datenzugriffsmuster und anderer Anforderungen Ihrer Microservices. Jeder Microservice hat seinen eigenen Datenspeicher und kann unabhängig mit Schemaänderungen mit geringen Auswirkungen skaliert werden. Die Daten werden über die API des Microservice verwaltet. Die Aufteilung einer monolithischen Datenbank ist nicht einfach, und eine der größten Herausforderungen besteht darin, Ihre Daten so zu strukturieren, dass sie die bestmögliche Leistung erzielen. Die Persistenz dekodierter Polyglots führt in der Regel auch zu letztendlicher Datenkonsistenz, und andere potenzielle Herausforderungen, die eine gründliche Auswertung erfordern, umfassen die Datensynchronisierung während Transaktionen, die Transaktionsintegrität, die Datenduplizierung sowie Joins und Latenz.
Dieser Leitfaden richtet sich an Anwendungseigentümer, Geschäftsinhaber, Architekten, technische Leiter und Projektmanager. Das Handbuch enthält die folgenden sechs Muster, um die Datenpersistenz zwischen Ihren Microservices zu ermöglichen:
-
-
Schritte zur Implementierung des saga Musters mithilfe von AWS Step Functionsfinden Sie im Muster Implementieren des Serverless-sagaMusters mithilfe von AWS Step Functions auf der Website AWS Prescriptive Guidance.
-
Der Leitfaden ist Teil einer Inhaltsreihe, die den von empfohlenen Ansatz zur Anwendungsmoderation behandeltAWS. Die Serie umfasst auch:
Gezielte Geschäftsergebnisse
Viele Organisationen stellen fest, dass die Innovation und Verbesserung der Benutzererfahrung durch monolithische Anwendungen, Datenbanken und Technologien negativ beeinflusst wird. Ältere Anwendungen und Datenbanken reduzieren Ihre Optionen für die Einführung moderner Technologie-Frameworks und beschränken Ihre Wettbewerbsfähigkeit und Innovation. Wenn Sie Anwendungen und ihre Datenspeicher modernisieren, sind sie jedoch einfacher zu skalieren und schneller zu entwickeln. Eine entkoppelte Datenstrategie verbessert die Fehlertoleranz und Resilienz, was dazu beiträgt, die Markteinführungszeit für Ihre neuen Anwendungsfunktionen zu beschleunigen.
Sie sollten die folgenden sechs Ergebnisse erwarten, die sich aus der Förderung der Datenpersistenz zwischen Ihren Microservices ergeben:
-
Entfernen Sie ältere monolithische Datenbanken aus Ihrem Anwendungsportfolio.
-
Verbessern Sie Fehlertoleranz, Ausfallsicherheit und Verfügbarkeit für Ihre Anwendungen.
-
Verkürzen Sie Ihre Zeit bis zur Markteinführung für neue Anwendungsfunktionen.
-
Reduzieren Sie Ihre gesamten Lizenzkosten und Betriebskosten.
-
Nutzen Sie Open-Source-Lösungen (z. B. MySQL
oder PostgreSQL ). -
Erstellen Sie hochgradig skalierbare und verteilte Anwendungen, indem Sie aus mehr als 15 speziell entwickelten Datenbank-Engines in der AWS Cloud
wählen.