Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Durable Task is Microsoft's implementatie van durable execution, een branchebrede aanpak om gewone code fouttolerant te maken door automatisch de voortgang te behouden. Het is een framework voor het bouwen van fouttolerante workflows en orkestraties als gewone code. In plaats van complexe retrylogica, toestandsmachines of berichtwachtrijen te beheren, schrijf je je bedrijfslogica als eenvoudige functies, en Durable Task verzorgt statuspersistentie, automatisch herstel en gedistribueerde coördinatie voor je.
Durable Task-werkstromen kunnen uren, dagen of zelfs maanden worden uitgevoerd, waardoor de laatste voltooide stap betrouwbaar wordt hervat na een crash, opnieuw opstarten of opnieuw implementeren. Veelvoorkomende gebruiksvoorbeelden zijn gedistribueerde transacties, AI-indeling met meerdere agents, pijplijnen voor gegevensverwerking en infrastructuurbeheer.
De rest van dit artikel legt uit waar Durable Task past, welke talen en hostingmodellen het ondersteunt, en hoe het is opgebouwd, zodat je kunt beslissen hoe je er fouttolerante applicaties mee bouwt.
Wat Durable Task omvat
Durable Task omvat:
- De Durable Task SDK's voor zelf-hostende toepassingen.
- De Durable Functions zijn voor serverloze hosting in Azure Functions.
- De Durable Task Scheduler, een volledig beheerde back-endservice die speciaal is gebouwd voor duurzame workloads.
Belangrijke toepassingsgevallen voor duurzame taken
Gebruik Durable Task wanneer uw toepassing betrouwbare, langlopende werkstroomindeling vereist voor gedistribueerde services. Veelvoorkomende scenario's zijn onder andere:
- Langlopende processen: Durable Task kan de status en voortgang beheren van processen die gedurende langere periodes draaien, ondanks onderbrekingen of fouten. Voorbeelden hiervan zijn orderverwerking, gegevenspijplijnen, machine learning-modeltraining en langdurige simulaties.
- Parallelle en fan-out/fan-in scenario's: Durable Task kan werk coördineren dat zich verspreidt over meerdere workers die parallel draaien op verschillende machines, en vervolgens de resultaten aggregeren. Voorbeelden hiervan zijn afbeeldingsverwerking, MapReduce-taken en ETL-werkstromen.
- Microservices en API's organiseren: Durable Task kan werk coördineren tussen gedistribueerde services, API's en machines met complexe controlestroom en foutafhandeling. Durable Task ondersteunt ook gedistribueerde transacties die het saga-patroon gebruiken, waarbij elke stap compenserende logica heeft die automatisch draait als een latere stap faalt.
- Automatisering van bedrijfsprocessen: Durable Task kan complexe, deterministische bedrijfsprocessen automatiseren die meerdere stappen, afhankelijkheden, menselijke tussenkomst en foutafhandeling over lange perioden omvatten. Voorbeelden hiervan zijn toeleveringsketenbeheer, documentbeoordeling, onboarding van klanten en identiteitsverificatie.
- Infrastructuurautomatisering: Duurzame taak kan infrastructuurinrichting, configuratie en implementatie beheren met complexe afhankelijkheden en foutafhandeling. Voorbeelden hiervan zijn cloudresourcebeheer en CI/CD-pijplijnen.
- Multi-agent orkestratie: Durable Task kan het werk van meerdere AI-agenten coördineren, waardoor betrouwbare taaknaleving over een lange horizon wordt gegarandeerd en efficiënt tokengebruik mogelijk wordt gemaakt voor complexe, meerstaps AI-processen. Voorbeelden hiervan zijn AI-agents voor diepgaand onderzoek, codering en klantondersteuning.
Een veelvoorkomend thema in deze scenario's is dat ze werk bevatten dat te complex, te langlopend of te verspreid is om betrouwbaar te beheren met ad hoc code. Durable Task biedt de onderliggende garanties—persistentie, fouttolerantie en stateful coördinatie—zodat je dat werk als eenvoudige code kunt uitdrukken.
Ondersteunde talen en duurzame taakhostingmodellen
Durable Task ondersteunt meerdere programmeertalen verspreid over twee hostingmodellen: Azure Functions (via de Durable Functions-extensie) en zelfgehost (via de zelfstandige Durable Task SDK's). Het Azure Functions-hostingmodel biedt een volledig beheerde, serverloze compute-omgeving met ingebouwde schaal- en orkestratiefuncties, terwijl het zelf-gehoste model het draaien van duurzame applicaties op elk rekenplatform ondersteunt, zoals Azure Container Apps, Azure Kubernetes Service, Azure App Service, of virtuele machines.
| Language | Azure Functions | Zelfgehost |
|---|---|---|
| .NET (C#/F#) | Ja | Ja |
| JavaScript/TypeScript | Ja | Ja |
| Python | Ja | Ja |
| Java | Ja | Ja |
| Go | No | Ja (bèta) |
| PowerShell | Ja | No |
Opmerking
De Durable Task SDK voor Go is een open-source bèta voor zelfgehoste applicaties die verbinding maken met Durable Task Scheduler. Durable Functions ondersteunt Go niet.
Zie Keuze van uw hostingmodel voor hulp bij het kiezen tussen Azure Functions en zelf-hosten.
Duurzame taakarchitectuur: SDK- en statestorage-backend
Durable Task heeft twee hoofdlagen: een SDK die u gebruikt in uw toepassingscode en een back-end voor statusopslag die de status beheert.
Durable Task SDK
Je gebruikt de Durable Task SDK om orkestraties, activiteiten en entiteiten in je applicatiecode te maken. Het beheert intern de mechanica van duurzame uitvoering—het herspelen van orchestratorfuncties, het beheren van lokale uitvoeringscontext en communiceren met de state-storage backend. Durable Task biedt verschillende SDK-opties in de ondersteunde talen en de twee hostingmodellen: Azure Functions en zelfgehost.
Zie Uw hostingmodel kiezen voor hulp bij het kiezen tussen deze opties.
Back-end voor statusopslag
De back-end voor statusopslag slaat de orkestratiestatus duurzaam op, onderhoudt de uitvoeringsgeschiedenis en coördineert de gedistribueerde opschaling tussen compute-instanties.
De aanbevolen optie voor state storage is de Durable Task Scheduler—een volledig beheerde Azure-dienst die speciaal is gebouwd en sterk geoptimaliseerd voor Durable Task-workloads. Het werkt met zowel Durable Functions als de zelfstandige Durable Task SDK's en biedt de rijkste set functies zonder opslaginfrastructuur te beheren.
Durable Functions ondersteunt ook verschillende opties voor bring-your-own (BYO)-opslag. Deze opties geven je meer controle over waar je de status opslaat, maar vereisen dat je zelf de onderliggende infrastructuur provisioneert en beheert. BYO-opslagback-ends zijn momenteel alleen beschikbaar met Durable Functions.
Zie Opslagproviders voor meer informatie over opslagopties.
Aanvullende duurzame taakresources
Onderzoekspublicaties
Microsoft ontwikkelt Durable Task in samenwerking met Microsoft Research. Als gevolg hiervan produceert het team onderzoeksartikelen en artefacten, waaronder:
- Durable Functions: Semantiek voor Stateful Serverless(OOPSLA'21)
- Serverloze werkstromen met Durable Functions en Netherite(preprint)
Video-overzicht
De volgende video belicht de voordelen van Durable Functions: