Scegliere il modello di hosting Durable Task

Questo articolo consente di scegliere tra i due modelli di hosting Durable Task, Durable Functions (Funzioni di Azure) e gli SDK di Durable Task indipendenti standalone Durable Task SDKs (self-hosted), in base alla piattaforma di hosting, alle esigenze di scalabilità e ai requisiti operativi.

Suggerimento

Conosce già la piattaforma di hosting? Passare alla tabella di ricerca della piattaforma per ottenere una risposta rapida.

Come descritto in What is Durable Task?, Durable Task supporta due modelli di hosting:

Entrambi i modelli di hosting offrono le stesse funzionalità di esecuzione durevoli principali (orchestrazioni, attività, timer, eventi esterni e altro ancora), ma differiscono in che modo l'applicazione è ospitata, ridimensionata e distribuita.

In generale, in cui l'applicazione viene eseguita determina il modello di hosting usato. Se si sviluppa sulla base di Funzione di Azure, usare Durable Functions. Se utilizzi qualsiasi altra piattaforma di calcolo, utilizzi gli SDK autonomi di Durable Task.

Scegliere in base alla piattaforma di hosting

Se si conosce già la piattaforma di hosting dell'applicazione, la tabella seguente consente di determinare quale modello di hosting usare:

Piattaforma di hosting Modello di hosting
Funzioni di Azure (Consumo, Consumo flessibile, Premium) Durable Functions
App contenitore di Azure (con runtime di Funzioni di Azure) O uno o l'altro
Servizio app di Azure (con runtime di Funzioni di Azure) O uno o l'altro
Servizio Azure Kubernetes (AKS) SDK per attività permanenti autonome
Macchine virtuali o locali SDK per attività permanenti autonome

Annotazioni

Servizio app di Azure e App contenitore di Azure possono entrambi ospitare il runtime di Funzioni di Azure, tramite l'integrazione completamente gestita di Funzioni di Azure o distribuendo direttamente il runtime di Functions. Entrambe le piattaforme supportano quindi entrambi i modelli di hosting. Per altre informazioni sui modelli di hosting Funzioni di Azure, vedere Funzioni di Azure piani di hosting.

Confrontare i modelli di hosting

La tabella seguente riepiloga le differenze principali tra i due modelli di hosting:

Durable Functions (Funzioni di Azure) Insiemi di sviluppo software autonomi per attività persistenti (ospitato autonomamente)
Servizio di hosting Funzioni di Azure (A consumo, Consumo Flessibile, Premium), Servizio app e App contenitore (con runtime di Funzioni) Qualsiasi piattaforma: App contenitore di Azure, AKS, App Service, macchine virtuali, in sede
Ridimensionamento Automatico, gestito dall'infrastruttura di scalabilità gestita Funzioni di Azure È possibile gestire manualmente il ridimensionamento o usare la scalabilità automatica nativa della piattaforma ( ad esempio KEDA in Kubernetes)
Trigger Supporto predefinito per i trigger HTTP, Queue, Timer, Event Grid e altri trigger di Funzioni di Azure Si definiscono punti di ingresso personalizzati (ad esempio endpoint HTTP, consumer di messaggi e così via)
Archiviazione dello stato Durable Task Scheduler (scelta consigliata), Archiviazione di Azure, MSSQL, Netherite Pianificatore di attività persistente
Lingue .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell .NET (C#/F#), JavaScript/TypeScript, Python, Java
Monitoring Integrazione predefinita con il portale di Azure, Application Insights Si configura una soluzione di monitoraggio personalizzata( ad esempio, Monitoraggio di Azure, Prometheus o Grafana)

Annotazioni

L'avvio a freddo si verifica quando un'app per le funzioni viene avviata dopo l'inattività. I piani di hosting Premium e Dedicato mantengono a caldo le istanze per ridurre la latenza di avvio a freddo.

Il piano di hosting Flex Consumption offre un concetto di "istanze sempre pronte" come mitigazione dell'avvio a freddo.

Ulteriori informazioni sui modelli di hosting di Funzioni di Azure.

API HTTP integrate

Funzioni di Azure fornisce endpoint HTTP per l'applicazione per funzioni, che l'estensione Durable Functions sfrutta per fornire il supporto incorporato per la gestione delle istanze su HTTP.

Quando si usano gli SDK di Durable Task, è necessario implementare endpoint HTTP personalizzati a seconda delle risorse di calcolo dell'hosting.

Feature Durable Functions SDK per attività durevoli
API HTTP di gestione ✅ Integrato ❌ Implementare la propria soluzione
URL di stato automatici ✅ Integrato ❌ Implementare la propria soluzione

Funzionalità HTTP di Durable Functions

Durable Functions espone automaticamente gli endpoint HTTP per avviare orchestrazioni, eseguire query sullo stato, generare eventi e terminare istanze. Queste API seguono il modello di polling HTTP asincrono, semplificando l'integrazione con sistemi esterni.

Annotazioni

Durable Functions supporta l'uso diretto della classe DurableTaskClient se si preferisce usare le API HTTP predefinite.

Altre informazioni: funzionalità HTTP in Durable Functions | riferimento API HTTP

Gestione degli SDK per attività durevoli

Con gli SDK di Durable Task è possibile usare la DurableTaskClient classe direttamente per gestire le istanze di orchestrazione. Se sono necessari endpoint HTTP, è necessario implementarli manualmente usando il framework Web preferito.

Altre informazioni: Gestire le istanze di orchestrazione

Back-end di archiviazione

Entrambi i modelli di hosting usano Durable Task Scheduler, un servizio di Azure completamente gestito per la persistenza e l'esecuzione dello stato di orchestrazione (pricing). Durable Functions supporta anche piattaforme di archiviazione personalizzate (Archiviazione di Azure, MSSQL e Netherite). Gli SDK di Durable Task usano esclusivamente il Durable Task Scheduler.

Altre informazioni: Provider di archiviazione

Configurazione dell'hub attività

Durable Functions configura gli hub delle attività nel file host.json. Gli SDK per attività permanenti configurano gli hub delle attività nel codice e nelle variabili di ambiente (stringa di connessione/endpoint).

Altre informazioni: Hub delle attività

Diagnostica e controllo delle versioni

Feature Durable Functions SDK per attività durevoli
Dashboard del pianificatore di attività durevole ✅ Sì ✅ Sì
Application Insights ✅ Integrato Configurazione manuale
Distribuzione senza tempi di inattività ✅ Slot di funzioni Specifico per piattaforma

Altre informazioni: Diagnostica | Versionamento

Quando scegliere ogni modello

Quando si sceglie tra i due modelli di hosting, considerare i fattori seguenti:

Scegliere Durable Functions se... Scegliere SDK per attività permanenti autonome se...
Si desidera avere trigger integrati di Funzioni di Azure (HTTP, Coda, Timer e così via). Si vuole avere il controllo completo sul contenitore e sui relativi punti di ingresso.
Si ha già familiarità con il modello di hosting Funzioni di Azure. Si preferisce un SDK leggero senza sovraccarico di runtime Funzioni di Azure.
Hai bisogno dell'integrazione del portale di Azure per la gestione delle funzioni. Si vuole che lo stesso codice sia portabile tra piattaforme container (AKS, Servizio App, e così via).
È necessario scegliere tra più sistemi di archiviazione. Hai del codice di applicazione esistente, non basato su Funzioni, con cui integrare.
Sono necessarie app serverless guidate dagli eventi con scalabilità orizzontale a zero. Sono necessari carichi di lavoro a bassa latenza sempre attivi senza ritardi di avvio a freddo.
Si desidera un piano a consumo con pagamento in base alle esecuzioni. Sono necessari scenari con velocità effettiva elevata ottimizzati per l'elaborazione batch.
È necessario creare rapidamente prototipi con trigger dichiarativi e associazioni. Hai applicazioni esistenti containerizzate o Kubernetes.

Migrazione

Se si usa già Durable Functions e si vuole passare a una distribuzione basata su contenitori o sfruttare la flessibilità di hosting degli SDK per attività permanenti, la migrazione è semplice. Il codice di orchestrazione è molto simile tra entrambi i framework.

Per indicazioni dettagliate sulla migrazione, vedere Migrate da Durable Functions a Durable Task SDK.

Annotazioni

Durable Task Framework (DTFx): The Durable Task Framework è una libreria .NET open source gestita dalla community per l'orchestrazione durevole. Viene usata internamente come dipendenza di Durable Functions, ma non include il supporto ufficiale Microsoft. Se si avvia un nuovo progetto, usare invece gli SDK di Durable Task moderni o Durable Functions.

Passaggi successivi

Introduzione al framework scelto:

Introduzione a Durable Functions

Successivamente, scopri di più sul provider back-end di Durable Task Scheduler.