Mi az a tartós feladat?

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:

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:

Videó áttekintése

Az alábbi videó a Azure Durable Functions előnyeit emeli ki:

Következő lépések