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.
Durable Task je implementace trvalého vykonávání od Microsoft, což je celoodvětvový přístup k tomu, aby běžný kód byl odolný vůči chybám tím, že automaticky udržuje svůj postup. Je to rámec pro vytváření odolných pracovních postupů a orchestrací jako běžného kódu. Místo správy složité logiky pro opakované pokusy, stavových automatů nebo fronty zpráv píšete svou obchodní logiku jako jednoduché funkce a Durable Task za vás zajišťuje perzistenci stavu, automatické obnovení a distribuovanou koordinaci.
Pracovní postupy trvalých úloh se můžou spouštět po dobu hodin, dnů nebo dokonce měsíců a spolehlivě obnovit z posledního dokončeného kroku po každém chybovém ukončení, restartování nebo opětovném nasazení. Mezi běžné případy použití patří distribuované transakce, orchestrace AI s více agenty, kanály zpracování dat a správa infrastruktury.
Zbytek tohoto článku vysvětluje, kam Durable Task zapadá, jaké jazyky a hostingové modely podporuje a jak je strukturován, abyste se mohli rozhodnout, jak s ním vytvářet odolné aplikace.
Co zahrnuje trvalá práce
Trvalý úkol zahrnuje:
- Durable Task SDKs pro samo-hostované aplikace.
- The Durable Functions pro serverless hosting na Azure Functions.
- Plánovač úloh Durable– plně spravovaná back-endová služba vytvořená pro odolné úlohy.
Klíčové případy použití trvalých úloh
Durable Task použijte, když vaše aplikace vyžaduje spolehlivou a dlouhotrvající orchestraci pracovních postupů napříč distribuovanými službami. Mezi běžné scénáře patří:
- Dlouhodobě běžící procesy: Durable Task dokáže spravovat stav a průběh procesů, které běží po delší dobu, navzdory přerušení nebo chybám. Mezi příklady patří zpracování objednávek, datové kanály, trénování modelu strojového učení a dlouhotrvající simulace.
- Paralelní a scénáře rozvětvené/fan-in: Durable Task může koordinovat práci, která se rozprostírá mezi více pracovníků běžících paralelně na různých strojích, a poté agregovat výsledky. Mezi příklady patří zpracování obrázků, úlohy redukce mapování a pracovní postupy ETL.
- Orchestrace mikroslužeb a rozhraní API: Durable Task může koordinovat práci napříč distribuovanými službami, rozhraními API a počítači se složitým tokem řízení a zpracováním chyb. Durable Task také podporuje distribuované transakce využívající vzor saga, kde každý krok má kompenzační logiku, která se spustí automaticky, pokud další krok selže.
- Automatizace obchodních procesů: Durable Task dokáže automatizovat složité, deterministické obchodní procesy, které zahrnují více kroků, závislosti, zapojení člověka do smyčky a zpracování chyb po dlouhou dobu. Mezi příklady patří správa dodavatelského řetězce, kontrola dokumentů, onboarding zákazníků a ověřování identit.
- Automatizace infrastruktury: Durable Task může spravovat zřizování, konfiguraci a nasazení infrastruktury se složitými závislostmi a zpracováním chyb. Mezi příklady patří správa cloudových prostředků a linky CI/CD.
- Multiagentní orchestrace: Durable Task dokáže koordinovat práci více AI agentů, což zajišťuje spolehlivé dodržování úkolů v dlouhodobém horizontu a efektivní využití tokenů pro složité, vícestupňové AI procesy. Mezi příklady patří agenti umělé inteligence pro hloubkový výzkum, kódování a zákaznickou podporu.
Společným tématem těchto scénářů je, že zahrnují práci, která je příliš složitá, příliš dlouho běžící nebo příliš rozptýlená na to, aby ji bylo možné spolehlivě spravovat ad hoc kódem. Durable Task poskytuje základní záruky – pervitenci, odolnost vůči chybám a stavovou koordinaci – takže tuto práci můžete vyjádřit jako jednoduchý kód.
Podporované jazyky a modely hostování Durable Task
Durable Task podporuje více programovacích jazyků napříč dvěma hostitelskými modely: Azure Functions (prostřednictvím rozšíření Durable Functions) a self-hosted (prostřednictvím samostatných Durable Task SDK). Hostingový model Azure Functions poskytuje plně spravované, serverless výpočetní prostředí s vestavěnými škálovacími a orchestračními funkcemi, zatímco self-hosted model podporuje spouštění odolných aplikací na jakékoli výpočetní platformě, jako jsou Azure Container Apps, Azure Kubernetes Service, Azure App Service, nebo virtuální stroje.
| Jazyk | Azure Functions | Hostováno lokálně |
|---|---|---|
| .NET (C#/F#) | Ano | Ano |
| JavaScript/TypeScript | Ano | Ano |
| Python | Ano | Ano |
| Java | Ano | Ano |
| PowerShell | Ano | Ne |
Poznámka:
Durable Task Go SDK je také dostupný jako komunitou podporovaná open-source možnost pro self-hosted scénáře, ale je v experimentální fázi a zatím není doporučen pro produkční použití.
Pokyny k výběru mezi Azure Functions a místním prostředím najdete v tématu Vytvádění modelu hostování.
Architektura trvalých úloh: SDK a backend pro ukládání stavů
Durable Task má dvě hlavní vrstvy: sadu SDK , kterou používáte v kódu aplikace, a back-end úložiště stavu , který spravuje stav.
SDK pro trvalé úkoly
Používáte Durable Task SDK k tvorbě orchestrací, aktivit a entit ve vašem aplikačním kódu. Interně spravuje mechaniku trvalého vykonávání – přehrávání funkcí orchestrátoru, správu lokálního kontextu a komunikaci s backendem pro ukládání stavů. Durable Task nabízí několik možností SDK napříč podporovanými jazyky a dvěma modely: Azure Functions a self-hosted.
Pokyny k výběru mezi těmito možnostmi najdete v tématu Volba modelu hostování.
Systém pro ukládání stavu backend
Backend pro ukládání stavů udržuje stav orchestrace, udržuje historii provádění a koordinuje distribuované škálování napříč výpočetními instancemi.
Doporučenou možností ukládání stavů je Durable Task Scheduler – plně spravovaná služba Azure, která je speciálně navržená a vysoce optimalizovaná pro Durable Task workloady. Funguje s Durable Functions i samostatnými sadami SDK Durable Task a poskytuje bohatší sadu funkcí bez infrastruktury úložiště pro správu.
Alternativně Durable Functions podporuje několik možností úložiště přineste si vlastní (BYO). Tyto možnosti vám dávají větší kontrolu nad tím, kde ukládáte stav, ale vyžadují, abyste si sami zpřístupňovali a spravovali základní infrastrukturu. Back-endy úložiště BYO jsou aktuálně dostupné pouze s Durable Functions.
Další informace o možnostech úložiště najdete v tématu Poskytovatelé úložiště.
Další prostředky trvalých úloh
Výzkumné publikace
Microsoft vyvíjí Durable Task ve spolupráci s Microsoft Research. V důsledku toho tým vytváří výzkumné články a artefakty, včetně:
- Durable Functions: sémantika stavových bezserverových funkcí(OOPSLA'21)
- Bezserverové pracovní toky s trvalými funkcemi a Netherite(preprint)
Přehled videa
Následující video zdůrazňuje výhody Durable Functions: