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