Volba modelu hostování trvalých úloh

Tento článek vám pomůže rozhodnout se mezi dvěma modely hostování úloh Durable – Durable Functions (Azure Functions) a sadami SDK standalone Durable Task SDK (v místním prostředí) na základě požadavků na hostování, škálování a provozní požadavky.

Návod

Už znáte hostující platformu? Přejděte na tabulku vyhledávání podle platformy pro rychlou odpověď.

Jak je popsáno v části Co je Durable Task?, Durable Task podporuje dva modely hostování:

Oba modely hostování poskytují stejné základní odolné možnosti spouštění (orchestrace, aktivity, časovače, externí události a další), ale liší se v tom, jak je vaše aplikace hostovaná, škálovaná a nasazená.

Obecně platí, že pokud vaše aplikace běží, určuje, který model hostování používáte. Pokud pracujete s Azure Functions, použijete Durable Functions. Pokud používáte jakoukoli jinou výpočetní platformu, použijete samostatné sady SDK Durable Task.

Volba na základě hostitelské platformy

Pokud už znáte platformu hostování vaší aplikace, pomůže vám následující tabulka určit, který model hostování se má použít:

Platforma pro hostování Model hostingu
Azure Functions (Spotřeba, Flex spotřeba, Premium) Durable Functions
Azure Container Apps (s prostředím Azure Functions) Kteroukoli
Azure App Service (s prostředím Azure Functions runtime) Kteroukoli
Služba Azure Kubernetes (AKS) SDK samostatných trvanlivých úloh
Virtuální počítače nebo místní prostředí SDK samostatných trvanlivých úloh

Poznámka:

Azure App Service i Azure Container Apps mohou hostovat modul runtime Azure Functions, a to buď prostřednictvím úplné integrace Azure Functions, nebo nasazením modulu runtime Functions přímo. Obě platformy proto podporují buď model hostování. Další informace o modelech hostování Azure Functions najdete v tématu Azure Functions plány hostování.

Porovnání modelů hostování

Následující tabulka shrnuje klíčové rozdíly mezi těmito dvěma modely hostování:

Odolné funkce (Durable Functions) v Azure Functions Samostatné sady SDK úloh Durable (v místním prostředí)
Hostování Azure Functions (Consumption, Flex Consumption, Premium), App Service a Container Apps (s funkcí runtime Functions) Libovolná platforma: Azure Container Apps, AKS, App Service, virtuální počítače, místní
Změna velikosti Automaticky spravováno infrastrukturou automatického škálování Azure Functions. Škálování spravujete sami nebo používáte automatické škálování nativní pro platformu (například KEDA v Kubernetes).
Spouštěče Integrovaná podpora pro triggery HTTP, Queue, Timer, Event Grid a další triggery Azure Functions Definujete vlastní vstupní body (například koncové body HTTP, příjemci zpráv atd.).
State Storage Durable Task Scheduler (doporučeno), Azure Storage, MSSQL, Netherite Durable Task Scheduler
Jazyky .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell .NET (C#/F#), JavaScript/TypeScript, Python, Java
Monitoring Integrovaná integrace s portálem Azure, Application Insights Nastavili jste vlastní řešení monitorování (například Azure Monitor, Prometheus nebo Grafana).

Poznámka:

Studené spuštění nastane, když se funkční aplikace spustí po nečinnosti. Plány hostování úrovně Premium a Dedicated udržují instance teplé, aby se snížila latence studeného spuštění.

Plán hostování Flex Consumption nabízí koncept vždy připravených instancí pro zmírnění studeného startu.

Přečtěte si další informace o modelech hostování Azure Functions.

Integrovaná rozhraní API HTTP

Azure Functions poskytuje koncové body HTTP pro vaši aplikaci functions, které rozšíření Durable Functions využívá k zajištění integrované podpory pro správu instancí přes HTTP.

Při použití sad SDK Durable Task musíte implementovat vlastní koncové body HTTP v závislosti na vašem výpočetním prostředí při hostování.

funkce Durable Functions Durable Task SDK
Správa rozhraní HTTP API ✅ Vestavěný ❌ Implementujte vlastní
Automatické adresy URL stavu ✅ Vestavěný ❌ Implementujte vlastní

Funkce HTTP v rámci Durable Functions

Durable Functions automaticky zveřejňuje koncové body HTTP pro spouštění orchestrací, dotazování na stav, vyvolávání událostí a ukončování instancí. Tato rozhraní API se řídí asynchronním vzorem dotazování HTTP, což usnadňuje integraci s externími systémy.

Poznámka:

Durable Functions podporuje použití třídy DurableTaskClient přímo, pokud byste chtěli použít integrovaná rozhraní API HTTP.

Další informace: Funkce HTTP v Durable Functions | Referenční dokumentace k rozhraní API HTTP

Správa SDK dlouhotrvajících úloh

Při použití Durable Task SDK použijete třídu DurableTaskClient přímo ke správě instancí orchestrace. Pokud potřebujete koncové body HTTP, implementujete je sami pomocí preferované webové architektury.

Další informace: Správa instancí orchestrace

Úložiště backendová

Oba modely hostování používají Plánovač odolných úloh – plně spravovanou službu Azure pro uchování a provádění stavu orchestrace (ceny). Durable Functions navíc podporuje back-endy úložiště s možností vlastního úložiště (Azure Storage, MSSQL a Netherite). Sady SDK trvalých úloh používají výhradně Durable Task Scheduler.

Další informace: Poskytovatelé úložiště

Konfigurace centra úloh

Durable Functions nakonfiguruje centra úloh v souboru host.json. Sady trvalých úloh SDK konfigurují centra úloh v kódu a proměnných prostředí (řetězec připojení/koncový bod).

Další informace: Centra úloh

Diagnostika a správa verzí

funkce Durable Functions Durable Task SDK
Řídicí panel trvalého plánovače úloh ✅ Ano ✅ Ano
Application Insights ✅ Vestavěný Ruční nastavení
Nasazení nulového výpadku ✅ Sloty funkcí Specifické pro platformu

Další informace:Diagnostika | Verzování

Kdy zvolit jednotlivé modely

Při výběru mezi těmito dvěma modely hostování zvažte následující faktory:

Zvolte Durable Functions, pokud... Zvolte samostatné Durable Task SDKs, pokud...
Chcete integrované triggery Azure Functions (HTTP, Fronta, Časovač atd.). Chcete mít plnou kontrolu nad kontejnerem a jeho vstupními body.
Už znáte model hostování Azure Functions. Dáváte přednost lehké sadě SDK bez režijních nákladů runtime Azure Functions.
Chcete Azure integraci portálu pro správu funkcí. Chcete, aby byl stejný kód přenosný napříč kontejnerovými platformami (AKS, App Service atd.).
Musíte si vybrat z několika back-endů úložiště. Máte existující kód aplikace mimo Functions, se kterým se chcete integrovat.
Potřebujete bezserverové aplikace řízené událostmi , které se škáluje na nulu. Potřebujete nepřetržité úlohy s nízkou latencí bez zpoždění při studeném spuštění.
Chcete s plánem Consumption ceny za provedení platby. Potřebujete scénáře s vysokou propustností optimalizovanou pro dávkové zpracování.
Potřebujete rychlé vytváření prototypů s deklarativními triggery a vazbami. Máte existující kontejnerizované aplikace nebo aplikace Kubernetes.

Migrace

Pokud už používáte Durable Functions a chcete přejít na nasazení založené na kontejnerech nebo využít flexibilitu hostování sad DURABLE TASK SDK, migrace je jednoduchá. Kód orchestrace je velmi podobný mezi oběma architekturami.

Podrobné pokyny k migraci najdete v tématu Migrace z Durable Functions do sad SDK Durable Task.

Poznámka:

Durable Task Framework (DTFx): Durable Task Framework je komunitou udržovaná, opensourcová knihovna .NET pro odolnou orchestraci. Používá se interně jako závislost pro Durable Functions, ale nedisponuje oficiální podporou od Microsoftu. Pokud spouštíte nový projekt, použijte moderní sady SDK Durable Task nebo místo toho Durable Functions.

Další kroky

Začněte s architekturou, kterou jste zvolili:

Pak se dozvíte více o poskytovateli back-endu Plánovače trvalých úloh.