Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья поможет вам сделать выбор между двумя моделями размещения устойчивых задач — Устойчивые функции (Функции Azure) и автономными Durable Task SDK (локально) — на основе вашей платформы размещения, потребностей в масштабировании и операционных требований.
Подсказка
Уже знаете свою платформу размещения? Перейдите к таблице поиска платформы для быстрого ответа.
Как описано в разделе "Что такое устойчивая задача?", устойчивая задача поддерживает две модели размещения:
- Функции Azure (через Устойчивые функции)
- Самостоятельно размещенный (с помощью Standalone Durable Task SDK).
Обе модели размещения предоставляют одинаковые основные устойчивые возможности выполнения (оркестрации, действия, таймеры, внешние события и многое другое), но отличаются в том, как размещено, масштабируется и развертывается приложение.
В общем случае место выполнения вашего приложения определяет, какую модель размещения вы используете. Если вы создаете на платформе Функции Azure, вам следует использовать Устойчивые функции. Если вы разрабатываете на любой другой вычислительной платформе, используйте автономные SDK Durable Task.
Выбор на основе платформы размещения
Если вы уже знаете платформу размещения приложения, в следующей таблице можно определить, какую модель размещения следует использовать:
| Платформа размещения | Модель размещения |
|---|---|
| Функции Azure (потребление, гибкое потребление, премиум) | Устойчивые функции |
| Контейнеры приложений Azure (с средой выполнения Функции Azure) | Либо |
| Служба приложений Azure (с средой выполнения Функции Azure) | Либо |
| Служба Azure Kubernetes (AKS) | Автономные пакеты SDK для устойчивых задач |
| Виртуальные машины или локальные | Автономные пакеты SDK для устойчивых задач |
Замечание
Служба приложений Azure и Контейнеры приложений Azure могут размещать среду выполнения Функции Azure путем управляемой интеграции Функции Azure или путем непосредственного развертывания среды выполнения функций. Таким образом, обе платформы поддерживают любую модель размещения. Дополнительные сведения о моделях размещения Функции Azure см. в разделе планы размещения Функции Azure.
Сравнение моделей размещения
В следующей таблице приведены основные различия между двумя моделями размещения:
| Устойчивые функции (Функции Azure) | Автономные пакеты SDK для устойчивых задач (локальные) | |
|---|---|---|
| Услуги размещения | Функции Azure (потребление, гибкое потребление, премиум), служба приложений и контейнерные приложения (со средой выполнения функций) | Любая платформа: Контейнеры приложений Azure, AKS, Служба приложений, виртуальные машины, локальная среда |
| Масштабирование | Управляется автоматически инфраструктурой управляемого масштабирования Функции Azure | Вы управляете масштабированием самостоятельно или используете автомасштабирование на основе платформы (например, KEDA в Kubernetes) |
| Триггеры | Встроенная поддержка триггеров HTTP, Queue, Timer, Event Grid и other Функции Azure | Вы определяете собственные точки входа (например, конечные точки HTTP, потребители сообщений и т. д.) |
| Хранилище состояний | Планировщик устойчивых задач | |
| Языки | .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell | .NET (C#/F#), JavaScript/TypeScript, Python, Java |
| Monitoring | Встроенная интеграция с порталом Azure, Application Insights | Вы настраиваете собственное решение мониторинга (например, Azure Monitor, Prometheus или Grafana) |
Замечание
Холодный запуск возникает, когда приложение-функция начинается после простоя. Хостинг-планы Премиум и Выделенный поддерживают готовность экземпляров, чтобы снизить задержку холодного старта.
План размещения Flex Consumption предлагает концепцию "всегда готовых экземпляров" в качестве устранения проблем с холодным запуском.
Дополнительные сведения о моделях размещения Функции Azure.
Встроенные API HTTP
Функции Azure предоставляет HTTP-конечные точки для функционального приложения, что расширение Устойчивые функции использует для поддержки встроенного управления экземплярами по протоколу HTTP.
При использовании Durable Task SDK необходимо реализовать собственные HTTP конечные точки в зависимости от вычислительных ресурсов вашего хостинга.
| Функция | Устойчивые функции | Пакеты SDK для устойчивых задач |
|---|---|---|
| API-интерфейсы HTTP управления | ✅ Встроенный | ❌ Реализуйте свое |
| URL автоматического статуса | ✅ Встроенный | ❌ Реализуйте свое |
функции HTTP для Устойчивые функции
Устойчивые функции автоматически предоставляет конечные точки HTTP для запуска оркестраций, отслеживания состояния, создания событий и завершения экземпляров. Эти API следуют асинхронной схеме опроса HTTP, что упрощает интеграцию с внешними системами.
Замечание
Устойчивые функции поддерживает использование класса DurableTaskClient напрямую, если вы предпочитаете использовать встроенные API HTTP.
Дополнительные сведения: Функции HTTP в Устойчивые функции | Справочник по API HTTP
Управление пакетами SDK для устойчивых задач
С помощью SDK Durable Task вы используете класс DurableTaskClient непосредственно для управления экземплярами оркестрации. Если вам нужны конечные точки HTTP, вы реализуете их самостоятельно с помощью предпочитаемой веб-платформы.
Дополнительные сведения. Управление экземплярами оркестрации
Бэкенды для хранения
Обе модели хостинга используют Планировщик Durable Task — это полностью управляемая служба Azure для сохранения состояния оркестрации и её исполнения (ценообразование). Устойчивые функции также поддерживает использование собственных платформ хранения (служба хранилища Azure, MSSQL и Netherite). Пакеты SDK для устойчивых задач используют исключительно планировщик устойчивых задач.
Дополнительные сведения: поставщики службы хранилища
Настройка центра задач
Устойчивые функции настраивает центры задач в файле host.json. Пакеты SDK для устойчивых задач настраивают узлы задач в коде и переменных среды (строка подключения/конечная точка).
Дополнительные сведения: Центры задач
Диагностика и управление версиями
| Функция | Устойчивые функции | Пакеты SDK для устойчивых задач |
|---|---|---|
| Панель мониторинга планировщика устойчивых задач | ✅ Да | ✅ Да |
| Аналитика приложений | ✅ Встроенный | Настройка вручную |
| Развертывание без простоя | ✅ Слоты функций | Платформенно-специфичный |
Дополнительные сведения: Диагностика | Управление версиями
Когда выбрать каждую модель
При выборе между двумя моделями размещения следует учитывать следующие факторы:
| Выберите Устойчивые функции, если... | Выберите автономные пакеты SDK для устойчивых задач, если... |
|---|---|
| Требуется встроенные триггеры Функции Azure (HTTP, очередь, таймер и т. д.). | Требуется полный контроль над контейнером и его точками входа. |
| Вы уже знакомы с моделью размещения Функции Azure. | Вы предпочитаете легковесный SDK без издержек, связанных с средой выполнения Функции Azure. |
| Для управления функциями требуется Azure интеграция портала. | Вы хотите, чтобы тот же код был переносимым на разных платформах контейнеров (AKS, Служба приложений и т. д.). |
| Необходимо выбрать из нескольких серверных серверных служб хранилища. | У вас есть существующий код приложения, не относящийся к Functions, с которым можно интегрироваться. |
| Вам нужны бессерверные приложения на основе событий, масштабируемые до нуля. | Вам нужны постоянные рабочие нагрузки с низкой задержкой без задержки холодного запуска. |
| Вы предпочитаете тариф "плата за выполнение" в рамках плана потребления. | Необходимы сценарии высокой пропускной способности, оптимизированные для пакетной обработки. |
| Вам потребуется быстрое прототипирование с декларативными триггерами и привязками. | У вас есть контейнеризованные приложения или приложения Kubernetes. |
Migration
Если вы уже используете Устойчивые функции и хотите перейти к развертыванию на основе контейнеров или воспользоваться гибкостью размещения устойчивых пакетов SDK для задач, миграция проста. Код оркестрации очень похож между обоими фреймворками.
Подробные рекомендации по миграции см. в разделе Миграция из Устойчивые функции на SDK для Durable Task.
Замечание
Durable Task Framework (DTFx): Durable Task Framework — это поддерживаемая сообществом библиотека .NET с открытым исходным кодом для надежной оркестрации. Он используется внутренне в качестве зависимости от Устойчивые функции, но не приходит с официальной поддержкой Microsoft. Если вы запускаете новый проект, используйте современные пакеты SDK для устойчивых задач или Устойчивые функции.
Дальнейшие действия
Начало работы с выбранной платформой:
Затем узнайте больше о поставщике серверной части планировщика устойчивых задач.