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


Управление данными для оркестрации с помощью поставщиков хранилища

При построении рабочих процессов с помощью Durable Functions или SDK Durable Task ваши оркестрации должны где-то хранить своё состояние. Поставщики хранилища обрабатывают это, сохраняют журнал оркестрации, состояние сущности и внутренние сообщения в бэкенд по вашему выбору. Это надежное хранилище, что делает рабочие процессы надежными— они могут приостановить, масштабировать, перезапустить и восстановить без потери хода выполнения.

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

  • Управляемое Azure
    • Планировщик устойчивых задач (рекомендуется)
  • Хранилище «Принеси своё» (BYO)
    • Azure Storage
    • Netherite
    • Microsoft SQL Server (MSSQL)

Замечание

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

Пакеты SDK для долговременных задач поддерживают управляемый Azure Durable Task Scheduler в качестве поставщика хранилища.

Планировщик устойчивых задач

Планировщик устойчивых задач — это полностью контролируемый, высокопроизводительный бэкенд-поставщик, спроектированный и разработанный в сотрудничестве с Microsoft Research. Он стремится обеспечить лучший пользовательский интерфейс в таких аспектах, как управление, наблюдаемость, производительность и безопасность.

К ключевым преимуществам планировщика устойчивых задач относятся:

  • Снижение затрат на управление и операции по сравнению с поставщиками серверной части BYO
  • Панель наблюдаемости и управления.
  • Поддерживает максимальную пропускную способность всех серверных компонентов сегодня.
  • Поддержка проверки подлинности с помощью управляемого удостоверения.

Существующие пользователи пакета SDK для Durable Functions и устойчивых задач могут использовать планировщик без изменений кода. Узнайте больше о планировщике устойчивых задач и о начале работы.

Примеры для планировщика устойчивых задач можно найти на GitHub.

Azure Storage

Azure Storage является одним из "собственных" поставщиков хранилища для Durable Functions. В нем используются очереди, таблицы и большие двоичные объекты (BLOB) для сохранения состояния оркестрации и состояния сущности, а также аренды BLOB для управления разделами. Поставщик Azure Storage встроен в расширение Durable Functions и не имеет других зависимостей.

Ключевыми преимуществами поставщика Azure Storage являются следующие:

  • Установка не требуется. Вы можете использовать учетную запись хранилища, созданную для вас в процессе установки приложения-функции.
  • Модель выставления счетов с минимальными затратами без сервера — в Azure Storage используется модель ценообразования, основанная на потреблении (подробная информация).
  • Лучшая поддержка инструментов — Azure Storage предлагает кроссплатформенную локальную эмуляцию и интегрируется с Visual Studio, Visual Studio Code и основными инструментами Azure Functions.
  • Самый зрелый - Azure Storage был оригинальной и самой проверенной системой хранения для Durable Functions.
  • Поддержка использования удостоверения вместо секретов для подключения к поставщику хранилища.

Поставщик Azure Storage не требует явной конфигурации, ссылок на пакеты NuGet или ссылок на пакеты расширений. Подробные параметры конфигурации, включая подключения, аутентификацию на основе удостоверений и параметры host.json, см. в разделе хранилище Azure для службы Durable Functions.

Microsoft SQL Server (MSSQL)

Поставщик хранилища MSSQL сохраняет все состояние в базе данных MSSQL. Он совместим с локальными и облачными развертываниями SQL Server, включая базу данных SQL Azure.

Ниже приведены основные преимущества поставщика хранилища MSSQL.

  • Поддерживаются отключенные среды; для установки SQL Server не требуется подключение к Azure.
  • Универсально совместимо с различными средами и облаками, включая размещенные в Azure и локальные системы.
  • Строгая консистентность данных, обеспечивающая резервное копирование, восстановление и переключение на резервный канал без потери данных.
  • Встроенная поддержка пользовательского шифрования данных (функция SQL Server).
  • Интегрируется с существующими приложениями баз данных с помощью встроенных хранимых процедур.

Дополнительные сведения о поставщике хранилища MSSQL:

Netherite

Замечание

Поддержка использования серверной части хранилища Netherite с Durable Functions заканчивается 31 марта 2028 г. Мы рекомендуем оценить планировщик устойчивых задач для рабочих нагрузок, которые в настоящее время используют Netherite.

Серверная часть хранилища Netherite спроектирована и разработана в Microsoft Research. В нем используются Azure Event Hubs и технология базы данных FASTER поверх Azure Page Blobs.

Ниже приведены основные преимущества поставщика хранилища Netherite.

  • Более высокая пропускная способность и более низкая стоимость по сравнению с другими поставщиками объектов хранения.
  • Поддерживает оптимизацию соотношения цены и производительности, что позволяет масштабировать производительность по мере необходимости.
  • Поддерживает до 32 разделов данных со шлюзами событий SKU базового и стандартного уровней.
  • Более экономично, чем у других поставщиков, для высокопроизводительных рабочих нагрузок.

Дополнительные сведения о поставщике хранилища Netherite:

Сравнение поставщиков хранилища

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

Функция Планировщик устойчивых задач Azure Storage MSSQL Netherite
Официальный статус поддержки ✅ Общедоступная версия (GA) ✅ Общедоступная версия (GA) ✅ Общедоступная версия (GA) ✅ Общедоступная версия (GA)
Внешние зависимости N/A учетная запись Azure Storage (версия 1 общего назначения) SQL Server 2019 или база данных Azure SQL Центры событий Azure
Учетная запись хранилища Azure (общего назначения)
Возможности локальной разработки и эмуляции Эмулятор планировщика долговременных задач Azurite 3.12+ (кроссплатформенный) SQL Server Developer Edition (поддерживает Windows, Linux и контейнеры Docker) Поддерживает эмуляцию центров задач в памяти (дополнительные сведения)
Настройка центра задач Явный Явный Неявная по умолчанию (дополнительные сведения) Явный
Максимальная пропускная способность Крайне высоко Умеренно Умеренно Крайне высоко
Максимальное горизонтальное масштабирование оркестрации или объектов (узлы) N/A 16 N/A 32
Максимальное горизонтальное масштабирование активности (узлы) N/A N/A N/A 32
Поддержка устойчивых сущностей ✅ Полностью поддерживается. ✅ Полностью поддерживается. ⚠️ поддерживается, кроме случаев использования .NET Isolated ✅ Полностью поддерживается.
Поддержка масштабирования KEDA 2.0
(дополнительные сведения)
Скоро! ❌ Не поддерживается ✅ Поддерживается с помощью масштабируемого компонента MSSQL (дополнительные сведения) ❌ Не поддерживается
Поддержка пакетов расширений (рекомендуется для приложений не на .NET) Скоро! ✅ Полностью поддерживается. ✅ Полностью поддерживается. ✅ Полностью поддерживается.
Можно настроить соотношение цены и производительности? Скоро! ❌ Нет ✅ Да (виртуальные процессоры SQL) ✅ Да (единицы пропускной способности и единицы емкости для центров событий)
Поддержка отключенной среды ❌ Требуется подключение к Azure ❌ Требуется подключение к Azure ✅ Полностью поддерживается. ❌ Требуется подключение к Azure
Подключения на основе идентификации ✅ Полностью поддерживается. ✅ Полностью поддерживается. ⚠️ Требуется масштабирование, управляемое средой выполнения ❌ Не поддерживается
План потребления Flex ✅ Полностью поддерживается. ✅ Полностью поддерживается (см. заметки) ✅ Полностью поддерживается. ❌ Не поддерживается

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