Поделиться через


Что такое устойчивая задача?

Устойчивые задачи — это технология Майкрософт для создания рабочих процессов и оркестрации в виде обычного кода, который автоматически выживает сбои. Вместо управления сложной логикой повторных попыток, конечными автоматами или очередями сообщений вы выражаете вашу бизнес-логику в виде простых функций — Durable Task обрабатывает сохраняемость состояния, автоматическое восстановление и распределенную координацию для вас.

Рабочие процессы могут выполняться в течение нескольких часов, дней или даже месяцев, надежно возобновляясь с последнего завершенного шага после любого сбоя, перезапуска или повторного развертывания. Распространенные варианты использования включают распределенные транзакции, оркестрацию ИИ с несколькими агентами, конвейеры обработки данных и управление инфраструктурой.

Устойчивые задачи охватывают:

Замечание

Устойчивое выполнение — это отраслевой подход к повышению отказоустойчивости обычного кода за счет автоматического сохранения его прогресса. Устойчивые задачи — это реализация устойчивого выполнения от Майкрософт.

Основные варианты использования

Durable Task подходит для многих сценариев разработки, в том числе:

  • Длительные процессы. Устойчивые задачи могут управлять состоянием и прогрессом для процессов, которые выполняются в течение длительного периода времени, даже в случае прерываний или ошибок. Примеры включают обработку заказов, конвейеры данных, обучение модели машинного обучения и длительные имитации.
  • Сценарии параллельного выполнения и разветвления/свёртки: Durable Task может координировать работу, которая распараллеливается между различными рабочими процессами на разных компьютерах и затем объединяет результаты. Примеры включают обработку изображений, задания для уменьшения карты и рабочие процессы ETL.
  • Оркестрация микросервисов и API: Durable Task может координировать работу между распределенными службами, API и машинами со сложным потоком управления и обработкой ошибок. "Durable Task" также позволяет реализовать распределенные транзакции с использованием шаблона саги, где каждый шаг имеет компенсирующую логику, которая автоматически запускается, если более поздний шаг завершается ошибкой.
  • Автоматизация бизнес-процессов: Durable Task позволяет автоматизировать сложные детерминированные бизнес-процессы, которые включают множество шагов и зависимостей, вовлечение человека в процесс и обработку ошибок в течение длительного времени. К примерам относятся управление цепочкой поставок, проверка документов, подключение клиентов и проверка удостоверений.
  • Автоматизация инфраструктуры. Устойчивые задачи могут управлять подготовкой инфраструктуры, конфигурацией и развертыванием с помощью сложных зависимостей и обработки ошибок. Примерами являются управление облачными ресурсами и конвейеры CI/CD.
  • Оркестрация с несколькими агентами: Durable Task может координировать работу, выполняемую несколькими агентами ИИ, обеспечивая надежное выполнение задач на длительных промежутках времени и эффективное использование токенов для сложных многошаговых процессов ИИ. Примеры включают агенты ИИ для глубокого исследования, написания кода и поддержки клиентов.

Общей темой в этих сценариях является то, что они включают работу, которая является слишком сложной, слишком продолжительной или слишком распределенной, чтобы управлять ею надежно с помощью временного кода. "Durable Task" предоставляет базовые гарантии — сохраняемость, отказоустойчивость и координацию с состоянием, поэтому вы можете выразить эту работу как понятный код.

Поддерживаемые языки и модели размещения

Устойчивые задачи поддерживают несколько языков программирования в двух моделях размещения: Функции Azure (с помощью расширения Устойчивые функции) и размещенных самостоятельно (через автономные пакеты SDK для устойчивых задач). Модель размещения Функции Azure предоставляет полностью управляемую бессерверную среду вычислений со встроенными функциями масштабирования и оркестрации, а размещенной самостоятельно модели позволяет запускать устойчивые приложения на любой вычислительной платформе, например Контейнеры приложений Azure, Служба Azure Kubernetes, Служба приложений Azure или виртуальные машины.

Язык Функции Azure Самостоятельный хостинг
.NET (C#/F#)
JavaScript/TypeScript
Python
Java
PowerShell

Замечание

Go также доступен как поддерживаемый сообществом пакет SDK с открытым исходным кодом для локальных сценариев, но в настоящее время находится на экспериментальных этапах и еще не рекомендуется для использования в рабочей среде.

Рекомендации по выбору между Функции Azure и самостоятельно размещённым размещением см. в разделе Выбор вашей модели размещения.

Компоненты архитектуры

Устойчивые задачи имеют два основных уровня: пакет SDK , используемый в коде приложения, и серверную часть хранилища состояний , которая управляет состоянием.

Пакет SDK для устойчивых задач

Пакет SDK для устойчивых задач — это инструмент, который вы используете для создания оркестровок, действий и сущностей в коде вашего приложения. Он внутренне управляет механизмом устойчивого выполнения — повторением функций оркестратора, управлением контекстом локального выполнения и взаимодействием с сервером хранения состояния. Durable Task предлагает несколько вариантов SDK для различных языков программирования и моделей размещения, упомянутых ранее.

Рекомендации по выбору этих параметров см. в разделе "Выбор модели размещения".

Серверная часть хранилища состояний

Бэкенд хранилища состояний обеспечивает сохранение состояния оркестрации, поддержание журнала выполнения и координацию масштабирования в распределённых вычислительных системах.

Рекомендуемый вариант хранилища состояний — это планировщик задач Durable Task Scheduler — полностью управляемая служба Azure, специально созданная и высоко оптимизированная для рабочих нагрузок устойчивых задач. Он работает как с Устойчивые функции, так и с автономными пакетами SDK для устойчивых задач и предоставляет самый широкий набор функций без инфраструктуры хранилища для управления.

Кроме того, Устойчивые функции поддерживает несколько вариантов хранилища в формате "принеси своё" (BYO). Это дает вам больше контроля над тем, где хранится состояние, но требуется подготовить базовую инфраструктуру и управлять ею самостоятельно. В настоящее время хранилища BYO доступны только с Устойчивые функции.

Дополнительные сведения о вариантах хранения см. в разделе "Поставщики службы хранилища".

Дополнительные ресурсы

Исследовательские публикации

Durable Task разрабатывается в сотрудничестве с Майкрософт Research. В результате команда активно создает исследовательские документы и артефакты, в том числе:

Видеообзор

В следующем видео рассматриваются преимущества Azure Устойчивые функции.

Дальнейшие действия