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.
Orchestrierung
Bei diesem Ansatz ist ein einziger Orchestrator dafür verantwortlich, jeden Microservice aufzurufen, zu bestimmen, ob Aufrufe nacheinander oder parallel ausgeführt werden sollen, die einzelnen Serviceantworten zu manipulieren und das Endergebnis zu kompilieren. Ein Orchestrator kann synchrone und asynchrone Aufrufe kombinieren.
AWS Step Functions
Orchestrierung ist eine gute Wahl, wenn Ihr Prozess logische Verzweigungen enthält und Sie einen zentralen Ort benötigen, um diese Logik zu kapseln. Sie ist auch nützlich, wenn Sie das asynchrone Muster für die Prüfung von Ansprüchen implementieren möchten. Beispielsweise können Standard-Workflows in Step Functions einen Workflow pausieren und auf einen Rückruf von einem anderen Service warten. Die Verwendung eines Orchestrators verbessert auch die Überwachung und Beobachtbarkeit eines Prozesses.
Beispiel: Step Functions
Sie können Step Functions verwenden, um mehrere Lambda-Funktionen und andere AWS-Services zu koordinieren und komplexe Workflows für die Microservice-Integration zu erstellen. Diese Option ist besonders nützlich für lang andauernde, mehrstufige Prozesse, an denen mehrere Microservices beteiligt sind.
Sie sollten die Verwendung von Step Functions in Betracht ziehen, wenn:
-
Ihre Microservice-Integration umfasst komplexe, mehrstufige Prozesse.
-
Sie müssen den Status bei lang andauernden Vorgängen aufrechterhalten.
-
Sie möchten die Fehlerbehandlungs- und Wiederholungslogik auf Workflow-Ebene implementieren.
-
Sie müssen sowohl synchrone als auch asynchrone Operationen koordinieren.
Step Functions bietet einen visuellen Editor für die Gestaltung komplexer Workflows, der die Erstellung und Verwaltung von Zustandsmaschinen vereinfacht. Er bietet integrierte Mechanismen zur Fehlerbehandlung, einschließlich Wiederholungslogik und Fehlerstatusverwaltung, die die Zuverlässigkeit und Robustheit Ihrer Anwendungen erhöhen. Standardworkflows unterstützen Prozesse mit langer Laufzeit von bis zu einem Jahr, was sich für Workflows über längere Zeiträume eignet. Diese Option trennt die Orchestrierungslogik vom Anwendungscode und reduziert so die Codekomplexität erheblich. Das bedeutet, dass sich Entwickler auf die Kerngeschäftslogik konzentrieren können, während Step Functions die Flusskontrolle und Koordination der verteilten Komponenten übernimmt.
Stellen Sie sich zum Beispiel einen Kreditgenehmigungsprozess in einer Finanzdienstleistungsanwendung vor, der in der folgenden Abbildung veranschaulicht wird. Der Prozess beginnt, wenn ein Kreditantrag eingereicht wird.
In der Zustandsmaschine, die im vorherigen Diagramm dargestellt ist, orchestriert Step Functions die folgenden Schritte:
-
Anwendungsdaten validieren (Lambda-Funktion)
-
Kreditwürdigkeit überprüfen (Lambda-Funktion, die eine externe API aufruft)
-
Risiko einschätzen (Lambda-Funktion)
-
Wenn das Risiko hoch ist, leiten Sie es zur manuellen Überprüfung weiter (Aufgabe zur Genehmigung durch einen Mitarbeiter)
-
Falls genehmigt, initiieren Sie die Kreditauszahlung (Lambda-Funktion)
-
Benachrichtigung an den Antragsteller senden (Amazon SNS)
Sie können diesen Ansatz verwenden, um einen komplexen, potenziell lang andauernden Prozess zuverlässig zu verwalten. Er bietet eine integrierte Fehlerbehandlung und die Möglichkeit, sowohl automatisierte als auch manuelle Schritte einzubeziehen.
Überlegungen:
-
Entwerfen Sie Ihren Zustandsmaschine sorgfältig, um alle möglichen Szenarien zu bewältigen.
-
Führen Sie die Schritte nach Möglichkeit parallel durch.
-
Verwenden Sie die integrierten Fehlerbehandlungs- und Wiederholungsmechanismen in Step Functions sowohl für permanente als auch für temporäre Fehler.
-
Erwägen Sie, je nach Anwendungsfall Standard- oder Express-Workflows zu verwenden. Express-Workflows sind möglicherweise für Workflows mit kurzer Dauer oder hohem Volumen vorzuziehen.
-
Überwachen Sie die Ausführungskennzahlen, um Ihren Workflow zu optimieren.
-
Verwenden Sie verschachtelte Workflows, um Funktionen für mehrere Zustandsmaschinen zu kapseln und wiederzuverwenden.
-
Für komplexe Workflows sollten Sie die Verwendung von Amazon Bedrock Agents als Alternative zu Step Functions in Betracht ziehen.
Weitere Informationen finden Sie in der Dokumentation zu Step Functions.
Beispiel: Amazon MWAA
Wenn Ihr Unternehmen Apache Airflow bereits verwendet, ist Amazon MWAA eine natürliche Wahl als Workflow-Orchestrator. In Apache Airflow erstellen Sie Ihre Workflows mithilfe von Python als gerichtete azyklische Graphen (DAGs). Die DAG-Darstellung der Zustandsmaschine, die im Abschnitt Step Functions dargestellt ist, könnte wie folgt aussehen:
Informationen zur Arbeit mit DAGs finden Sie in der Amazon MWAA-Dokumentation.
Hauptunterschiede zwischen Step Functions und Amazon MWAA
-
Step Functions ist ein vollständig verwalteter serverloser Dienst, sodass keine Infrastruktur vorab bereitgestellt werden muss und kein Wartungsfenster geplant werden muss. Amazon MWAA muss im Voraus bereitgestellt werden, und Sie wählen die Größe und Anzahl der Knoten in Ihrem Cluster.
-
In Step Functions können Sie Zustandsmaschinen auf verschiedene Arten erstellen, einschließlich Workflow Studio, direkt als JSON oder mithilfe von AWS Cloud Development Kit (AWS CDK). Apache Airflow DAGs sind in Python geschrieben.
-
Mit Step Functions entstehen Ihnen keine Kosten, wenn keine Workflows ausgeführt werden. Mit Amazon MWAA fallen auch dann Kosten an, wenn keine DAGs laufen.