Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Come descritto in What is Durable Task?, Durable Task supporta due modelli di hosting:
- Azure Functions (tramite Durable Functions)
- Self-hosted (tramite gli SDK Durable Task autonomi).
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.
Scelta basata sulla 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 |
|---|---|
| Azure Functions (Consumo, Consumo flessibile, Premium) | Durable Functions |
| Azure Container Apps (con runtime di Azure Functions) | O uno o l'altro |
| Azure App Service (con runtime di Azure Functions) | O uno o l'altro |
| Servizio Kubernetes di Azure | SDK per attività permanenti autonome |
| Macchine virtuali o locali | SDK per attività permanenti autonome |
Annotazioni
Azure App Service e Azure Container Apps possono entrambi ospitare il runtime di Azure Functions, tramite l'integrazione completamente gestita di Azure Functions o distribuendo direttamente il runtime di Functions. Entrambe le piattaforme supportano quindi entrambi i modelli di hosting. Per altre informazioni sui modelli di hosting Azure Functions, vedere Azure Functions piani di hosting.
Confronto dei 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: Azure Container Apps, AKS, App Service, macchine virtuali, in sede |
| Ridimensionamento | Automatico, gestito dall'infrastruttura di scalabilità gestita Azure Functions | È 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), Azure Storage, 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, Azure Monitor, 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.
Nel piano di hosting Consumo Flessibile è presente il concetto di "istanze sempre pronte" come mitigazione dell'avvio a freddo.
Ulteriori informazioni sui modelli di hosting di Azure Functions.
API HTTP integrate
Azure Functions 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
Durable Functions supportano più back-end di archiviazione, mentre gli SDK Durable Task utilizzano esclusivamente il Durable Task Scheduler.
Suggerimento
Il Durable Task Scheduler è un servizio di Azure completamente gestito che gestisce la persistenza dello stato di orchestrazione. Viene effettuato il provisioning come risorsa di Azure separata con il relativo piano di prezzi. È il back-end consigliato per Durable Functions e l'unico back-end supportato per gli SDK per le attività permanenti.
| Provider di archiviazione | Durable Functions | SDK per attività durevoli |
|---|---|---|
| Pianificatore di attività persistente | ✅ Consigliato | ✅ Obbligatorio |
| Archiviazione di Azure | ✅ Sostenuto | ❌ Non supportato |
| Microsoft SQL Server | ✅ Sostenuto | ❌ Non supportato |
| Netherite | ⚠️ Supportato, ma in fase di ritiro | ❌ Non supportato |
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 (connection string/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
Entrambi i modelli di hosting supportano il Durable Task Scheduler come sistema di archiviazione dello stato, che offre funzionalità di archiviazione dello stato e di monitoraggio aggiuntive. Durable Functions supporta anche diverse opzioni di archiviazione BYO (Bring Your Own) per scenari che li richiedono. Per altre informazioni, vedere Provider di archiviazione.
Altre considerazioni
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 Azure Functions (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 Azure Functions. | Si preferisce un SDK leggero senza sovraccarico di runtime Azure Functions. |
| 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.
Durable Task Framework (DTFx)
Durable Task Framework (DTFx) è una libreria .NET open source gestita dalla community per l'orchestrazione durevole. Fornisce primitive di orchestrazione simili agli SDK di Durable Task moderni e continua a essere usata attivamente nell'ambiente di produzione da molti team, tra cui Microsoft. In particolare, DTFx viene usato internamente come dipendenza di Azure Durable Functions, che è uno dei motivi per cui continua a essere manutenuto. Tuttavia, non è disponibile con il supporto Microsoft ufficiale: i bug e le richieste di funzionalità vengono risolti in modo ottimale. Richiede anche di gestire manualmente l'hosting e l'infrastruttura operativa.
Se si sta avviando un nuovo progetto o si ha bisogno del supporto microsoft ufficiale, è consigliabile 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.