Dayanıklı Görev nedir?

Durable Task, Microsoft'un kalıcı yürütme uygulamasıdır; sıradan kodu hataya dayanıklı hale getirmek için sektör çapında bir yaklaşımdır ve ilerlemesini otomatik olarak sürdürür. Bu, hata toleranslı iş akışları ve orkestrasyonları sıradan kod gibi oluşturmak için bir çerçevedir. Karmaşık yeniden deneme mantığı, durum makineleri veya mesaj kuyruklarını yönetmek yerine, iş mantığınızı basit fonksiyonlar olarak yazırsınız ve Durable Task durum kalıcılığı, otomatik kurtarma ve dağıtık koordinasyonu sizin için yönetir.

Dayanıklı Görev iş akışları, bir çökme, yeniden başlatma veya yeniden dağıtım işleminin ardından, tamamlanan son adımdan güvenilir bir şekilde devam ederek saatlerce, günlerce veya hatta aylarca çalışabilir. Yaygın kullanım örnekleri arasında dağıtılmış işlemler, çok aracılı yapay zeka düzenlemesi, veri işleme işlem hatları ve altyapı yönetimi yer alır.

Bu makalenin geri kalanında Durable Task'ın nerede yer aldığı, desteklediği diller ve barındırma modelleri ile nasıl yapılandırıldığı açıklanıyor; böylece hata toleranslı uygulamalar nasıl oluşturacağınıza karar verebilirsiniz.

Durable Task neleri içerir

Dayanıklı Görev şunları içerir:

Önemli Dayanıklı Görev kullanım örnekleri

Uygulamanız dağıtılmış hizmetler arasında güvenilir, uzun süre çalışan iş akışı düzenlemesi gerektirdiğinde Dayanıklı Görev'i kullanın. Yaygın senaryolar şunlardır:

  • Uzun süreli süreçler: Durable Task, kesintiler veya hatalara rağmen uzun süre çalışan süreçlerin durumunu ve ilerlemesini yönetebilir. Örnek olarak sipariş işleme, veri işlem hatları, makine öğrenmesi modeli eğitimi ve uzun süre çalışan simülasyonlar verilebilir.
  • Paralel ve fan-out/fan-in senaryoları: Durable Task, farklı makinelerde paralel çalışan birden fazla işçi arasında yayılmış çalışmayı koordine edebilir ve ardından sonuçları toplayabilir. Örnek olarak görüntü işleme, harita azaltma işleri ve ETL iş akışları verilebilir.
  • Mikro hizmetleri ve API'leri düzenleme: Dayanıklı Görev, karmaşık denetim akışı ve hata işleme ile dağıtılmış hizmetler, API'ler ve makineler arasında çalışmayı koordine edebilir. Durable Task ayrıca, saga desenini kullanan dağıtık işlemleri destekler; burada her adım, sonraki bir adım başarısız olursa otomatik olarak çalışan telafi mantığına sahiptir.
  • İş süreci otomasyonu: Durable Task, uzun süreler boyunca çoklu adımlar, bağımlılıklar, insan döngüsünde olan ve hata yönetimini içeren karmaşık, belirgin iş süreçlerini otomatikleştirebilir. Örnek olarak tedarik zinciri yönetimi, belge incelemesi, müşteri ekleme ve kimlik doğrulaması verilebilir.
  • Altyapı otomasyonu: Dayanıklı Görev, karmaşık bağımlılıklar ve hata işleme ile altyapı sağlama, yapılandırma ve dağıtımı yönetebilir. Örnek olarak bulut kaynak yönetimi ve CI/CD işlem hatları verilebilir.
  • Çok ajanlı orkestrasyon: Durable Task, birden fazla yapay zeka ajanının işini koordine edebilir, uzun ufuklarda güvenilir görev uyumu ve karmaşık, çok adımlı yapay zeka süreçleri için etkin token kullanımı sağlar. Ayrıntılı araştırma, kodlama ve müşteri desteği için yapay zeka aracıları örnek olarak verilebilir.

Bu senaryolarda ortak bir tema, çok karmaşık, çok uzun süreli veya çok dağıtılmış olup geçici kodla güvenilir şekilde yönetilemeyecek işler içermeleridir. Durable Task temel garantileri sağlar—kalıcı dayanıklılık, hata toleransı ve durum koordinasyonu—böylece bu işi doğrudan kod olarak ifade edebilirsiniz.

Desteklenen diller ve Dayanıklı Görev barındırma modelleri

Durable Task, iki barındırma modeli arasında birden fazla programlama dilini destekler: Azure İşlevleri (Dayanıklı İşlevler uzantısı aracılığıyla) ve kendi kendine barındırılan (bağımsız Durable Task SDK'lar aracılığıyla). Azure İşlevleri barındırma modeli, yerleşik ölçeklendirme ve orkestrasyon özelliklerine sahip tamamen yönetilen, sunucusuz bir hesaplama ortamı sunarken, kendi kendine barındırılan model Azure Container Apps, Azure Kubernetes Service gibi herhangi bir hesaplama platformunda dayanıklı uygulamaları çalıştırmayı destekler. Azure App Service, ya da virtual machines.

Language Azure İşlevleri Kendi sunucusunda barındırılan
.NET (C#/F#) Yes Yes
JavaScript/TypeScript Yes Yes
Python Yes Yes
Java Yes Yes
PowerShell Yes Hayır

Uyarı

Durable Task Go SDK , kendi kendine barındırılan senaryolar için topluluk destekli, açık kaynak seçeneği olarak da mevcuttur, ancak deneme aşamasında ve henüz üretim için önerilmez.

Azure İşlevleri ve şirket içinde barındırılanlar arasında seçim yapma konusunda rehberlik için bkz. Barındırma modelinizi belirleme.

Dayanıklı Görev Mimarisi: SDK ve durum depolama arka uçu

Dayanıklı Görevin iki ana katmanı vardır: uygulama kodunuzda kullandığınız bir SDK ve durumu yöneten bir durum depolama arka ucu .

Dayanıklı Görev SDK'sı

Durable Task SDK'yı uygulama kodunuzda orkestrasyonlar, etkinlikler ve varlıklar oluşturmak için kullanırsınız. Dayanıklı yürütme mekaniklerini iç olarak yönetir—orkestratör fonksiyonlarını tekrar oynatmak, yerel yürütme bağlamını yönetmek ve durum depolama arka uçuyla iletişim kurmak. Durable Task, desteklenen diller ve iki barındırma modeli olan Azure İşlevleri ve self-hosted olmak üzere çeşitli SDK seçenekleri sunar.

Bu seçenekler arasında seçim yapma konusunda rehberlik için bkz. Barındırma modelinizi seçme.

Durum depolama arka uç

Durum depolama arka uçu, orkestrasyon durumunu sürdürür, yürütme geçmişini korur ve hesaplama örnekleri arasında dağıtılmış ölçeklendirmeyi koordine eder.

Önerilen durum depolama seçeneği, Durable Task Scheduler (Durable Task Scheduler) — Dayanıklı Görev iş yükleri için özel olarak tasarlanmış ve yüksek derecede optimize edilmiş tam yönetilen Azure hizmetidir. Hem Dayanıklı İşlevler hem de tek başına Dayanıklı Görev SDK'larıyla çalışır ve yönetecek depolama altyapısı olmayan en zengin özellik kümesini sağlar.

Alternatif olarak, Dayanıklı İşlevler çeşitli bring-your-own (BYO) depolama seçeneklerini destekler. Bu seçenekler, durumu nerede sakladığınız üzerinde daha fazla kontrol sağlar, ancak temel altyapıyı kendiniz sağlamanız ve yönetmeniz gerekir. BYO depolama arka uçları şu anda yalnızca Dayanıklı İşlevler ile kullanılabilir.

Depolama seçenekleri hakkında daha fazla bilgi için bkz . Depolama sağlayıcıları.

Ekstra Dayanıklı Görev kaynakları

Araştırma yayınları

Microsoft, Microsoft Research ile iş birliği içinde Durable Task geliştirmektedir. Sonuç olarak, ekip araştırma makaleleri ve eserler üretir, bunlar arasında:

Genel bakış videosu

Aşağıdaki video, Dayanıklı İşlevler'ın avantajlarını vurguluyor:

Sonraki Adımlar