Was ist ein Workflow?
Ein Workflow beschreibt, wie Menschen ihre Arbeit von Anfang bis Ende erledigen. Ein Workflow besteht aus den Schritten und Zuständen eines Vorgangs. Workflows können als eine Reihe von Schritten in einer Checkliste oder als ein Diagramm erscheinen, in dem diese Schritte visualisiert werden.
Das Folgende ist ein Beispiel für einen einfachen Support-Workflow:
- Carl, ein Kunde, startet eine Supportanfrage.
- Der offene Fall wird Sasha, einem Support-Mitarbeiter, zugewiesen.
- Sasha erhält den zugewiesenen Fall und bittet Carl um Informationen. Während er auf die Antwort wartet, ist der Status des Falls ausstehend.
- Nachdem Carl die angeforderten Informationen bereitgestellt hat, antwortet Sasha mit einer Lösung und aktualisiert dann den Status des Falls auf „Gelöst“.
- Carl erhält die Antwort sowie einen Umfragelink, über den er Feedback zu seiner Supportanfrage geben kann. Er freut sich über Sashas schnelle Antwort und gibt hohe Bewertungen in der Umfrage ab. Der Status des Falls wird auf „Geschlossen“ aktualisiert.
In diesem Workflow sind die Schritte „Start“, „Zuweisen“, „Auflösen“ und „Schließen“. Die Stati sind „offen“, „zugewiesen“, „ausstehend“, „gelöst“ und „geschlossen“. Schritte verschieben den Prozess entlang eines Pfads von Status zu Status, bis der Workflow abgeschlossen ist.
Welche Vorteile bietet die Verwendung von Workflows?
Workflows bieten eine Reihe wiederholbarer Schritte und Aufgaben, die Sie initiieren, planen und überwachen können.
Sie können Workflows zur Beobachtung visualisieren, die Korrektheit des Workflows überprüfen und die Vorgänge im Workflow überwachen.
Mit Workflows können Unternehmen eine höhere Zuverlässigkeit für verteilte Anwendungen erreichen, ohne ihren Code zusätzlich zu komplexer zu machen. Sie können Workflows auf granularer Ebene automatisieren, optimieren und skalieren.
Was bringen Workflows in die Anwendungsarchitektur mit sich?
Workflows fördern die lokale Trennung zwischen dem Steuerungsablauf der schrittweisen Logik Ihrer Aufträge und den eigentlichen Arbeitseinheiten, die Ihre eigene Geschäftslogik enthalten. Mit dieser Abteilung können Sie die Zustandsmechanismen Ihrer Anwendung getrennt von der zentralen Geschäftslogik verwalten, warten und skalieren.
Wenn sich Ihre Geschäftserfordernisse ändern, können Sie auf einfache Weise die Anwendungslogik ändern, ohne die zugrundeliegende Statusmechanik, Aufgabenverteilung und Flusssteuerung zu ändern.
Wie verbessern Workflow-Services die Anwendungsarchitektur?
Zuverlässigkeit
Die Trennung von Zustandsverfolgung und Aufgabenverarbeitung bringt Zuverlässigkeit in eine Cloud-basierte Architektur. Mithilfe von Workflow-Services können Sie Aufgaben an Anwendungskomponenten senden, deren Fortschritt verfolgen und den aktuellen Status des Systems ermitteln.
Einfachheit
Workflows ersetzen die Komplexität von individuell codierten, selbst entwickelten Lösungen und Prozessautomatisierungscode.
Aufgaben, die Verarbeitungsschritte steuern, können lange andauern und zu Fehlern oder Zeitüberschreitungen führen oder Neustarts erforderlich machen. Sie werden oft mit unterschiedlichen Durchsätzen und Latenzen abgeschlossen. In all diesen Fällen ist das Nachhalten und Visualisieren von Aufgaben nicht nur eine Herausforderung, sondern auch undifferenzierte Arbeit.
Mit Workflow-Services können Entwickler die Verwaltung der Infrastruktur für die Prozessautomatisierung vermeiden. Dadurch können sie ihre Energie auf die einzigartige Funktionalität ihrer Anwendung konzentrieren.
Skalierbarkeit
Workflow-Services sind so konzipiert, dass sie sich nahtlos an die Nutzung Ihrer Anwendung anpassen. Wenn Sie weitere Workflows zur Anwendung hinzufügen oder die Komplexität Ihrer Workflows erhöhen, können Sie die Administration des Workflow-Service automatisieren.
Flexibilität
Entwickler können Workflow-Services verwenden, um Anwendungskomponenten und Koordinationslogik in verschiedenen Programmiersprachen zu erstellen. Entwickler können sich dann auf ihre differenzierte Anwendungslogik konzentrieren.
Was sind einige gängige Workflow-Anwendungsfälle?
Workflows können bei jedem Rechenproblem oder Geschäftsprozess helfen, der in eine Reihe von Schritten unterteilt werden kann. Workflows vereinfachen die Verwaltung von Jobs mit gegenseitigen Abhängigkeiten. Folgende Anwendungsfälle sind möglich:
- Anwendungsorchestrierung – Koordinieren Sie lose gekoppelte Microservices, die jeweils in einem eigenen Prozess ausgeführt und unabhängig voneinander bereitgestellt werden, durch Kommunikation von Ereignissen. Kombinieren Sie serverlose Funktionen, um eine Webanwendung mit einem asynchronen menschlichen Genehmigungsschritt zu erstellen. Weitere Anwendungsbeispiele finden Sie unter Microservice-Orchestrierung im AWS Step Functions Developer Guide.
- Datenverarbeitung – Konsolidierung von Daten aus mehreren Datensätzen zu einheitlichen Berichten, Verfeinerung und Reduzierung großer Datensätze in nützliche Formate oder Koordination von mehrstufigen Analysen und Workflows für Machine Learning. Weitere Beispiele für Anwendungsfälle finden Sie unter Datenverarbeitung im AWS Step Functions Developer Guide.
- DevOps und IT-Automatisierung – Entwickeln Sie Tools für kontinuierliche Integration und kontinuierliche Bereitstellung oder erstellen Sie ereignisgesteuerte Anwendungen, die automatisch auf Änderungen in der Infrastruktur reagieren. Weitere Beispiele für Anwendungsfälle finden Sie unter IT- und Sicherheitsautomatisierung im AWS Step Functions Developer Guide.
- E-Commerce – Automatisieren von missionskritischen Geschäftsprozessen wie Auftragsabwicklung und Bestandsverfolgung.
- Webanwendungen – Implementieren Sie robuste Benutzerregistrierungsprozesse und -authentifizierung und integrieren Sie optional Schritte für Auditing und erhöhte Sicherheit.
- Machine Learning – Führen Sie ETL-Jobs (Extrahieren, Transformieren und Laden) aus, um ein Modell für Machine Learning zu erstellen, zu trainieren und bereitzustellen. Beispielsweise das Sammeln und Verarbeiten von Bilddaten, um Objekte in einem Videostream zu erkennen, Begrenzungsrahmen hinzuzufügen oder visuelle Informationen und Metadateninformationen für die Datenkatalogisierung bereitzustellen. Weitere Beispiele für Anwendungsfälle finden Sie unter Machine Learning im AWS Step Functions Developer Guide.
- Sicherheitsautomatisierung – Geplante Analyse oder Reaktion auf Sicherheitsvorfälle, initiiert durch verwaltete Ressourcenereignisse, mit benutzerdefinierten Workflows, die je nach Geschäftsregeln Prüf- und Benachrichtigungsschritte aufrufen.
- Medienverarbeitung – Extrahieren Sie Daten aus PDF-Dokumenten oder Bildern zur Verarbeitung. Teilen und transkodieren Sie Videos mithilfe massiver Parallelisierung. Weitere Anwendungsbeispiele finden Sie unter Anwendungsfälle für Medienverarbeitung in AWS Step Functions.
Wie erstellt man einen Workflow?
Entwickler können zunächst benutzerdefinierte codierte Lösungen und Prozessautomatisierungscode erstellen. Diese Lösungen beginnen einfach, werden aber mit der Zeit und Entwicklung tendenziell komplex und fehleranfällig. Der Aufwand für die Aktualisierung der Geschäftslogik steigt, und die Änderungsrate verlangsamt sich im Laufe der Zeit.
Sie können einen Teil der Komplexität selbst entwickelter Lösungen verringern, indem Sie Workflow-spezifische Bibliotheken verwenden. Die Konfiguration dieser Tools kann den Prozess jedoch noch komplexer machen. Die Workflow-Schritte und -Zustände sind möglicherweise immer noch schwer zu visualisieren.
Die erweiterte Erstellung und Überwachung von Workflows erfordert visuelle Tools zur Anordnung der Workflow-Status und -Schritte. In diesen Tools stehen die Regeln der Geschäftslogik zur Verwaltung und Aktualisierung zur Verfügung. Die Verwendung grafischer Tools kann die Produktivität der Entwickler und die Transparenz der Workflows verbessern und das Fehlerpotenzial verringern.
Ein praktisches Tutorial zur Verwendung des visuellen Workflow-Designers Workflow Studio finden Sie unter Wie erstelle ich einen serverlosen Workflow im AWS Developer Center.
Was sind gängige Workflow-Muster?
Mithilfe von Workflows können Sie sich auf die Definition von Komponenteninteraktionen konzentrieren, anstatt Software zu schreiben, damit die Interaktionen funktionieren.
Workflows können sowohl Microservices als auch Container orchestrieren. Zu den gängigen Mustern für Workflows gehören Microservice-Verkettung, asynchrone oder synchrone Reaktionen, menschliche Interaktionen, Container-Orchestrierung und Choreographie, Verzweigung und Fehlerbehandlung.
Welche Workflow-Services bietet AWS an?
AWS Step Functions ist ein visueller Low-Code-Workflow-Service, der zur Koordination von AWS-Services, zum Automatisieren von Geschäftsprozessen und zur Entwicklung von Serverless-Anwendungen verwendet wird. Step Functions umfasst Workflow Studio, einen Low-Code-Workflow-Designer mit Drag-and-Drop. Dieses Tool generiert Ihre Funktionen und Konfigurationen automatisch in der Amazon States Language, einer JSON-basierten, strukturierten Sprache, die zum Definieren von Zustandsautomaten verwendet wird. Sie können Amazon States Language in der Step-Functions-Konsole verwenden oder sie exportieren und bearbeiten.
Amazon Managed Workflows for Apache Airflow (Amazon MWAA) bietet dieselbe Open-Source-Apache Airflow-Erfahrung, jedoch als vollständig verwalteter Service. Verwenden Sie Amazon MWAA, um Ihre vorhandenen lokalen Lösungen in die Cloud zu verlagern, um die Betriebskosten zu senken und in großem Maßstab bereitzustellen. Entwickler können weiterhin Modelle mit gerichteten azyklischen Diagrammen (DAG) in Python schreiben, Abhängigkeiten für Aufgaben deklarieren und gleichzeitig in andere AWS-Services integrieren.
Wir empfehlen AWS Step Functions für alle neuen Anwendungen, da dies ein produktives und agiles Vorgehen zur Koordination von Anwendungskomponenten unter Verwendung von visuellen Workflows darstellt. Ein praktisches Tutorial zur Verwendung von Step Functions Workflow Studio und Amazon States Language finden Sie unter Wie erstelle ich einen serverlosen Workflow im AWS Developer Center.
Nächste Schritte mit Workflow in AWS
Workflows entwickeln mit über 200 AWS-Services und 9 000 API-Aktionen
Beginnen Sie mit der Entwicklung mit dem API Gateway in der AWS-Managementkonsole.