Dayanıklı Görev nedir?

Durable Task, Microsoft'un kalıcı yürütme uygulamasıdır; kalıcı yürütme, ilerlemesini otomatik olarak kalıcı olarak depolayarak sıradan kodu hataya dayanıklı hale getirmeye yönelik sektör çapında bir yaklaşımdı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 yazarsınız ve Durable Task durumun kalıcı olarak saklanması, 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 şunları içerir

Durable Task ş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 dağıtma/toplama senaryoları: Durable Task, farklı makinelerde paralel olarak çalışan birden fazla işçiye dağılan işi koordine edebilir ve ardından sonuçları bir araya getirip toplulaştırabilir. Ö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ın dahil olduğu ve hata yönetimini içeren karmaşık, deterministik 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 ad hoc kodla güvenilir şekilde yönetilemeyecek işler içermeleridir. Durable Task temel garantileri sağlar—kalıcılık, hata toleransı ve durum bilgisi olan koordinasyon—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 modelinde 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, Azure App Service ya da sanal makineler gibi herhangi bir hesaplama platformunda dayanıklı uygulamaları çalıştırmayı destekler.

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

Uyarı

Go için Durable Task SDK, Durable Task Scheduler'a bağlanan self-hosted uygulamalar için açık kaynaklı bir betadır. Dayanıklı İşlevler Go'yu desteklemiyor.

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 ucu

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 dahili olarak yönetir—orchestrator işlevlerini yeniden oynatmak, yerel yürütme bağlamını yönetmek ve durum depolama arka ucuyla 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 ucu, 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 — 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 çıktılar üretir, bunlar arasında:

Genel bakış videosu

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

Sonraki Adımlar