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


Надежность в Функции Azure

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

Поддержка зоны доступности для Функции Azure доступна в планах Premium (Elastic Premium) и Выделенных (Служба приложений). В данной статье основное внимание уделяется поддержке избыточности между зонами для планов категории "Премиум". Сведения о избыточности зон в выделенных планах см. в разделе "Миграция Служба приложений в поддержку зоны доступности".

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

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

Сбои могут варьироваться от сбоев программного обеспечения и оборудования до таких событий, как землетрясения, наводнения и пожары. Устойчивость к сбоям достигается с избыточностью и логической изоляцией служб Azure. Дополнительные сведения о зонах доступности в Azure см. в разделе "Регионы и зоны доступности".

Службы с поддержкой зон доступности Azure предназначены для обеспечения правильного уровня надежности и гибкости. Их можно настроить двумя способами. Они могут быть избыточными по зонам с автоматической репликацией между зонами или зональными экземплярами, закрепленными в определенной зоне. Эти подходы также можно объединить. Дополнительные сведения об зональной архитектуре, избыточной между зонами, см . в рекомендациях по использованию зональных зон и регионов.

Функции Azure поддерживает избыточное между зонами развертывание.

При настройке функций в качестве избыточной зоны платформа автоматически распределяет экземпляры приложения-функции по трем зонам в выбранном регионе.

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

  • Минимальное число экземпляров приложения-функции — три.
  • При указании емкости, превышающей три, экземпляры распределяются равномерно, только если емкость составляет несколько 3.
  • Для значения емкости более 3*N дополнительные экземпляры распределяются по оставшимся одному или двум зонам.

Внимание

Функции Azure могут выполняться на платформе Службы приложений Azure. На платформе Служба приложений планы, в которых размещаются приложения-функции плана Premium, называются планами Elastic Premium с именами SKU, такими как EP1. Если вы решили запустить приложение-функцию в плане Premium, обязательно создайте план с именем SKU, начинающимся с E, например EP1. Служба приложений имена SKU плана, начинающиеся с "P", например P1V2 (небольшой план premium V2), фактически являютсяВыделенные планы размещения. Так как они относятся к разряду планов с выделенным размещением, а не эластичными категории "Премиум", планы с названиями ценовых категорий, начинающимися с буквы "P", не будут динамически масштабироваться, что может привести к увеличению затрат.

Доступность в регионах

Планы premium, избыточные между зонами, доступны в следующих регионах:

Северная и Южная Америка Европа Ближний Восток Африка Азиатско-Тихоокеанский регион
Brazil South Центральная Франция Израиль, центральный регион Северная часть ЮАР Восточная Австралия
Центральная Канада Центрально-Западная Германия Центральный Катар Центральная Индия
Центральная часть США Северная Италия Северная часть ОАЭ; Северный Китай 3
Восточная часть США Северная Европа Восточная Азия
восточная часть США 2 Восточная Норвегия; Восточная Япония
Центрально-южная часть США Центральная Швеция Юго-Восточная Азия
западная часть США 2 Северная Швейцария
Западная часть США — 3 южная часть Соединенного Королевства
Западная Европа

Необходимые компоненты

Поддержка зоны доступности является свойством плана "Премиум". Текущие требования и ограничения для включения зон доступности:

  • Вы можете включить зоны доступности только при создании плана "Премиум" для приложения-функции. Вы не можете преобразовать существующий план "Премиум" для использования зон доступности.
  • Для учетной записи хранения приложения-функции необходимо использовать учетную запись хранения с избыточностью между зонами (ZRS). Если вы используете другую учетную запись хранения, функции могут отображать непредвиденное поведение во время зонального сбоя.
  • Поддерживаются как Windows, так и Linux.
  • Должны размещаться в плане "Эластичный премиум" или плане размещения "Выделенный". Сведения об использовании избыточности между зонами с планом "Выделенный" см. в статье Миграция Службы приложений для включения поддержки зон доступности.
    • Поддержка зон доступности сейчас недоступна для приложений-функций в планах Потребление.
  • Приложения-функции в плане "Премиум" должны иметь не менее трех постоянно готовых экземпляров.
    • Платформа применяет это минимальное количество за кулисами, если указать число экземпляров меньше трех.
  • Если вы не используете план "Премиум" или единицу масштабирования с поддержкой зон доступности, находитесь в неподдерживаемом регионе или не знаете, что нужно делать, см. руководство по миграции.

Цены

Дополнительные затраты, связанные с включением зон доступности, не требуются. Цены на план, избыточный между зонами, Служба приложений уровня "Премиум" совпадают с одним планом уровня "Премиум". Для каждого используемого плана Служба приложений взимается плата на основе выбранного номера SKU, указанной емкости и всех экземпляров, масштабируемых на основе критериев автомасштабирования. Если вы включите зоны доступности, но укажите емкость менее трех для плана Служба приложений, платформа применяет минимальное число экземпляров для этого плана Служба приложений и взимается плата за эти три экземпляра.

Создание плана и приложения-функции, избыточного между зонами, и приложения-функции

Сейчас есть два способа развертывания плана "Премиум" с избыточностью между зонами и приложения-функции. Необходимо использовать портал Azure или шаблон ARM.

  1. В портал Azure перейдите на страницу создания приложения-функции. Дополнительные сведения о создании приложения-функции на портале см. в статье "Создание приложения-функции".

  2. Выберите "Функции "Премиум" и нажмите кнопку "Выбрать ". В этой статье описывается, как создать избыточное между зонами приложение в плане Premium. Избыточность между зонами в настоящее время недоступна в планах категории "Потребление". Сведения о избыточности зоны в планах службы приложений см. в разделе "Надежность" в службе приложение Azure.

  3. На странице "Создание приложения-функции "Премиум" на вкладке "Основные сведения" введите параметры приложения-функции. Обратите особое внимание на параметры в следующей таблице (также выделены на следующем снимке экрана), которые имеют конкретные требования к избыточности зоны.

    Параметр Предлагаемое значение Заметки о избыточности зоны
    Регион Предпочитаемый регион Регион, в котором создается новое приложение-функция. Необходимо выбрать регион, поддерживающий зоны доступности. См. список доступности региона.
    Тарифный план Один из планов Elastic Premium. Дополнительные сведения см. в разделе "Доступные номера SKU экземпляра". В этой статье описывается, как создать избыточное между зонами приложение в плане Premium. Избыточность между зонами в настоящее время недоступна в планах категории "Потребление". Сведения о избыточности зон в планах Служба приложений см. в разделе "Надежность" в службе приложение Azure.
    Избыточность зоны Включен Этот параметр указывает, является ли приложение избыточным по зонам. Вы не сможете выбрать Enabled , если вы не выбрали регион, поддерживающий избыточность зоны, как описано ранее.

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

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

    Параметр Предлагаемое значение Заметки о избыточности зоны
    Учетная запись хранения Учетная запись хранения с избыточностью между зонами Как описано в разделе предварительных требований, настоятельно рекомендуется использовать учетную запись хранения с избыточностью между зонами для приложения-функции, избыточного между зонами.
  5. Далее процесс создания приложения-функции выполняется как обычно. В остальной части процесса создания нет параметров, влияющих на избыточность зоны.

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

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

В настоящее время приложения-функции Azure не поддерживают миграцию существующих экземпляров приложений-функций. Сведения о переносе общедоступного мультитенантного плана Premium из зоны доступности в поддержку зоны доступности см. в статье "Миграция Служба приложений в поддержку зоны доступности".

Взаимодействие с зонами вниз

Все доступные экземпляры приложений-функций, избыточных между зонами, включены и обрабатывают события. При понижении зоны функции обнаруживают потерянные экземпляры и автоматически пытается найти новые экземпляры замены при необходимости. Поведение эластичного масштабирования по-прежнему применяется. Но в сценарии отключения зоны нет гарантии, что запросы на получение дополнительных экземпляров могут быть выполнены успешно, так как обратное заполнение потерянных экземпляров происходит по мере возможности. Приложения, развернутые в зоне доступности с поддержкой плана Premium, продолжают работать, даже если другие зоны в том же регионе страдают от сбоя. Но, возможно, что сбой в других зонах доступности по-прежнему может влиять на поведение, не относящееся к среде выполнения. Такое поведение может включать масштабирование плана "Премиум", а также создание, настройку и публикацию приложений. Избыточность между зонами для планов "Премиум" гарантирует только безотказную работу для развернутых приложений.

Когда Функции выделяют экземпляры плану "Премиум" с избыточностью между зонами, используется максимальная балансировка зоны, предлагаемая базовыми Масштабируемыми наборами виртуальных машин Azure. План "Премиум" считается сбалансированным, если каждая зона имеет одинаковое число виртуальных машин (±1 виртуальная машина) во всех остальных зонах, используемых планом "Премиум".

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

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

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

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

Сведения о аварийном восстановлении для Устойчивые функции см. в статье "Аварийное восстановление" и геораспространителя в Azure Устойчивые функции.

Аварийное восстановление в нескольких регионах

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

При выполнении одного и того же кода функции в нескольких регионах существует два шаблона, которые следует учитывать, активные и активные пассивные.

Шаблон "Активный— активный" для функций триггера HTTP

При использовании шаблона "активный— активный" функции в обоих регионах активно выполняются и обрабатывают события либо в повторяющемся режиме, либо в повороте. Рекомендуется использовать шаблон "активный— активный" в сочетании с Azure Front Door для критически важных функций, активированных HTTP, которые могут направлять и циклически переборы HTTP-запросов между функциями, выполняющимися в нескольких регионах. Front door также может периодически проверять работоспособность каждой конечной точки. Если функция в одном регионе перестает отвечать на проверки работоспособности, Azure Front Door принимает ее из поворота и перенаправит трафик только в оставшиеся работоспособные функции.

Архитектура для Azure Front Door и Функции Azure

Внимание

Хотя настоятельно рекомендуется использовать шаблон "активный-пассивный" для функций триггеров, отличных от HTTPS. Вы можете создавать развертывания active-active для функций, не активированных по протоколу HTTP. Однако необходимо учитывать, как два региона будут взаимодействовать друг с другом. Если вы развернули одно и то же приложение-функцию в двух регионах и каждое из них активирует одну и ту же очередь служебной шины Microsoft Azure, они будут действовать как конкурирующие потребители, потому что приходится удалять сообщения из этой очереди. Хотя это означает, что каждое сообщение обрабатывается только одним из экземпляров, это также означает, что на одном служебная шина экземпляре по-прежнему существует одна точка сбоя.

Вместо этого можно развернуть две очереди служебной шины: с одной в основном регионе и одной в дополнительном регионе. В этом случае можно иметь два приложения-функции, каждый из которых указывает на очередь служебной шины, активную в своем регионе. Проблема с этой топологией заключается в том, как сообщения очереди распределяются между двумя регионами. Часто это означает, что каждый издатель пытается опубликовать сообщение в обоих регионах и каждое сообщение обрабатывается обоими активными приложениями-функциями. Это создает желаемый шаблон "активный — активный", но создает трудности, связанные с дублированием вычислений, моментом и способом консолидации данных.

Активный пассивный шаблон для функций триггеров, отличных от HTTPS

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

Чтобы создать избыточность для функций триггеров, отличных от HTTP, используйте шаблон "активный-пассивный". С активным пассивным шаблоном функции выполняются активно в регионе, принимающем события; в то время как те же функции во втором регионе остаются бездействуными. Шаблон "активный- пассивный" позволяет обрабатывать каждое сообщение только одной функцией, предоставляя механизм отработки отказа в дополнительный регион в результате аварии. Приложения-функции работают с поведением отработки отказа партнерских служб, таких как геовосстановление Служебной шины Azure и геовосстановление Центров событий Azure.

Рассмотрим пример топологии с помощью триггера Центра событий Azure. В этом случае для шаблона "Активный и пассивный" требуются следующие компоненты:

  • Центры событий Azure развернуты как в основном, так и в дополнительном регионе.
  • Геокатастасизм включен для связывания первичных и вторичных центров событий. При этом также создается псевдоним, который можно использовать для подключения к концентраторам событий и переключения с первичного на вторичный, не изменяя сведений о соединении.
  • Приложения-функции развертываются как в основном, так и в дополнительном регионе (отказа), при этом приложение в дополнительном регионе по сути простаивает, так как сообщения не отправляются туда.
  • Приложения-функции активируются по строке непосредственного подключения (не псевдонима) для соответствующего концентратора событий.
  • Издатели для концентратора событий должны публиковать, используя строку подключения псевдонима.

Пример архитектуры

До отработки отказа издатели, отправляющие на общий псевдоним, будут маршрутизироваться к основному концентратору событий. Основное приложение-функция прослушивает только основной концентратор событий. Вторичное приложение-функция будет пассивным и бездействующим. После запуска отработки отказа издатели, отправляющие в общий псевдоним, теперь будут маршрутизироваться к дополнительному концентратору событий. Теперь приложение-функция-получатель становится активным и запускается автоматически. Эффективную отработку отказа в дополнительный регион можно проводить исключительно от концентратора событий, при этом функции становятся активными только тогда, когда активен соответствующий концентратор событий.

Дополнительные сведения и рекомендации по отработке отказа с помощью Служебной шины и Концентраторов событий.

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