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


Надежность в приложениях контейнеров Azure

В этой статье описывается поддержка надежности в Azure Container Apps и охватывает как региональную устойчивость с зонами доступности, так и межрегиональную устойчивость с аварийным восстановлением. Более подробный обзор надежности в Azure см. в статье "Надежность Azure".

Поддержка зоны доступности

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

Дополнительные сведения о зонах доступности в Azure см. в статье "Что такое зоны доступности?"

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

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

Примечание.

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

Предварительные условия

Приложения контейнеров Azure обеспечивают одинаковую поддержку надежности независимо от типа плана.

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

Улучшения в соглашении об уровне обслуживания

Для приложений контейнеров Azure нет дополнительных соглашений об уровне обслуживания. Дополнительные сведения о соглашении об уровне обслуживания приложений контейнеров Azure см. Соглашение об уровне обслуживания приложений контейнеров Azure.

Создание ресурса с включенной зоной доступности

Настройте зональную избыточность в среде контейнерных приложений

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

Включение избыточности зон через портал Azure

Чтобы создать приложение-контейнер в среде с включенной избыточностью зон с помощью портала Azure:

  1. Перейдите на портал Azure.
  2. Найдите контейнерные приложения в верхнем поле поиска.
  3. Выберите Приложения-контейнеры.
  4. Выберите "Создать" в поле "Среда приложений контейнеров", чтобы открыть панель "Создание среды приложений контейнеров".
  5. Введите имя среды.
  6. Выберите "Включено " для поля избыточности зоны.

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

  1. Перейдите на вкладку Сеть.
  2. Чтобы назначить имя настраиваемой виртуальной сети, нажмите кнопку "Создать" в поле виртуальная сеть.
  3. Чтобы назначить имя настраиваемой подсети инфраструктуры, выберите "Создать" в поле "Подсеть инфраструктуры".
  4. Для виртуального IP-адреса можно выбрать внутренний или внешний.
  5. Нажмите кнопку создания.

Снимок экрана: вкладка

Включение зональной избыточности с помощью Azure CLI

Создайте виртуальную сеть и подсеть инфраструктуры для включения в среду контейнерных приложений.

При использовании этих команд замените <PLACEHOLDERS> вашими значениями.

Примечание.

Для среды потребления требуется выделенная подсеть в диапазоне CIDR /23 или более. Для среды профилей рабочей нагрузки требуется выделенная подсеть с диапазоном CIDR /27 или более. Дополнительные сведения о размерах подсети см. в обзоре сетевой архитектуры.

az network vnet create \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <VNET_NAME> \
  --location <LOCATION> \
  --address-prefix 10.0.0.0/16
az network vnet subnet create \
  --resource-group <RESOURCE_GROUP_NAME> \
  --vnet-name <VNET_NAME> \
  --name infrastructure \
  --address-prefixes 10.0.0.0/21

Затем выполните запрос к идентификатору подсети инфраструктуры.

INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group <RESOURCE_GROUP_NAME> --vnet-name <VNET_NAME> --name infrastructure --query "id" -o tsv | tr -d '[:space:]'`

Наконец, создайте среду с параметром --zone-redundant . Расположение должно быть таким же расположением, которое используется при создании виртуальной сети.

az containerapp env create \
  --name <CONTAINER_APP_ENV_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --location "<LOCATION>" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET \
  --zone-redundant
Проверка избыточности зоны с помощью Azure CLI

Примечание.

Портал Azure не показывает, включена ли зональная избыточность.

Используйте команду az container app env show для проверки включения избыточности зоны в среде ваших приложений контейнеров.

az containerapp env show \
  --name <CONTAINER_APP_ENV_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --subscription <SUBSCRIPTION_ID>

Команда возвращает ответ JSON. Проверьте, содержится ли "zoneRedundant": true в ответе.

Методы безопасного развертывания

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

Вы по-прежнему должны использовать безопасные методы развертывания, такие как сине-зеленое развертывание. Приложения контейнеров Azure не поддерживают развертывание или обновление в пределах одной зоны одновременно.

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

Миграция зоны доступности

Чтобы воспользоваться преимуществами зон доступности, включите отказоустойчивость зоны при создании окружения "Приложения контейнеров". Среда должна включать виртуальную сеть с доступной подсетью. Невозможно перенести существующую среду приложений контейнеров из зоны без поддержки доступности в зону поддержки доступности.

Аварийное восстановление между регионами и непрерывность бизнес-процессов

Аварийное восстановление (DR) относится к процедурам, которые организации используют для восстановления после событий значительного воздействия, таких как стихийные бедствия или ошибочные развертывания, которые приводят к простою и потере данных. Независимо от причины, лучшее средство для аварийного восстановления является хорошо определенным и проверенным планом аварийного восстановления и проектом приложения, который активно поддерживает аварийное восстановление. Прежде чем приступить к созданию плана аварийного восстановления, ознакомьтесь с рекомендациями по разработке стратегии аварийного восстановления.

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

В маловероятном случае сбоя в полном регионе у вас есть возможность использовать одну из двух стратегий:

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

  • Отказоустойчивое восстановление. Сначала разверните приложения-контейнеры заранее в нескольких регионах. Затем используйте Azure Front Door или Диспетчер трафика Azure для обработки входящих запросов, указывая трафик на основной регион. Затем, если произойдет сбой, вы можете перенаправить трафик из затронутого региона. Дополнительные сведения см. в статье Репликация между регионами в Azure.

Примечание.

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

Дополнительные рекомендации

Следующие ресурсы помогут вам создать собственный план аварийного восстановления:

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