Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается поддержка надежности в службе приложений Azure, охватывающая устойчивость внутри региона с зонами доступности, развертываниями с несколькими регионами и временными сбоями.
Служба приложений Azure — это служба на базе HTTP для размещения веб-приложений, интерфейсов REST API и серверной части мобильных решений. Служба приложений Azure добавляет мощь Microsoft Azure к вашему приложению, предоставляя возможности безопасности, балансировки нагрузки, автомасштабирования и автоматического управления. Чтобы узнать, как служба приложение Azure может повысить надежность и устойчивость рабочей нагрузки приложения, см. статью "Зачем использовать Служба приложений?"
При развертывании службы приложений Azure вы можете создать несколько экземпляров плана службы приложений, который представляет вычислительные рабочие процессы, выполняющие код вашего приложения. Для получения дополнительной информации см. план обслуживания Azure App Service. Хотя платформа выполняет усилия по развертыванию экземпляров в разных доменах сбоя, она не автоматически распределяет экземпляры между зонами доступности.
Рекомендации по развертыванию в производственной среде
Включите избыточность зоны, для чего требуется использование планов службы приложений Premium v3 или Isolated v2 и наличие как минимум трех экземпляров плана. Чтобы просмотреть дополнительные сведения, убедитесь, что в верхней части этой страницы выбран соответствующий уровень.
Включите зональную избыточность, что требует использования в плане Службы приложений минимум трех экземпляров.
Временные сбои
Временные ошибки являются короткими, периодическими сбоями в компонентах. Они часто происходят в распределенной среде, такой как облачная, и являются обычным явлением в операциях. Они исправляют себя через короткий период времени. Важно, чтобы приложения обрабатывали временные ошибки, обычно повторяя затронутые запросы.
Все облачные приложения должны следовать рекомендациям по обработке временных ошибок Azure при взаимодействии с любыми облачными API, базами данных и другими компонентами. Дополнительные сведения об обработке временных сбоев см. в разделе Рекомендации по обработке временных сбоев.
Пакеты SDK, предоставляемые корпорацией Майкрософт, обычно обрабатывают временные ошибки. Так как вы размещаете собственные приложения в службе приложение Azure, рассмотрите, как избежать временных сбоев, убедившись, что вы:
Разверните несколько экземпляров плана. Служба приложений Azure выполняет автоматические обновления и другие формы обслуживания экземпляров вашего плана. Если экземпляр становится неработоспособным, служба может автоматически заменить этот экземпляр новым здоровым экземпляром. В процессе замены может быть короткий период, когда предыдущий экземпляр недоступен, и новый экземпляр еще не готов обслуживать трафик. Вы можете снизить влияние этого поведения, развертыванием нескольких экземпляров плана App Service.
Используйте слоты развертывания. Слоты развертывания Azure App Service позволяют развертывать ваши приложения без простоя. Используйте слоты развертывания, чтобы свести к минимуму влияние развертываний и изменений конфигурации для пользователей. Использование слотов развертывания также снижает вероятность перезапуска приложения. Перезапуск приводит к временной ошибке.
Избегайте увеличения или уменьшения масштаба. Вместо этого выберите уровень и размер экземпляра, которые соответствуют вашим требованиям к производительности при обычной загрузке. Горизонтально масштабируйте только экземпляры, чтобы справиться с изменениями в объеме трафика. Масштабирование вверх и вниз может активировать перезапуск приложения.
Поддержка зоны доступности
Зоны доступности — это физически отдельные группы центров обработки данных в каждом регионе Azure. При сбое одной зоны службы могут переключиться на одну из оставшихся зон.
Дополнительные сведения о зонах доступности в Azure см. в статье "Что такое зоны доступности?"
Служба Azure App Service может быть настроена как зонально-избыточная, что означает, что ваши ресурсы распределяются по нескольким зонам доступности. Распределение по нескольким зонам помогает вашим производственным нагрузкам добиться устойчивости и надежности. При настройке зональной избыточности в планах службы приложений все приложения, использующие этот план, становятся избыточными по зонам.
Распространение экземпляра для развертывания с избыточностью по зонам определяется с помощью следующих правил. Эти правила применяются даже в том случае, когда приложение масштабируется внутрь и наружу.
- Минимальное число экземпляров плана App Service составляет три.
- Экземпляры распределяют равномерно, если указать емкость, превышающую три, и количество экземпляров делится на три.
- Количество экземпляров, превышающее 3*N, распределяется между оставшимися одной или двумя зонами.
Примечание.
В некоторых случаях рабочая нагрузка размещается в единице масштабирования (также называемой меткой или вычислительным кластером), развернутой в двух зонах доступности, а не в трех зонах. В таких случаях экземпляры равномерно распределяются по двум зонам, если количество экземпляров делится на два. Любое число экземпляров, превышающее 2*n, помещается в одну из зон.
Когда платформа службы приложений выделяет экземпляры для плана служб приложений с избыточностью по зонам, она использует балансировку зон на основе лучших усилий, предлагаемую базовыми масштабируемыми наборами виртуальных машин Azure. План службы приложений считается сбалансированным, если в каждой зоне одинаковое количество виртуальных машин или на один больше или меньше, чем во всех остальных зонах. Дополнительные сведения см. в разделе "Балансировка зоны".
Для планов службы приложений, которые не настроены как зонально избыточные, экземпляры виртуальных машин неустойчивы к отказам в зоне доступности. Они могут столкнуться с простоем во время сбоя в любой зоне в этом регионе.
Поддерживаемые регионы
Планы службы приложений с избыточностью между зонами требуют использования уровня Premium v2 или v3 и могут быть развернуты в любом регионе, поддерживающем зоны доступности. Чтобы просмотреть дополнительные сведения, убедитесь, что в верхней части этой страницы выбран соответствующий уровень.
Планы службы приложений с избыточностью между зонами можно развернуть в любом регионе, поддерживающем зоны доступности.
Сведения о том, какие регионы поддерживают зоны доступности для Среда службы приложений версии 3, см. в разделе "Регионы".
Требования
Необходимо использовать типы планов Premium v2, Premium v3 или Изолированный v2. Чтобы просмотреть дополнительные сведения, убедитесь, что в верхней части этой страницы выбран соответствующий уровень.
Необходимо использовать планы Premium v2, Premium v3 или Isolated v2.
Зоны доступности поддерживаются только в новых единицах масштабирования службы приложений. Даже если вы используете один из поддерживаемых регионов, если зоны доступности не поддерживаются для используемой единицы масштабирования, то вы получите ошибку при создании плана службы приложений с избыточностью между зонами.
Назначение единиц масштабирования зависит от группы ресурсов, в которую вы развертываете план службы приложений. Чтобы разместить рабочие нагрузки в единице масштабирования, поддерживающей зоны доступности, может потребоваться создать новую группу ресурсов, а затем создать план службы приложений и приложение службы приложений в этой новой группе ресурсов.
Необходимо развернуть не менее трех экземпляров плана.
Рекомендации
Во время сбоя зоны доступности некоторые аспекты службы приложений Azure могут быть затронуты, несмотря на то, что приложение продолжает обслуживать трафик. К ним относятся масштабирование плана службы приложений, создание приложений, конфигурация приложений и публикация приложений.
Себестоимость
При использовании планов App Service Premium версии 2 или Premium версии 3 не будет дополнительных затрат, связанных с включением зон доступности, если в вашем плане App Service имеются три или более экземпляра. Плата взимается на основе SKU плана служб приложений, емкости, которую вы указываете, и любых экземпляров, к которым вы масштабируете на основе ваших критериев автомасштабирования.
Если включить зоны доступности, но указать емкость менее трех, платформа применяет минимальное число экземпляров равно трем. Платформа взимает плату за эти три случая.
Среда службы приложений версии 3 имеет определенную модель ценообразования для зональной избыточности. Для получения информации о ценах на App Service Environment v3 см. Цены.
Настройка поддержки зоны доступности
- Создайте новый план App Service с зональной избыточностью. Для развертывания нового плана зональной избыточности для службы приложений Azure необходимо использовать типы планов Premium версии 2 или Premium версии 3. Чтобы просмотреть дополнительные сведения, убедитесь, что в верхней части этой страницы выбран соответствующий уровень.
- Создайте новый план App Service с зональной избыточностью. Чтобы развернуть новый зонально-избыточный план службы приложений Azure, выберите опцию Зональная избыточность при развертывании плана.
- Создайте новый план App Service с зональной избыточностью. Чтобы развернуть новую зонально-избыточную среду службы приложений Azure, см. статью Создание среды службы приложений.
Миграция. Избыточность зоны можно настроить только при создании нового плана службы приложений. Если у вас есть существующий план Службы приложений, который не является зонально избыточным, замените его новым планом с зональной избыточностью. Вы не можете изменить существующий план службы приложений для использования зон доступности.
Отключите избыточность в зоне. После создания плана службы приложений невозможно отключить зональную избыточность. Вместо этого необходимо создать новый план с отключенной зональной избыточностью и удалить старый.
Планирование ресурсов и управление ими
Чтобы подготовиться к сбою зоны доступности, рассмотрите избыточное выделение емкости плана службы приложений. Чрезмерное подготовление позволяет решению выдерживать некоторую степень потери емкости и продолжать функционировать без снижения производительности. Дополнительные сведения о чрезмерной подготовке см. в статье "Управление емкостью с помощью чрезмерной подготовки".
Нормальная работа
В этом разделе описывается, чего ожидать, когда планы службы приложений Azure настроены для избыточности зоны и все зоны доступности функционируют.
Маршрутизация трафика между зонами: Во время обычных операций трафик направляется между всеми доступными экземплярами плана службы приложений во всех зонах доступности.
Репликация данных между зонами: Во время обычных операций любое состояние, хранящееся в файловой системе приложения, хранится в хранилище, избыточном между зонами, и синхронно реплицируется между зонами доступности.
Опыт снижения активности
В этом разделе описывается, чего ожидать, когда план службы приложений Azure настроен на резервирование зоны и происходит сбой в зоне доступности.
Обнаружение и ответ. Платформа Служба приложений отвечает за обнаружение сбоя в зоне доступности и реагирование. Вам не нужно ничего делать, чтобы инициировать переключение зоны.
Активные запросы: Если зона доступности перестает работать, все запросы, которые находятся в обработке и связаны с экземпляром плана службы приложений в неисправной зоне доступности, завершаются. Они должны быть пересмотрены.
Перенаправка трафика: Если зона недоступна, служба приложений Azure обнаруживает потерянные экземпляры в этой зоне. Он автоматически пытается найти новые замещающие экземпляры. Затем он распределяет трафик между новыми экземплярами по мере необходимости.
Если у вас настроено автомасштабирование, и система автомасштабирования решает, что требуется больше экземпляров, она также отправляет запрос в App Service о добавлении дополнительных экземпляров. Дополнительные сведения см. в разделе "Масштабирование приложения" в службе приложение Azure.
Примечание.
Поведение автомасштабирования не зависит от поведения службы приложений. Спецификация количества экземпляров автомасштабирования не обязательно должна быть кратной трем.
Внимание
Нет никаких гарантий, что в случае сбоя зоны запросы на дополнительные экземпляры будут успешными. Восстановление потерянных экземпляров осуществляется по мере возможности. Если вам нужна гарантированная емкость при потере зоны доступности, необходимо создать и настроить планы службы приложений для учета потери зоны. Это можно сделать, увеличив емкость вашего плана Службы приложений.
Поведение вне времени выполнения: Приложения, развернутые в плане службы приложений с зональной избыточностью, продолжают выполняться и обслуживать трафик, даже если несколько зон в регионе переживают сбой. Однако поведение, отличное от запуска, может по-прежнему влиять на время сбоя зоны доступности. К ним относятся масштабирование плана службы приложений, создание приложений, конфигурация приложений и публикация приложений.
Возврат к исходному состоянию
Когда зона доступности восстанавливается, служба приложений Azure автоматически создает экземпляры в восстановленной зоне доступности, удаляет все временные экземпляры, созданные в других зонах доступности, и направляет трафик между вашими экземплярами обычным образом.
Тестирование отказов в зоне
Платформа Azure App Service управляет маршрутизацией трафика, отработкой отказа и восстановлением размещения для планов Службы приложений с избыточностью между зонами. Так как эта функция полностью управляема, не требуется инициировать или проверять процессы сбоя зоны доступности.
Поддержка нескольких регионов
Служба Azure App Service доступна в одном регионе. Если регион становится недоступным, приложение также недоступно.
Альтернативные решения с несколькими регионами
Чтобы убедиться, что приложение становится менее подверженным сбою в одном регионе, необходимо развернуть приложение в нескольких регионах:
- Разверните приложение на инстанциях в каждом регионе.
- Настройте политики балансировки нагрузки и отказоустойчивости.
- Реплицируйте данные в регионах, чтобы можно было восстановить последнее состояние приложения.
Примеры архитектур, демонстрирующие этот подход, см. в следующих разделах:
- Эталонная архитектура: высокодоступное веб-приложение с несколькими регионами.
- Многорегиональные приложения App Service для аварийного восстановления данных
Дополнительные сведения о создании приложения с несколькими регионами см. в руководстве по созданию высокодоступного приложения с несколькими регионами в службе приложение Azure.
Пример подхода, иллюстрирующий эту архитектуру, см. в разделе "Высокодоступное корпоративное развертывание" с помощью Среда службы приложений.
Резервные копии
При использовании уровня "Базовый" или более высокого уровня, можно создать резервную копию приложения в Службе приложений в файл с помощью возможностей резервного копирования и восстановления этой службы. Дополнительные сведения см. в статье "Резервное копирование и восстановление приложения в службе Azure App Service".
Эта функция полезна, если вам трудно повторно развернуть код или сохранить состояние на диске. Для большинства решений не следует полагаться на резервные копии службы приложений. Используйте другие методы, описанные в этой статье, для поддержки требований к устойчивости.
Соглашение об уровне обслуживания (SLA)
Соглашение об уровне обслуживания (SLA) для службы приложение Azure описывает ожидаемую доступность службы. В нем также описываются условия, которые должны быть выполнены для достижения этого ожидаемого уровня доступности. Чтобы понять эти условия, ознакомьтесь с соглашениями об уровне обслуживания (SLA) для веб-служб.
При развертывании зонально-избыточного плана службы приложений увеличивается процент доступности, определенный в соглашении об уровне обслуживания.