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