Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í:
- Azure Functions (prostřednictvím Durable Functions)
- Vlastní hosting (prostřednictvím samostatných SDKů Durable Task).
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:
přehled Durable Functions
Pak se dozvíte více o poskytovateli back-endu Plánovače trvalých úloh.