Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба приложений Azure — это служба на основе HTTP для размещения веб-приложений, REST API и мобильных серверных серверов. Служба приложений интегрируется с Microsoft Azure для обеспечения безопасности, балансировки нагрузки, автомасштабирования и автоматического управления приложениями. Как служба Azure служба приложений предоставляет ряд возможностей для поддержки требований к надежности.
При использовании Azure надежность является общей ответственностью. Майкрософт предоставляет ряд возможностей для поддержки устойчивости и восстановления. Вы несете ответственность за понимание того, как работают эти возможности во всех используемых вами службах, а также за выбор возможностей, необходимых для достижения бизнес-целей и целей бесперебойной работы.
В этой статье описывается, как обеспечить устойчивость службы приложений к различным потенциальным сбоям и проблемам, включая временные сбоя, сбоя зоны доступности, сбоя регионов и обслуживание служб. В нем также описывается, как использовать резервные копии для восстановления из других типов проблем и выделяет некоторые ключевые сведения о соглашении об уровне обслуживания службы приложений (SLA).
Замечание
Если вы ищете сведения о поддержке надежности в Среда службы приложений, см. раздел Reliability в Среда службы приложений.
Рекомендации по развертыванию в производственной среде
Платформа Azure Well-Architected предоставляет рекомендации по надежности, производительности, безопасности, затратам и операциям. Чтобы понять, как эти области влияют друг на друга и способствуют надежному решению App Service, см. в статье Лучшие практики архитектуры для App Service (веб-приложения) в Azure Well-Architected Framework.
Обзор архитектуры надежности
При создании веб-приложения службы приложений необходимо указать план службы приложений , который запускает приложение.
План службы приложений определяет набор вычислительных ресурсов, запускающих веб-приложения. Все веб-приложения должны выполняться внутри плана. Вы можете масштабировать план для работы на нескольких виртуальных машинах, которые также называются исполнителями. Эти экземпляры предоставляют вычислительные ресурсы, которые выполняют код приложения. Один план службы приложений может размещать несколько приложений. Все приложения выполняются в одном общем наборе экземпляров виртуальных машин.
Служба приложений предоставляет следующие функции избыточности:
Распределение по доменам сбоев: На уровне платформы Azure автоматически распределяет виртуальные машины вашего плана службы приложений по доменам сбоев в пределах региона Azure. Это распределение сводит к минимуму риск локализованных сбоев оборудования путем группировки виртуальных машин, использующих общий сетевой коммутатор и источник питания.
Распределение по зонам доступности: Если включить избыточность зоны доступности в плане службы приложений, поддерживающем данную возможность, Azure распределяет экземпляры по зонам доступности в пределах региона. Эта конфигурация обеспечивает более высокую устойчивость, если происходит сбой зоны. Дополнительные сведения об резервировании зоны см. в разделе "Поддержка зоны доступности".
Масштабирование приложений: При настройке плана службы приложений для запуска нескольких экземпляров виртуальных машин все приложения в плане выполняются по умолчанию на всех экземплярах. Если вы настроите план автоматического масштабирования, все приложения масштабируются вместе на основе параметров автомасштабирования. Однако можно настроить количество экземпляров плана, запускаемых определенным приложением, с помощью масштабирования для каждого приложения.
Единицы масштабирования: Внутри App Service выполняется на инфраструктуре платформы, называемой единицами масштабирования, также известными как штампы или веб-пространства. Единица масштабирования включает все компоненты, необходимые для размещения и запуска службы приложений, включая вычислительные ресурсы, хранилище, сеть и балансировку нагрузки. Azure управляет единицами масштабирования для обеспечения сбалансированного распределения рабочих нагрузок, выполнения планового обслуживания и обеспечения общей надежности платформы.
Некоторые возможности могут применяться только к определенным единицам масштабирования. Например, некоторые единицы масштабирования службы приложений могут поддерживать избыточность зоны, а другие единицы масштабирования в том же регионе не поддерживают.
Устойчивость к временным сбоям
Временные ошибки являются короткими, периодическими сбоями в компонентах. Они часто происходят в распределенной среде, такой как облачная платформа, и являются обычной частью операций. Временные ошибки исправляют себя через короткий период времени. Важно, чтобы приложения могли обрабатывать временные ошибки, обычно повторяя затронутые запросы.
Все облачные приложения должны следовать Azure рекомендации по обработке временных ошибок при обмене данными с любыми размещенными в облаке API, базами данных и другими компонентами. Дополнительные сведения см. в Рекомендациях по обработке временных сбоев.
Майкрософт предоставляемые пакеты SDK обычно обрабатывают временные ошибки. Так как вы размещаете собственные приложения в службе приложений, выполните действия, чтобы снизить вероятность временных сбоев:
Разверните несколько экземпляров в вашем плане. Служба приложений выполняет автоматические обновления и другие формы обслуживания в экземплярах вашего плана. Если экземпляр становится неработоспособным, служба может автоматически заменить этот экземпляр новым здоровым экземпляром. В процессе замены может быть короткий период, когда предыдущий экземпляр недоступен, и новый экземпляр не готов обслуживать трафик. Чтобы устранить эти последствия, разверните несколько экземпляров плана службы приложений.
Используйте слоты развертывания. Слоты развертывания службы приложений обеспечивают развертывание приложений без простоя. Используйте слоты развертывания, чтобы свести к минимуму влияние развертываний и изменений конфигурации для пользователей. Слоты развертывания также снижают вероятность рестарта вашего приложения. Перезапуск приложения приводит к временной ошибке.
Избегайте увеличения или уменьшения масштаба. Эти операции изменяют ЦП, память и другие ресурсы, назначенные каждому экземпляру, и они могут активировать перезапуск приложения. Вместо этого выберите уровень и размер экземпляра, которые соответствуют вашим требованиям к производительности при обычной загрузке. Для увеличения и уменьшения масштаба динамически добавляйте и удаляйте экземпляры для обработки изменений в объеме трафика.
Устойчивость к сбоям зоны доступности
Зоны Availability физически разделяют группы центров обработки данных в Azure регионе. При сбое одной зоны службы могут переключиться на одну из оставшихся зон.
Для премиум-уровней с версии 2 до версии 4 службу приложений можно настроить как избыточная по зонам, что означает, что ресурсы распределяются по нескольким зонам доступности. Распределение между несколькими зонами помогает рабочим нагрузкам обеспечить устойчивость и надежность. При настройке зональной отказоустойчивости в планах службы приложений все приложения, использующие план, становятся зонально отказоустойчивыми.
Если план службы приложений не настроен как избыточный по зонам, он считается незональным, а базовые экземпляры виртуальной машины не устойчивы к сбоям зоны доступности. Они могут столкнуться с простоем во время сбоя в любой зоне в этом регионе.
Требования
Для включения зональной избыточности вы должны выполнить следующие требования:
Поддержка региона: Для планов Службы приложений Premium версии 2 и версии 3 избыточность зон поддерживается в любом регионе, поддерживающем зоны доступности.
Тип плана: Используйте типы планов Premium v2 и v4.
Это важно
Чтобы включить зональную избыточность для планов Службы приложений Premium v4, необходимо убедиться, что выбранный вами регион поддерживает планы v4 и зоны доступности.
Минимальное количество экземпляров: Разверните не менее двух экземпляров в вашем плане.
Единица масштабирования: Приложение должно быть развернуто в единице масштабирования, поддерживающей зоны доступности. Вы не управляете единицей масштабирования, которую использует ваш план. Вместо этого при создании плана службы приложений план назначается единице масштабирования на основе группы ресурсов плана. Сведения о том, поддерживает ли единица масштабирования для плана службы приложений избыточность зоны, см. в разделе "Проверка поддержки избыточности зоны" для плана службы приложений.
Если план службы приложений находится в единице масштабирования, которая не поддерживает зональную избыточность, вы не можете включить зональную избыточность в этом плане. Вместо этого необходимо повторно развернуть приложения в новом плане на другой единице масштабирования.
Распределение экземпляров между зонами
При создании плана службы приложений с избыточностью по зонам, Azure распределяет экземпляры этого плана по зонам доступности в рамках региона. Это распределение гарантирует, что ваши приложения остаются доступными, даже если одна зона испытывает сбой.
Распределение экземпляров в развертывании с избыточностью между зонами следует определенным правилам. Эти правила также применяются при масштабировании приложения: увеличении или уменьшении его мощности.
Минимальные экземпляры: План службы приложений должен иметь не менее двух экземпляров для зональной избыточности.
Максимальное количество зон доступности, поддерживаемых вашим планом: Azure определяет количество зон доступности, которые может использовать ваш план, это называется maximumNumberOfZones. Чтобы просмотреть количество зон доступности, которые может использовать конкретный план, см. раздел "Проверка поддержки избыточности зоны" для плана службы приложений.
Замечание
Количество зон доступности, доступных вашему плану (maximumNumberOfZones), зависит от единицы масштабирования и региона. Зонально-избыточное развертывание всегда использует как минимум две зоны доступности и может использовать больше, в зависимости от ваших требований к масштабированию. Независимо от количества зон, зонально-избыточное развертывание обеспечивает устойчивость к сбою одной зоны и предлагает такое же соглашение об уровне обслуживания (SLA).
Распределение экземпляров: Если включена избыточность зоны, Azure автоматически распределяет экземпляры между несколькими зонами доступности. Распределение основано на следующих правилах:
Если число экземпляров превышает maximumNumberOfZones и делится на равные части, Azure распределяет экземпляры равномерно между зонами.
Если количество экземпляров не разделяется равномерно, Azure распределяет оставшиеся экземпляры по оставшимся зонам.
Когда платформа службы приложений выделяет экземпляры для плана службы приложений зональной избыточности, она использует балансировку между зонами, которую обеспечивают базовые масштабируемые наборы виртуальных машин Azure. План считается сбалансированным, если каждая зона имеет равное количество виртуальных машин или отличается одним инстансом от всех остальных зон. Дополнительные сведения см. в разделе "Балансировка зоны".
Размещение физической зоны: Вы можете просмотреть физическую зону доступности , используемую для каждого экземпляра плана службы приложений. Дополнительные сведения см. в разделе "Просмотр физических зон" для плана службы приложений.
Соображения
Поведение вне времени выполнения: Для планов Premium v2 до v4 перебои в зоне доступности могут повлиять на некоторые аспекты работы Служба приложений Azure, даже если приложение продолжает обслуживать трафик. К ним относятся масштабирование плана службы приложений, создание приложений, конфигурация приложений и публикация приложений.
Обновления платформы: Если вы включите избыточность зоны в плане "Премиум" службы приложений версии 2 до плана версии 4 , вы также повышаете устойчивость во время обновлений платформы. Дополнительные сведения см. в разделе "Устойчивость к обслуживанию службы".
Себестоимость
При использовании службы приложений Premium версии 2 для планов версии 4 включение зон доступности не добавляет затрат, если у вас есть два или более экземпляра. Плата зависит от SKU плана службы приложений, указанной емкости и всех экземпляров, масштабируемых на основе критериев автомасштабирования.
Если включить зоны доступности и указать вместимость менее двух, платформа устанавливает минимальное количество экземпляров равное двум. Платформа взымает плату за эти два случая.
Настройка поддержки зоны доступности
Создайте новый план службы приложений с отказоустойчивостью между зонами. Дополнительные сведения см. в разделе «Создание нового плана службы приложений, включая зональную избыточность».
Включите или отключите зональную избыточность в существующем плане службы приложений Azure. Дополнительные сведения см. в разделе "Настройка избыточности зоны" для существующего плана службы приложений.
Планирование ресурсов и управление ими
Чтобы подготовиться к сбою зоны доступности, рассмотрите избыточное выделение емкости плана службы приложений. Такой подход позволяет решению терпеть некоторые потери емкости и продолжать функционировать без снижения производительности. Дополнительные сведения см. в статье "Управление емкостью с помощью избыточного выделения ресурсов".
Поведение, когда все зоны работоспособны
В следующем списке описывается, что ожидать, когда планы службы приложений настроены для избыточности зоны и все зоны доступности работают.
Маршрутизация трафика между зонами: Во время обычных операций трафик направляется между всеми доступными экземплярами плана службы приложений во всех зонах доступности.
Репликация данных между зонами: Во время обычных операций любое состояние, хранящееся в файловой системе приложения, хранится в хранилище, избыточном между зонами, и синхронно реплицируется между зонами доступности.
Поведение во время сбоя зоны
Сбой зоны доступности может повлиять на некоторые аспекты службы приложений, даже если приложение продолжает обслуживать трафик. К ним относятся масштабирование плана службы приложений, создание приложений, конфигурация приложений и публикация приложений.
В следующем списке описывается, что ожидать, когда планы службы приложений App Service настроены на избыточность зоны и одна или несколько зон доступности оказываются недоступными.
- Обнаружение и ответ: Платформа службы приложений автоматически обнаруживает сбои в зоне доступности и инициирует ответ. Нет необходимости в ручном вмешательстве для инициации переключения зоны.
- Notification: Майкрософт не уведомляет вас, когда зона отключена. Однако вы можете использовать Azure Работоспособность ресурсов для отслеживания работоспособности отдельного ресурса и настроить оповещения Работоспособность ресурсов для уведомления о проблемах. Вы также можете использовать Работоспособность служб Azure для понимания общего состояния службы, включая любые сбои зоны, и настроить оповещения Service Health для уведомления о проблемах.
Активные запросы: Все выполняемые запросы, подключенные к экземпляру плана службы приложений в неработающей зоне доступности, завершаются. Повторите эти запросы.
Перенаправка трафика: Служба приложений обнаруживает потерянные экземпляры из этой зоны и пытается найти новые экземпляры замены. После того как служба приложений находит замены, она распределяет трафик между новыми экземплярами по мере необходимости.
Если автомасштабирование настроено и определяет, что требуется больше экземпляров, он запрашивает экземпляры из службы приложений. Поведение автомасштабирования работает независимо от поведения платформы службы приложений. Поэтому спецификация количества экземпляров не обязательно должна быть кратной двум. Дополнительные сведения см. в разделе "Масштабирование приложения" в службе приложений и обзор автомасштабирования.
Это важно
Azure не гарантирует, что запросы на дополнительные экземпляры выполняются в сценарии вниз по зонам. Платформа пытается восстановить потерянные экземпляры по мере возможностей. Если во время сбоя зоны доступности требуется гарантированная емкость, создайте и настройте планы службы приложений для учета потери зоны путем чрезмерной подготовки емкости.
Независимые от выполнения поведения: Приложения в плане службы приложений с избыточностью между зонами продолжают выполняться и обслуживать трафик, даже если в зоне доступности происходит сбой. Однако во время сбоя зоны доступности могут повлиять нерабовременные действия. К ним относятся масштабирование плана службы приложений, создание приложений, конфигурация приложений и публикация приложений.
Восстановление зоны
Когда зона доступности восстанавливается, служба приложений автоматически создает экземпляры в восстановленной зоне доступности, удаляет все временные экземпляры, созданные в других зонах доступности, и направляет трафик между экземплярами как обычно.
Тестирование на сбои в зоне
Платформа службы приложений управляет маршрутизацией трафика, отработкой отказа и восстановлением после отказа для зонально-избыточных планов App Service. Эта функция полностью управляется, поэтому не требуется инициировать или проверять процессы сбоя зоны доступности.
Устойчивость к сбоям на уровне региона
Служба приложений — это однорегиональная служба. Если регион становится недоступным, приложение также недоступно.
Индивидуальные решения для нескольких регионов для повышения устойчивости
Чтобы снизить риск сбоя в одном регионе, влияющего на приложение, можно развернуть планы в нескольких регионах. Следующие шаги помогают укрепить устойчивость:
- Разверните ваше приложение на платформах в каждом регионе.
- Настройте политики балансировки нагрузки и отказоустойчивости.
- Реплицируйте данные в разных регионах, чтобы можно было восстановить последнее состояние приложения.
Рассмотрим следующие связанные ресурсы:
- Эталонная архитектура: высокодоступное веб-приложение с несколькими регионами
- Подходы к рассмотрению
- Руководство. Создание высокодоступного приложения с несколькими регионами в Службе приложений
Резервное копирование и восстановление
При использовании уровня "Базовый" или более поздней версии можно создать резервную копию приложений службы приложений в файл с помощью возможностей резервного копирования и восстановления службы приложений.
Эти возможности помогают, когда сложно повторно развернуть код или когда вы храните состояние на диске. Большинство решений не должны полагаться исключительно на резервные копии. Вместо этого используйте другие возможности в этом руководстве для поддержки требований к устойчивости. Однако резервные копии защищают от некоторых рисков, которые другие методы не обеспечивают.
Это важно
Начиная с 31 марта 2028 года, пользовательские резервные копии Служба приложений Azure больше не поддерживают резервное копирование связанных баз данных. См. Устаревание резервных копий связанных баз данных для получения дополнительной информации.
Вместо этого используйте собственные средства резервного копирования и восстановления связанной базы данных. Дополнительные сведения см. в статье "Резервное копирование и восстановление приложения в службе приложений".
Устойчивость к обслуживанию служб
Служба приложений выполняет регулярные обновления служб и другие задачи обслуживания. Для поддержания ожидаемой емкости во время обновления платформа автоматически добавляет дополнительные экземпляры плана службы приложений во время процесса обновления.
Включите зоновую избыточность. При включении зональной избыточности в плане App Service вы также повышаете устойчивость во время обновления платформы. Домены обновления состоят из коллекций виртуальных машин, которые переходят в автономный режим во время обновления, и они сопоставляются с зонами доступности. Развертывание нескольких экземпляров в вашем плане App Service и включение избыточности зоны для вашего плана добавляют дополнительный уровень надежности в случае, если экземпляр или зона становятся неработоспособными во время обновления.
Дополнительные сведения см. в разделе "Плановое техническое обслуживание службы приложений" и "Плановое обслуживание службы приложений, перезапуски и простои".
Соглашение об уровне обслуживания
Соглашение об уровне обслуживания (SLA) для служб Azure описывает ожидаемую доступность каждой службы и условия, которые должно соответствовать вашему решению для достижения этого ожидания доступности. Дополнительные сведения см. в разделе SLA для онлайн-услуг.
При развертывании зонально-избыточного плана службы приложений увеличивается процент доступности, определенный в соглашении об уровне обслуживания. То же соглашение об уровне обслуживания применяется независимо от количества зон, доступных в базовой единице масштабирования.