A Durable Task üzemeltetési modelljének kiválasztása

Ez a cikk segítséget nyújt a két durable task üzemeltetési modell – Durable Functions (Azure Functions) és a standalone Durable Task SDK-k (saját üzemeltetésű) – között az üzemeltetési platform, a skálázási igények és a működési követelmények alapján.

Jótanács

Már ismeri az üzemeltetési platformot? Gyors válaszért ugorjon a platformkeresési táblára .

A Mi a tartós feladat? című cikkben leírtak szerint a Durable Task két üzemeltetési modellt támogat:

Mindkét üzemeltetési modell ugyanazokat az alapvető tartós végrehajtási képességeket biztosítja (vezénylések, tevékenységek, időzítők, külső események stb.), de eltér az alkalmazás üzemeltetésének, méretezésének és üzembe helyezésének módjától.

Általában az alkalmazás futtatásának helye határozza meg, hogy melyik üzemeltetési modellt használja. Ha az Azure Functions-re építkezik, használja a Durable Functions-t. Ha bármely más számítási platformra épít, akkor az önálló Durable Task SDK-kat használja.

Választás az üzemeltetési platform alapján

Ha már ismeri az alkalmazás üzemeltetési platformját, az alábbi táblázat segíthet meghatározni, hogy melyik üzemeltetési modellt használja:

Üzemeltetési platform Futtatási modell
Azure Functions (Felhasználás, Rugalmas felhasználás, Prémium) Durable Functions
Azure Container Apps (Azure Functions futtatókörnyezettel) Bármelyik
Azure App Service (Azure Functions futtatókörnyezettel) Bármelyik
Azure Kubernetes Service (AKS) Önálló tartós feladat SDK-k
Virtuális gépek vagy helyszíni gépek Önálló tartós feladat SDK-k

Megjegyzés:

Azure App Service és Azure Container Apps egyaránt üzemeltethetik az Azure Functions futtatókörnyezetet a teljesen felügyelt Azure Functions integrációval vagy a Functions-futtatókörnyezet közvetlenül üzembe helyezve. Így mindkét platform támogatja a üzemeltetési modellt. A Azure Functions üzemeltetési modellekkel kapcsolatos további információkért lásd: Azure Functions üzemeltetési tervek.

Az üzemeltetési modellek összehasonlítása

Az alábbi táblázat a két üzemeltetési modell közötti főbb különbségeket foglalja össze:

Tartós Funkciók (Durable Functions) - Azure Functions Önálló Durable Task SDK-k (saját üzemeltetésű)
Tárhelyszolgáltatás Azure Functions (Használat, Rugalmas használat, Prémium), App Service és Container Apps (Functions-futtatókörnyezettel) Bármely platform: Azure Container Apps, AKS, App Service, virtuális gépek, helyszíni telepítés
Méretezés Automatikus, az Azure Functions által kezelt skálázási infrastruktúra. Saját maga kezelheti a skálázást, vagy használhat platformalapú natív automatikus skálázást (például KEDA a Kubernetesen)
Eseményindítók Az HTTP, a Queue, az Időzítő, az Event Grid és az egyéb Azure Functions eseményindítók beépített támogatása Saját belépési pontokat határoz meg (például HTTP-végpontokat, üzenetfogyasztókat stb.)
Állapottároló Durable Task Scheduler (ajánlott), Azure Storage, MSSQL, Netherite Tartós feladatütemező
Nyelvek .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell .NET (C#/F#), JavaScript/TypeScript, Python, Java
Monitoring Beépített integráció Azure portállal, az Application Insightsszal Saját monitorozási megoldást állít be (például Azure Monitor, Prometheus vagy Grafana)

Megjegyzés:

Hidegindítás akkor következik be, ha egy függvényalkalmazás tétlen állapot után indul el. A prémium és dedikált üzemeltetési csomagok melegen tartják a példányokat a hidegindítási késés csökkentése érdekében.

A Flex Consumption üzemeltetési csomag egy "mindig kész példányok" koncepciót kínál hidegindítási kockázatcsökkentésként.

További információ a Azure Functions üzemeltetési modellekről.

Beépített HTTP API-k

Azure Functions HTTP-végpontokat biztosít a függvényalkalmazáshoz, amelyeket a Durable Functions bővítmény használ a példányok HTTP-alapú felügyeletének beépített támogatásához.

A Durable Task SDK-k használatakor saját HTTP-végpontokat kell implementálnia az üzemeltetési számítástól függően.

Funkció Durable Functions Tartós feladatkezelés fejlesztőkészletek
Felügyeleti HTTP API-k ✅ Beépített ❌ Valósítsa meg a sajátját
Automatikus állapot URL-ek ✅ Beépített ❌ Valósítsa meg a sajátját

HTTP-funkciók Durable Functions

Durable Functions automatikusan hozzáférhetővé teszi a HTTP-végpontokat a vezénylések indításához, az állapot lekérdezéséhez, események küldéséhez és a példányok leállításához. Ezek az API-k az aszinkron HTTP-lekérdezési mintát követik, így könnyen integrálhatók külső rendszerekkel.

Megjegyzés:

Durable Functions támogatja a DurableTaskClient osztály közvetlen használatát, ha inkább ezt szeretné a beépített HTTP API-k helyett.

További információ: HTTP-funkciók a Durable Functions | HTTP API-referencia

Tartós Task SDK-k kezelése

A Tartós Feladat SDK-kal közvetlenül használhatja a DurableTaskClient osztályt a vezénylési példányok kezelésére. Ha HTTP-végpontokra van szüksége, saját maga valósítja meg őket az előnyben részesített webes keretrendszer használatával.

További információ: Orchestration példányok kezelése

Tároló háttérrendszerei

Mindkét üzemeltetési modell a Durable Task Scheduler szolgáltatást használja – amely egy teljes körűen felügyelt Azure szolgáltatás a vezénylési állapot megőrzéséhez és végrehajtásához (árképzés). Durable Functions emellett támogatja a saját tároló háttérrendszerek használatát (Azure Storage, MSSQL és Netherite). A Durable Task SDK-k kizárólag a Durable Task Schedulert használják.

További információ: Tárolószolgáltatók

Feladatközpont konfigurálása

Durable Functions feladatközpontokat konfigurál a host.json fájlban. A Durable Task SDK-k kód- és környezeti változókban (kapcsolati karakterlánc/végpontban) konfigurálják a feladatközpontokat.

További információ: Tevékenységközpontok

Diagnosztika és verziószámozás

Funkció Durable Functions Tartós feladatkezelés fejlesztőkészletek
Durable Task Scheduler irányítópult ✅ Igen ✅ Igen
Application Insights ✅ Beépített Manuális beállítás
Állásidő nélküli üzembe helyezés ✅ Függvényhelyek Platformspecifikus

További információ: Diagnosztika | Verziókezelés

Mikor érdemes kiválasztani az egyes modelleket?

A két üzemeltetési modell kiválasztásakor vegye figyelembe a következő tényezőket:

Válassza Durable Functions, ha... Válasszon önálló Durable Task SDK-t, ha...
Beépített Azure Functions eseményindítókat (HTTP, Üzenetsor, Időzítő stb.) szeretne használni. Teljes körű vezérlést szeretne a tároló és a belépési pontok felett.
Már ismeri a Azure Functions üzemeltetési modellt. Az egyszerűsített SDK-t a Azure Functions futásidejű többletterhelés nélkül szeretné használni.
Azure portálintegrációt szeretne a függvénykezeléshez. Azt szeretné, hogy ugyanaz a kód legyen hordozható a tárolóplatformokon (AKS, App Service stb.).
Több háttértár közül kell választania. Ön rendelkezik meglévő nem-függvény alkalmazáskóddal, amelyet integrálhatnak más rendszerekkel.
Kiszolgáló nélküli, eseményvezérelt alkalmazásokra van szüksége, amelyek nullára skálázhatók. Folyamatos, alacsony késésű működésekre van szükség, hideg indítási késleltetés nélkül.
A használatalapú díjcsomaggal végrehajtásonkénti díjszabást szeretne. Kötegelt feldolgozáshoz optimalizált nagy teljesítményű forgatókönyvekre van szükség.
Gyors prototípus-készítést igényel deklaratív triggerekkel és kötésekkel. Meglévő konténerizált vagy Kubernetes-alkalmazásokkal rendelkezik.

Migration

Ha már használja a Durable Functions, és tárolóalapú üzembe helyezésre szeretne váltani, vagy kihasználja a Durable Task SDK-k üzemeltetési rugalmasságát, a migrálás egyszerű. A vezénylési kód nagyon hasonló a két keretrendszer között.

Részletes migrálási útmutatásért lásd: Migrate from Durable Functions to the Durable Task SDKs.

Megjegyzés:

Durable Task Framework (DTFx): A Durable Task Framework egy közösség által fenntartott, nyílt forráskódú .NET könyvtár a tartós vezényléshez. Belsőleg a Durable Functions függőségeként használják, de nem rendelkezik hivatalos Microsoft támogatással. Ha új projektet kezd, használja helyette a modern Durable Task SDK-t vagy Durable Functions.

Következő lépések

Ismerkedés a választott keretrendszerrel:

Ezután további információ a Durable Task Scheduler háttérszolgáltatóról.