Отработка отказа для обеспечения непрерывности бизнес-процессов и аварийного восстановления

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

Корпорация Майкрософт стремится непрерывно поддерживать доступность служб Azure. Однако могут возникнуть незапланированные сбои служб. Мы рекомендуем иметь план аварийного восстановления на случай регионального сбоя служб. Вы узнаете, как выполнять следующие задачи:

  • Планирование развертывания Машинного обучения Azure и связанных ресурсов в нескольких регионах.
  • Максимальное увеличение шансов на восстановление журналов, записных книжек, образов Docker и других метаданных.
  • Обеспечение высокого уровня доступности при проектировании решения.
  • Инициация отработки отказа в другой регион.

Внимание

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

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

Общие сведения о службах Azure для Машинного обучения Azure

Машинное обучение Azure зависит от нескольких служб Azure. Некоторые из этих служб подготавливаются в вашей подписке. Вы несете ответственность за настройку высокого уровня доступности этих служб. Другие службы создаются в подписке Майкрософт и управляются корпорацией Майкрософт.

К службам Azure относятся следующие:

  • Инфраструктура Машинного обучения Azure: среда, управляемая корпорацией Майкрософт, для рабочей области Машинного обучения Azure.

  • Связанные ресурсы: ресурсы, подготовленные в вашей подписке во время создания рабочей области Машинного обучения Azure. К этим ресурсам относятся служба хранилища Azure, Azure Key Vault, Реестр контейнеров Azure и Application Insights.

    • Хранилище по умолчанию содержит такие данные, как модель, данные журнала обучения и ссылки на ресурсы данных.
    • Key Vault содержит учетные данные для службы хранилища Azure, Реестра контейнеров и хранилищ данных.
    • Реестр контейнеров содержит образ Docker для сред обучения и вывода.
    • Application Insights служит для мониторинга Машинного обучения Azure.
  • Вычислительные ресурсы: ресурсы, создаваемые после развертывания рабочей области. Например, вы можете создать вычислительный экземпляр или вычислительный кластер для обучения модели Машинного обучения.

    • Вычислительный экземпляр и вычислительный кластер: среды построения моделей, управляемые корпорацией Майкрософт.
    • Другие ресурсы: вычислительные ресурсы Майкрософт, которые можно подключить к Машинному обучению Azure, такие как Служба Azure Kubernetes (AKS), Azure Databricks, Экземпляры контейнеров Azure и Azure HDInsight. Вы отвечаете за настройку параметров высокого уровня доступности для этих ресурсов.
  • Другие хранилища данных: Машинное обучение Azure могут подключать другие хранилища данных, такие как служба хранилища Azure и Azure Data Lake служба хранилища для обучения данных. Эти хранилища данных подготавливаются внутри вашей подписки. Вы отвечаете за настройку их параметров высокого уровня доступности. Сведения о других параметрах хранилища данных см. в разделе "Создание хранилищ данных".

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

Service Управляется Высокий уровень доступности по умолчанию
Инфраструктура Машинного обучения Azure Microsoft
Связанные ресурсы
Хранилище Azure Вы
Key Vault Вы
Реестр контейнеров Вы
Application Insights Вы Неприменимо
вычислительные ресурсы;
Вычислительная операция Microsoft
Вычислительный кластер Microsoft
Другие вычислительные ресурсы, такие как AKS,
Azure Databricks, Экземпляры контейнеров, HDInsight
Вы
Другие хранилища данных, такие как служба хранилища Azure, База данных SQL,
База данных Azure для PostgreSQL, База данных Azure для MySQL,
Файловая система Azure Databricks
Вы

Оставшаяся часть этой статьи описывает действия, которые нужно выполнить для обеспечения высокой доступности каждой из этих служб.

Планирование развертывания в нескольких регионах

Развертывание в нескольких регионах основано на создании Машинного обучения Azure и других ресурсов (инфраструктуры) в двух регионах Azure. В случае регионального сбоя можно переключиться на другой регион. При планировании места для развертывания ресурсов следует учитывать следующее.

  • Региональная доступность: если это возможно, используйте регион в той же географической области, а не обязательно ближайший. Чтобы проверить региональную доступность для Машинного обучения Azure, см. статью Доступность продуктов по регионам.

  • Парные регионы Azure: парные регионы при необходимости координируют обновления платформы и устанавливают приоритетность действий по восстановлению. Однако не все регионы поддерживают парные регионы. Дополнительные сведения см. в статье Непрерывность бизнес-процессов и аварийное восстановление в службах BizTalk: пары регионов Azure.

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

    • Горячий/горячий: оба региона активны одновременно, и один регион готов приступить к работе немедленно.
    • Горячий/теплый: основной регион активен, дополнительный регион содержит критически важные ресурсы (например, развернутые модели), готовые к работе. Некритические ресурсы необходимо развернуть вручную в дополнительном регионе.
    • Горячий/холодный: основной регион активен, дополнительный регион содержит Машинное обучение Azure и другие развернутые ресурсы, а также необходимые данные. Такие ресурсы, как модели, развертывания моделей или конвейеры, потребуется развернуть вручную.

Совет

В зависимости от бизнес-требований можно по-разному обрабатывать разные ресурсы Машинного обучения Azure. Например, может потребоваться использовать конфигурацию горячий/горячий для развернутых моделей (вывод) и конфигурацию горячий/холодный для экспериментов (обучение).

Работа Машинного обучения Azure основана на других службах. Некоторые службы можно настроить для репликации в другие регионы. Другие необходимо вручную создать в нескольких регионах. Следующая таблица содержит список служб, ответственных за репликацию, а также общие сведения о конфигурации:

Служба Azure Кто осуществляет георепликацию Настройка
Рабочая область машинного обучения Вы Создайте рабочую область в выбранных регионах.
Вычислительная среда Машинного обучения Вы Создайте вычислительные ресурсы в выбранных регионах. Для вычислительных ресурсов, которые могут динамически масштабироваться, убедитесь, что оба региона обеспечивают достаточную для ваших потребностей квоту вычислений.
реестр Машинное обучение Вы Создайте реестр в нескольких регионах.
Key Vault Microsoft Используйте один и тот же экземпляр Key Vault с рабочей областью Машинное обучение Azure и ресурсами в обоих регионах. Key Vault автоматически выполняет отработку отказа в дополнительный регион. Дополнительные сведения см. в статье Доступность и избыточность хранилища ключей Azure.
Реестр контейнеров Microsoft Настройте экземпляр Реестра контейнеров для георепликации реестров в парный регион для Машинного обучения Azure. Используйте один и тот же экземпляр для обоих экземпляров рабочей области. Дополнительные сведения см. в статье Георепликация в Реестре контейнеров Azure.
Учетная запись хранения Вы Машинное обучение Azure не поддерживает отработку отказа учетной записи хранения по умолчанию с помощью геоизбыточного хранилища (GRS), геоизбыточного хранилища (GZRS), геоизбыточного хранилища для чтения (RA-GRS) или геоизбыточного хранилища с доступом для чтения (RA-GZRS). Создайте отдельную учетную запись хранения для хранилища по умолчанию каждой рабочей области.
Создайте отдельные учетные записи хранения или службы для другого хранилища данных. Дополнительные сведения см. в статье Репликация службы хранилища Azure.
Application Insights Вы Создайте Application Insights для рабочей области в обоих регионах. Сведения об изменении периода хранения данных и сведений см. в разделе Сбор и хранение данных в Application Insights.

Для обеспечения быстрого восстановления и перезапуска в дополнительном регионе рекомендуется применять следующие методики разработки.

  • Используйте шаблоны Azure Resource Manager. Шаблоны относятся к модели "инфраструктура как код" и позволяют быстро развертывать службы в обоих регионах.
  • Чтобы избежать смещения между двумя регионами, обновите конвейеры непрерывной интеграции и развертывания для развертывания в обоих регионах.
  • При автоматизации развертываний включите конфигурацию вычислительных ресурсов, подключенных к рабочей области, например Службы Azure Kubernetes.
  • Создайте назначения ролей для пользователей в обоих регионах.
  • Создайте сетевые ресурсы, такие как виртуальные сети Azure и частные конечные точки, для обоих регионов. Убедитесь, что у пользователей есть доступ к обеим сетевым средам. Например, конфигурации VPN и DNS для обеих виртуальных сетей.

Службы вычислений и данных

В зависимости от ваших потребностей может быть больше вычислительных или данных служб, которые используются Машинное обучение Azure. Например, можно использовать Служба Azure Kubernetes или База данных SQL Azure. Используйте приведенные ниже сведения, чтобы узнать, как настроить высокий уровень доступности для этих служб.

вычислительные ресурсы;

Службы данных

Совет

Если вы предоставляете собственный ключ, управляемый клиентом, для развертывания рабочей области Машинного обучения Azure, Azure Cosmos DB также подготавливается внутри вашей подписки. В этом случае вы отвечаете за настройку его параметров высокого уровня доступности. См. статью Как в Azure Cosmos DB обеспечивается высокая доступность.

Учет высокого уровня доступности при проектировании

Зоны доступности

Некоторые службы Azure поддерживают зоны доступности. Для регионов, поддерживающих зоны доступности, если зона будет приостановлена, и данные должны быть сохранены. Однако данные недоступны для обновления до тех пор, пока зона не будет подключена к сети.

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

Развертывание критически важных компонентов в нескольких регионах

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

Управление данными для обучения в изолированном хранилище

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

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

Управление ресурсами машинного обучения в виде кода

Примечание.

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

Задания в Машинном обучении Azure определяются спецификацией задания. Эта спецификация включает зависимости от входных артефактов, управляемых на уровне экземпляра рабочей области, включая среды и вычисления. Для развертываний и отправки заданий в нескольких регионах рекомендуется следовать приведенным ниже указаниям.

  • Управляйте базой кода локально, храня резервную копию в репозитории Git.

    • Экспортируйте важные записные книжки из Студии машинного обучения Azure.
    • Экспортируйте созданные в Студии конвейеры в виде кода.
  • Управляйте конфигурациями в виде кода.

    • Избегайте жестко заданных ссылок на рабочую область. Вместо этого настройте ссылку на экземпляр рабочей области с помощью файла конфигурации и используйте MLClient.from_config() для инициализации рабочей области.
    • Используйте Dockerfile, если работаете с пользовательскими образами Docker.

Запуск отработки отказа

Продолжение работы в рабочей области отработки отказа

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

Машинное обучение Azure не удается синхронизировать или восстанавливать артефакты или метаданные между экземплярами рабочей области. В зависимости от стратегии развертывания приложения может потребоваться переместить артефакты или воссоздать входные данные экспериментирования, например ресурсы данных, в рабочей области отработки отказа, чтобы продолжить отправку заданий. Если вы настроили ресурсы основной и дополнительной рабочих областей для предоставления общего доступа к связанным ресурсам с включенной георепликацией, некоторые объекты могут быть напрямую доступны рабочей области отработки отказа. Например, если обе рабочие области совместно используют одни и те же образы Docker, настроенные хранилища данных и ресурсы Azure Key Vault. На следующей схеме показана конфигурация, где две рабочие области совместно используют одни и те же образы (1), хранилища данных (2) и Key Vault (3).

Схема отработки отказа между парными регионами.

Примечание.

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

Перемещение артефактов между рабочими областями

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

Следующие артефакты можно экспортировать и импортировать между рабочими областями с помощью расширения Azure CLI для машинного обучения:

Артефакт Экспорт Импорт
Модели az ml model download --name {NAME} --version {VERSION} az ml model create
Среды az ml environment share --name my-environment --version {VERSION} --resource-group {RESOURCE_GROUP} --workspace-name {workspace} --share-with-name {NEW_NAME_IN_REGISTRY} --share-with-version {NEW_VERSION_IN_REGISTRY} --registry-name {REGISTRY_NAME} az ml environment create
Задания Машинного обучения Azure az ml job download -n {NAME} -g {RESOURCE_GROUP} -w {WORKSPACE_NAME} az ml job create -f {FILE} -g {RESOURCE_GROUP} -w {WORKSPACE_NAME}
Ресурсы данных az ml data share --name {DATA_NAME} --version {VERSION} --resource-group {RESOURCE_GROUP} --workspace-name {WORKSPACE} --share-with-name {NEW_NAME_IN_REGISTRy} --share-with-version {NEW_VERSION_IN_REGISTRY} --registry-name {REGISTRY_NAME} az ml data create -f {FILE} -g {RESOURCE_GROUP} --registry-name {REGISTRY_NAME}

Совет

  • Выходные данные задания хранятся в учетной записи хранения по умолчанию, связанной с рабочей областью. Хотя выходные данные задания могут стать недоступными из пользовательского интерфейса Студии в случае сбоя службы, к ним можно обратиться напрямую через учетную запись хранения. Дополнительные сведения о работе с данными, хранящимися в BLOB-объектах, см. в разделе Создание, скачивание и составление списка больших двоичных объектов с помощью Azure CLI.

Варианты восстановления

Удаление рабочей области

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

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

  • В портал Azure перейдите к учетной записи хранения, связанной с удаленной рабочей областью Машинное обучение Azure.
  • Выберите Общие папки в разделе Хранилище данных слева.
  • Ваши записные книжки находятся в общей папке, имя которой содержит идентификатор вашей рабочей области.

Следующие шаги

Чтобы узнать о повторяющихся развертываниях инфраструктуры с помощью Машинного обучения Azure, используйте шаблон Azure Resource Manager.