Freigeben über


Auswählen eines Orchestrierungsframeworks

In diesem Artikel wird Folgendes behandelt:

  • Die Vorteile der Verwendung eines Orchestrierungsframeworks.
  • Welches Framework für Ihr Szenario am besten geeignet ist.

Azure bietet zwei entwicklerorientierte Orchestrierungsframeworks, die Sie zum Erstellen von Apps verwenden können: Dauerhafte Funktionen für Apps, die in Azure-Funktionen gehostet werden, und dauerhafte Aufgaben-SDKs für Apps, die auf anderen Computeplattformen gehostet werden. Orchestrierungen, auch als Workflows bezeichnet, umfassen das Anordnen und Koordinieren mehrerer (lang ausgeführter) Aufgaben oder Prozesse, häufig mit mehreren Systemen, die in einer bestimmten Reihenfolge ausgeführt werden. Es ist wichtig, dass ein Orchestrierungsframework eine dauerhafte Ausführung garantiert, d. h., wenn Unterbrechungen oder Infrastrukturfehler auftreten, kann die Ausführung von einem anderen Prozess oder Computer aus dem Fehlerpunkt fortgesetzt werden. Die SdKs für dauerhafte Aufgaben und dauerhafte Funktionen stellen sicher, dass Orchestrierungen durch integrierte Zustandspersistenz und automatische Wiederholungen dauerhaft ausgeführt werden, damit Sie Orchestrierungen erstellen können, ohne dass die Architektur für die Fehlertoleranz belastet wird.

Szenarien, die Orchestrierung erfordern

Im Folgenden finden Sie Szenarien, in denen allgemeine Orchestrierungsmuster erforderlich sind, die von den SdKs für dauerhafte Aufgaben und dauerhaften Funktionen profitieren:

  • Funktionskette: Für Szenarien mit sequenziellen Schritten, bei denen jeder Schritt von der Ausgabe des vorherigen schritts abhängig sein kann.
  • Fan-out/Fan-In: Für Batchaufträge, ETL (Extrahieren, Übertragen und Laden) und jedes Szenario, das eine parallele Verarbeitung erfordert.
  • Menschliche Interaktionen: Bei der Zwei-Faktor-Authentifizierung sind Workflows erforderlich, die menschliche Eingriffe benötigen.
  • Asynchrone HTTP-APIs: Für jedes Szenario, in dem ein Client nicht warten möchte, bis lange ausgeführte Aufgaben abgeschlossen sind.

Die beiden folgenden Szenarien teilen das Funktionskettenmuster .

Verarbeitung von Bestellungen auf einer E-Commerce-Website

Angenommen, Sie erstellen eine E-Commerce-Website. Ihre Website benötigt wahrscheinlich einen Auftragsverarbeitungsworkflow für jeden Kundenkauf. Der Workflow kann die folgenden sequenziellen Schritte enthalten:

  1. Überprüfen des Inventars
  2. Zahlung verarbeiten
  3. Aktualisieren des Inventars
  4. Rechnung generieren
  5. Bestellbestätigung senden

Aufrufen von KI-Agents für die Planung einer Reise

In diesem Szenario sagen wir, Sie müssen einen intelligenten Reiseplaner erstellen. Es gibt eine Reihe bekannter Schritte, die der Planner durchlaufen sollte:

  1. Vorschlagen von Ideen basierend auf Benutzeranforderungen
  2. Bestätigung der Präferenz einholen
  3. Erforderliche Buchungen vornehmen

Sie können einen KI-Agent für jede Aufgabe implementieren und dann eine Orchestrierung schreiben, die diese Agents in bestimmter Reihenfolge aufruft.

Orchestrierungsframeworkoptionen

Sowohl durable Functions als auch Durable Task SDK sind in mehreren Sprachen verfügbar, aber es gibt einige Unterschiede bei der Verwendung.

Wenn Sie wissen, welches Orchestrierungsframework für die Produktion empfohlen wird, können Sie entscheiden, welche Für Ihr Projekt am besten geeignet ist. Während das Backend der Durable Task vollständig verwaltet und unterstützt wird, variieren die Erweiterung „Durable Functions“ und die Durable Task SDKs je nach Preismodell und dem verwendeten Sprach-SDK in ihrer Stabilität.

Die folgende Tabelle zeigt, welche Clienterfahrung für die Produktionsverwendung geeignet ist.

Erfahrung Dedizierte SKU SKU für den Verbrauch
Erweiterung für Durable Functions in allen Sprachen Allgemein verfügbar Vorschau
Durable Task .NET SDK Allgemein verfügbar Vorschau
Durable Task Python SDK Allgemein verfügbar Vorschau
Dauerhafte Aufgabe Java SDK Vorschau Vorschau

Dauerhafte Funktionen

Als Feature von Azure Functions erbt Durable Functions zahlreiche Ressourcen, z. B.:

  • Integrationen mit anderen Azure-Diensten über die Funktionserweiterungen
  • Lokale Entwicklungserfahrung
  • Serverloses Preismodell
  • Hosting in Azure App Service und Azure-Container-Apps

Dauerhafte Funktionen speichern Zustände in einem Speicher-Backend und unterstützen:

Wann sind dauerhafte Funktionen anzuwenden?

Erwägen Sie die Verwendung dauerhafter Funktionen, wenn Sie ereignisgesteuerte Apps mit Workflows erstellen müssen. Die Azure Functions-Erweiterungen bieten Integrationen mit anderen Azure-Diensten, die das Erstellen ereignisgesteuerter Szenarien vereinfachen. Beispielsweise mit Durable Functions:

  • Sie können eine Orchestrierung ganz einfach starten, wenn eine Nachricht in Ihren Azure Service Bus gelangt oder eine Datei in Azure Blob Storage hochgeladen wird.
  • Sie können ganz einfach eine Orchestrierung erstellen, die regelmäßig oder als Reaktion auf eine HTTP-Anforderung mit dem Azure Functions-Timer bzw. HTTP-Trigger ausgeführt wird.

Ein weiterer Grund, dauerhafte Funktionen zu berücksichtigen, ist, wenn Sie bereits Azure-Funktions-Apps schreiben und erkannt haben, dass Sie Workflow benötigen. Da das Programmiermodell für dauerhafte Funktionen den Funktionen ähnelt, können Sie ihre Entwicklung beschleunigen.

Ausprobieren

Führen Sie eine der folgenden Schnellstarts oder Beispiele durch, um mehr über dauerhafte Funktionen zu erfahren.

Schnellstart
Schnellstart BESCHREIBUNG
Dauerhafter Aufgabenplaner Erstellen einer App für dauerhafte Funktionen mit dauerhaftem Aufgabenplaner Erstellen Sie eine "Hello World"-App für dauerhafte Funktionen, die den Durable Task Scheduler als Back-End verwendet, lokal testen und in Azure veröffentlichen.
Azure Storage Erstellen Sie eine App für dauerhafte Funktionen mit dem Azure Storage-Back-End:
- .NET
- Python
- JavaScript/TypeScript
- Java
- PowerShell
Erstellen Sie eine "Hello World"-App für dauerhafte Funktionen, die Azure Storage als Back-End verwendet, lokal testen und in Azure veröffentlichen.
MSSQL Erstellen einer App für dauerhafte Funktionen mit MSSQL Erstellen Sie eine "Hello World"-App für dauerhafte Funktionen, die MSSQL als Back-End verwendet, lokal testen und in Azure veröffentlichen.
Beispiele
Beispiel BESCHREIBUNG
Auftragsverarbeitungsworkflow Erstellen eines Auftragsverarbeitungsworkflows mit dauerhaften Funktionen:
- .NET
- Python
In diesem Beispiel wird ein Auftragsverarbeitungsworkflow implementiert, der das Überprüfen des Inventars, die Verarbeitung von Zahlungen, das Aktualisieren des Bestands und die Benachrichtigung des Kunden umfasst.
Intelligente PDF-Zusammenfassung Erstellen Sie eine App, die PDF-Dateien mit dauerhaften Funktionen verarbeitet:
- .NET
- Python
In diesem Beispiel wird die Verwendung dauerhafter Funktionen veranschaulicht, um die Schritte zur Verarbeitung und Zusammenfassung von PDFs mithilfe von Azure Cognitive Services und Azure OpenAI zu koordinieren.

SDKs für langlebige Aufgaben mit langlebigem Aufgabenplaner

Die SDKs für Durable Task sind Client-SDKs, die mit dem Durable Task Scheduler verwendet werden müssen. Die Durable Task SDKs verbinden die von Ihnen geschriebenen Orchestrierungen mit der Durable Task Scheduler-Orchestrierungs-Engine in Azure. Apps, die die SDKs für dauerhafte Aufgaben verwenden, können auf einer beliebigen Computeplattform ausgeführt werden, einschließlich:

  • Azure Kubernetes-Dienst
  • Azure Container Apps – ein Dienst für containerbasierte Anwendungen
  • Azure App Service
  • Virtuelle Computer (VMs) lokal

Der Durable Task Scheduler (Java SDK derzeit in der Vorschau) spielt sowohl die Rolle des Orchestrierungsmoduls als auch des Speicher-Back-Ends für die Persistenz des Orchestrierungszustands. Der dauerhafte Aufgabenplaner

  • Wird vollständig von Azure verwaltet, wodurch Verwaltungsaufwand entfernt wird
  • Ermöglicht hohen Orchestrierungsdurchsatz.
  • Bietet ein einsatzbereites Dashboard für die Überwachung und das Debugging von Orchestrierungen.
  • Enthält einen lokalen Emulator.

Wann dauerhafte Aufgaben-SDKs verwendet werden sollten

Wenn Sie das Programmiermodell von Azure Functions nicht verwenden möchten, bieten die SdKs für dauerhafte Aufgaben ein einfaches und relativ unaufdringliches Programmiermodell für die Erstellung von Workflows.

Wenn Sie Apps auf Azure Kubernetes Services oder virtuellen Computern lokal mit offiziellem Microsoft-Support ausführen müssen, sollten Sie die Verwendung der SdKs für dauerhafte Aufgaben in Betracht ziehen. Auch wenn dauerhafte Funktionen auf diesen Plattformen ausgeführt werden können, gibt es keinen offiziellen Support.

Ausprobieren

Arbeiten Sie einen der folgenden Schnellstarts durch, um Ihre Anwendungen mit den Durable Task SDKs für die Verwendung des langlebigen Aufgabenplaners zu konfigurieren.

Schnellstart BESCHREIBUNG
Schnellstart für die lokale Entwicklung Erstellen Sie eine App mit den Durable-Task-SDKs und dem Durable Task Scheduler mithilfe der .NET-, Python- oder Java-SDKs. Führen Sie eine Fan-In-/Fan-Out-Orchestrierung lokal mithilfe des Emulators "Durable Task Scheduler" aus und überprüfen Sie den Orchestrierungsverlauf mit dem Dashboard.
Hosting in Azure-Containeranwendungen Bereitstellen einer Durable Task SDK-App in Azure-Container-Apps Stellen Sie schnell eine "hello world" Durable Task SDK-App mithilfe der Azure Developer CLI in Azure-Container-Apps bereit.

Hinweis

Das Durable Task Framework (DTFx) ist ein Open-Source-.NET-Orchestrierungsframework ähnlich dem .NET Durable Task SDK. Es kann zwar verwendet werden, um Apps zu erstellen, die auf Plattformen wie Azure Kubernetes Services ausgeführt werden, aber DTFx erhält keinen offiziellen Microsoft-Support.

Nächste Schritte