Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Durable Task a Microsoft tartós végrehajtási keretrendszere, amely hibatűrő munkafolyamatokat és vezényléseket készít rendes kódként. Az összetett újrapróbálkozások logikájának, állapotgépeinek vagy üzenetsorainak kezelése helyett az üzleti logikát egyszerű függvényként kell írnia – a Durable Task kezeli az állapotmegőrzést, az automatikus helyreállítást és az elosztott koordinációt.
A tartós feladat munkafolyamatai órákig, napokig vagy akár hónapokig is futtathatók, és megbízhatóan újraindulhatnak az összeomlás, újraindítás vagy újbóli üzembe helyezés utáni utolsó lépéstől. A gyakori használati esetek közé tartoznak az elosztott tranzakciók, a többügynökön keresztüli AI-vezénylés, az adatfeldolgozási folyamatok és az infrastruktúra-kezelés.
A tartós feladat a következőkre terjed ki:
- A Durable Task SDK-k saját üzemeltetésű alkalmazásokhoz.
- A Durable Functions kiszolgáló nélküli üzemeltetéshez Azure Functions
- A tartós számítási feladatokhoz készült, teljes mértékben felügyelt háttérszolgáltatás, a Durable Task Scheduler.
Megjegyzés:
A tartós végrehajtás iparági szintű megközelítés, amely lehetővé teszi a normál kód hibatűrővé tételét az előrehaladás automatikus megőrzésével. A Microsoft Durable Task a tartós végrehajtás megvalósítása.
Legfontosabb tartós tevékenység használati esetei
Tartós feladat használata, ha az alkalmazás megbízható, hosszú ideig futó munkafolyamat-vezénylést igényel az elosztott szolgáltatások között. Gyakori forgatókönyvek a következők:
- Hosszú ideig futó folyamatok: A tartós feladat képes kezelni a hosszabb ideig futó folyamatok állapotát és előrehaladását, még megszakítások vagy hibák esetén is. Ilyenek például a rendelésfeldolgozás, az adatfolyamok, a gépi tanulási modell betanítása és a hosszú ideig futó szimulációk.
- Párhuzamos és fan-out/fan-in forgatókönyvek: A Durable Task képes koordinálni a különböző gépeken párhuzamosan futó több munkavégző között végzett munkát, majd összevonhatja az eredményeket. Ilyenek például a képfeldolgozás, a térkép-csökkentési feladatok és az ETL-munkafolyamatok.
- Mikroszolgáltatások és API-k vezénylése: A Durable Task összetett vezérlési folyamattal és hibakezeléssel képes koordinálni az elosztott szolgáltatások, API-k és gépek közötti munkát. A Durable Task lehetővé teszi az elosztott tranzakciók implementálását is a sagamintával, ahol minden lépés automatikusan futó kompenzáló logikával rendelkezik, ha egy későbbi lépés meghiúsul.
- Üzleti folyamatok automatizálása: A tartós feladat összetett, determinisztikus üzleti folyamatokat képes automatizálni, amelyek több lépést, függőséget, emberi beavatkozást és hibakezelést foglalnak magukban hosszú idő alatt. Ilyenek például az ellátási lánc kezelése, a dokumentumok áttekintése, az ügyfelek előkészítése és az identitásellenőrzés.
- Infrastruktúra automatizálása: A tartós feladat összetett függőségekkel és hibakezeléssel kezelheti az infrastruktúra kiépítését, konfigurálását és üzembe helyezését. Ilyenek például a felhőerőforrás-kezelés és a CI/CD-folyamatok.
- Többügynökös vezénylés: A tartós feladatkezelés képes koordinálni a több AI-ügynök által végzett munkát, így hosszú távon megbízható feladatmegtartást és hatékony token használatot biztosít összetett, többlépéses AI-folyamatokhoz. Ilyenek például a mély kutatást, kódolást és ügyfélszolgálatot támogató AI-ügynökök.
Ezekben a forgatókönyvekben gyakori téma, hogy túl összetett, túl hosszú ideig futó vagy túl elosztott munkát foglalnak magukban, hogy ad-hoc kóddal megbízhatóan kezelhetők legyenek. A Durable Task biztosítja az alapul szolgáló garanciákat – a megőrzést, a hibatűrést és az állapotalapú koordinációt –, hogy ezt egyszerű kódként fejezhesse ki.
Támogatott nyelvek és durable task hosting modellek
A Durable Task két üzemeltetési modellben több programozási nyelvet is támogat: Azure Functions (a Durable Functions bővítményen keresztül) és önállóan üzemeltetett (az önálló Durable Task SDK-kon keresztül). A Azure Functions üzemeltetési modell teljes mértékben felügyelt, kiszolgáló nélküli számítási környezetet biztosít beépített skálázási és vezénylési funkciókkal, míg a önállóan üzemeltetett modell lehetővé teszi tartós alkalmazások futtatását bármely tetszőleges számítási platformon, például Azure Container Apps, Azure Kubernetes Service, Azure App Service vagy virtuális gépek.
| Nyelv | Azure Functions | Saját hosztolású |
|---|---|---|
| .NET (C#/F#) | ✅ | ✅ |
| JavaScript/TypeScript | ✅ | ✅ |
| Python | ✅ | ✅ |
| Java | ✅ | ✅ |
| PowerShell | ✅ | ❌ |
Megjegyzés:
A Go közösségi támogatású, nyílt forráskódú SDK-ként is elérhető saját üzemeltetésű forgatókönyvekhez, de jelenleg kísérleti fázisban van, és éles használatra még nem ajánlott.
A Azure Functions és a saját üzemeltetésű környezet közötti választással kapcsolatos útmutatásért lásd: A üzemeltetési modell beállítása.
Architekturális összetevők
A Durable Task két fő rétegből áll: egy SDK-ból , amelyet az alkalmazáskódban használ, valamint egy állapottárolási háttérrendszert , amely az állapotot kezeli.
Tartós feladat SDK
A Durable Task SDK-t használja a vezénylések, tevékenységek és entitások létrehozásához az alkalmazáskódban. Belsőleg kezeli a tartós végrehajtás mechanikáit – a vezénylő funkciók ismétlését, a helyi végrehajtási környezet kezelését és az állapottároló háttérrendszerrel való kommunikációt. A Durable Task számos SDK-lehetőséget kínál a korábban említett nyelvekhez és üzemeltetési modellekhez.
A lehetőségek közötti választással kapcsolatos útmutatásért tekintse meg az üzemeltetési modell kiválasztása című témakört.
Az állapot tárolási háttérrendszer
Az állapottárolás háttérrendszere felelős a vezénylési állapot megőrzéséért, a végrehajtási előzmények fenntartásáért és a számítási példányok elosztott felskálázásának koordinálásáért.
Az ajánlott állapottárolási lehetőség a Durable Task Scheduler – egy teljes körűen felügyelt Azure szolgáltatás, amely tartós tevékenységprofilokhoz készült és nagymértékben optimalizált. A Durable Functions és a különálló Durable Task SDK-kkal is működik, és a leggazdagabb funkciókat biztosítja, amelyekhez nincs kezelendő tárolóinfrastruktúra.
Másik lehetőségként Durable Functions számos bring-your-own (BYO) tárterületet is támogat. Ezek nagyobb ellenőrzést biztosítanak számunkra az állapot tárolási helye felett, de a mögöttes infrastruktúra kiépítését és kezelését önállóan kell megoldania. A BYO storage háttérrendszerei jelenleg csak a Durable Functions szolgáltatással érhetők el.
A tárolási lehetőségekről további információt a Társzolgáltatók című témakörben talál.
További tartós tevékenységerőforrások
Kutatási publikációk
A Durable Task a Microsoft Researchvel együttműködve készült. Ennek eredményeképpen a csapat aktívan készít kutatási dokumentumokat és műtárgyakat, beleértve a következőket:
Durable Functions: Az állapotalapú kiszolgáló nélküli (OOPSLA'21) - Serverless munkafolyamatok Durable Functions-szel és Netherite-tal(preprint)
Videó áttekintése
Az alábbi videó a Azure Durable Functions előnyeit emeli ki: