Георепликация в Azure Web PubSub

Критически важные приложения часто требуют надежной системы аварийного переключения и обслуживания пользователей как можно ближе к месту их нахождения. Перед выпуском функции георепликации разработчики должны развернуть несколько ресурсов Web PubSub и написать пользовательский код для оркестрации взаимодействия между ресурсами. Теперь с помощью быстрой настройки с помощью портал Azure вы можете легко включить эту функцию.

Преимущества использования георепликации

  • Более устойчивый к региональному сбою: если происходит региональный сбой, клиенты будут автоматически перенаправлены в здоровую реплику.
  • Обмен данными между регионами: разработчики используют ресурс с поддержкой георепликации как обычно, даже если в фоновом режиме существует несколько ресурсов. Обмен данными между репликами обеспечивается службой.
  • Улучшенная скорость сети: географически распределенные клиенты подключаются к ближайшей реплике. Эти реплики взаимодействуют через глобальную сеть Azure, обеспечивая быструю и стабильную сеть.
  • Упрощенное управление. Все реплики используют ту же конфигурацию, что и первичный ресурс Web PubSub.

Предварительные требования

  • Ресурс Web PubSub на уровне "Премиум".

Примеры использования

Contoso, компания социальных сетей

Contoso — это компания социальных сетей с базой клиентов, распространяемой по всей территории США и Канады. Contoso предоставляет пользователям мобильное и веб-приложение, чтобы они могли взаимодействовать друг с другом. Приложение Contoso развертывается в центральной части США. В рамках архитектуры Contoso web PubSub используется для установления постоянных подключений WebSocket между клиентскими приложениями и сервером приложений. Компании Contoso нравится, что она может передать Web PubSub управление подключениями WebSocket, но не нравится читать отчёты о том, что пользователи в Канаде сталкиваются с более высокой задержкой. Кроме того, команда разработчиков Компании Contoso хочет заверить приложение от регионального сбоя, чтобы пользователи могли получить доступ к приложению без прерываний.

Схема использования одного экземпляра Azure WebPubSub для обработки трафика из двух стран.

Компания Contoso может создать ещё один ресурс Web PubSub в регионе Canada Central, поскольку этот регион географически ближе к её пользователям в Канаде. Однако управление несколькими ресурсами Web PubSub приводит к некоторым проблемам:

  1. Необходимо реализовать механизм обмена данными между регионами, чтобы пользователи в Канаде и США могли взаимодействовать друг с другом.
  2. Группе разработчиков потребуется управлять двумя отдельными ресурсами Web PubSub, каждый из которых имеет отдельный домен и строка подключения.
  3. Если происходит региональный сбой, трафик должен быть направлен на доступный ресурс.

Все вышеперечисленное отвлекает инженерные ресурсы от работы над инновациями продукта.

Схема использования двух экземпляров Azure Web PubSub для обработки трафика из двух стран.

Использование функции георепликации

С помощью функции георепликации Contoso теперь может установить реплику в Центральной Канаде, эффективно преодолевая описанные выше проблемы. Команда разработчиков рада узнать, что им не нужно вносить изменения в код. Это так же просто, как сделать несколько щелчков в портале Azure. Команда разработчиков также рада сообщить заинтересованным сторонам, что, поскольку Contoso планирует выйти на европейский рынок, ей достаточно добавить ещё одну реплику в Европе.

Схема использования одного экземпляра Azure Web PubSub с репликой для обработки трафика из двух стран или регионов.

Включение георепликации в ресурсе Web PubSub

Чтобы создать реплику в регионе Azure, перейдите к своему ресурсу Web PubSub, найдите на портале Azure раздел «Реплики» и нажмите «Добавить», чтобы создать реплику.

Снимок экрана: создание реплики для Azure Web PubSub на портале.

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

Снимок экрана: панель обзора ресурса-реплики Azure Web PubSub.

Примечание.

  • Число реплик в настоящее время ограничено не более 8 на основной ресурс.

Цены и единица ресурсов

Каждая реплика имеет свои собственныеunit и autoscale settings.

Реплика — это функция уровня "Премиум" службы Azure Web PubSub. Каждая реплика оплачивается отдельно в соответствии с собственной единицей тарификации и исходящим трафиком. Квота бесплатного сообщения также вычисляется отдельно.

В предыдущем примере Contoso добавила одну реплику в регион Canada Central. Компания Contoso будет платить за реплику в Центральной Канаде в соответствии с его единицей и сообщением в ценовой категории "Премиум".

Будет взиматься плата за исходящий трафик между регионами. Если сообщение передается через реплики и успешно отправляется клиенту или серверу после передачи, он будет выставлен в виде исходящего сообщения.

Удаление реплики

После создания реплики для ресурса Web PubSub его можно удалить в любое время, если он больше не нужен.

Чтобы удалить реплику на портале Azure, сделайте следующее:

  1. Перейдите к ресурсу Web PubSub и выберите вкладку «Реплики». Щелкните реплику, которую вы хотите удалить.
  2. Нажмите кнопку "Удалить" на панели обзора реплики.

Чтобы удалить реплику с помощью Azure CLI, выполните следующие действия.

 az webpubsub replica delete --replica-name MyReplica --name MyWebPubSub -g MyResourceGroup

Узнайте, как работает функция георепликации

Схема архитектуры реплики Azure Web PubSub.

  1. Клиент выполняет разрешение в DNS полного доменного имени (FQDN) contoso.webpubsub.azure.com службы Web PubSub. Это полное доменное имя указывает на Traffic Manager, который возвращает каноническое имя (CNAME) ближайшего регионального экземпляра Web PubSub.
  2. С помощью этого CNAME клиент устанавливает подключение websocket к региональному экземпляру (реплике).
  3. Две реплики синхронизируют данные друг с другом. При необходимости сообщения, отправленные на одну реплику, будут передаваться другим репликам.
  4. Если реплика не проходит проверку работоспособности, выполняемую диспетчером трафика (TM), диспетчер трафика исключает конечную точку сбойного экземпляра из результатов разрешения его доменного имени. Дополнительные сведения см. в разделе " Устойчивость и аварийное восстановление"

Примечание.

  • В плоскости данных первичные функции ресурсов Azure Web PubSub идентичны своим репликам.

Устойчивость и аварийное восстановление

Служба Azure Web PubSub использует диспетчер трафика для проверок работоспособности и разрешения DNS для реплик. При нормальных обстоятельствах, когда все реплики работают правильно, клиенты будут направляться к ближайшей реплике. Например:

  • Клиенты, находящиеся рядом с eastus, будут перенаправлены на реплику, расположенную в eastus.
  • Аналогичным образом клиенты, находящиеся рядом с westus, будут направлены к реплике в westus.

В случае регионального сбоя в eastus (как показано ниже) диспетчер трафика обнаружит сбой проверки работоспособности в этом регионе. Затем DNS этой неисправной реплики будет исключена из результатов разрешения DNS диспетчера трафика. По истечении времени жизни записи DNS (TTL), составляющего 90 секунд, клиенты в eastus будут перенаправлены на подключение к реплике в westus.

Схема переключения при отказе реплики Azure Web PubSub.

После устранения проблемы eastus и подключения региона к сети проверка работоспособности завершится успешно. Клиенты в eastus затем снова будут перенаправлены на реплику в их регионе. Этот переход является гладким, так как подключенные клиенты не будут затронуты до тех пор, пока существующие подключения не будут закрыты.

Схема восстановления после аварийного переключения реплики Azure Web PubSub.

Этот процесс переключения при отказе и восстановления выполняется автоматически и не требует ручного вмешательства.

Отключить или включить конечную точку реплики

При настройке реплики можно включить или отключить её конечную точку. Если этот параметр отключён, при DNS-разрешении основного FQDN реплика не будет учитываться, и поэтому трафик не будет направляться к ней.

Схема настройки конечной точки реплики Azure Web PubSub.

Вы также можете включить или отключить конечную точку после ее создания. На вкладке реплик основного ресурса нажмите кнопку с многоточием справа от реплики и выберите Включить конечную точку или Отключить конечную точку:

Схема изменения конечной точки реплики Azure Web PubSub.

Прежде чем удалять репликацию, сначала рассмотрите возможность отключения конечной точки. Со временем существующие подключения будут отключены. Когда новые подключения перестают поступать, репликация в конце концов переходит в режим простоя. Это обеспечивает простой процесс удаления.

Эта функция также полезна для устранения региональных проблем.

Примечание.

  • Из-за кэша DNS может потребоваться несколько минут, прежде чем обновление DNS вступит в силу.
  • Существующие подключения остаются не затронутыми до тех пор, пока они не будут отключены.

Влияние на производительность после включения функции георепликации

После включения реплик клиенты будут естественным образом распределяться в зависимости от своего географического положения. Хотя Web PubSub берет на себя ответственность за синхронизацию данных между этими репликами, вы будете рады знать, что связанные затраты на нагрузку сервера минимальны для большинства распространенных вариантов использования.

В частности, если ваше приложение обычно передает данные большим группам (размером >10) или одному соединению, влияние синхронизации на производительность едва заметно. Если вы обмениваетесь сообщениями в небольших группах (размером < 10), вы можете заметить несколько большие накладные расходы на синхронизацию.

Чтобы обеспечить эффективное переключение при отказе, рекомендуется настроить размер каждого модуля реплики так, чтобы он мог обрабатывать весь трафик. Кроме того, можно включить автоматическое масштабирование для управления этим.

Дополнительные сведения об оценке производительности см. в разделе "Производительность".

Ненаследуемые и наследуемые конфигурации

Реплики наследуют большинство конфигураций из основного ресурса; однако некоторые параметры необходимо настроить непосредственно на репликах. Ниже приведен список этих конфигураций:

  1. SKU: каждая реплика имеет собственное имя SKU и размер единицы. Правила автомасштабирования для реплик должны быть настроены отдельно на основе отдельных метрик.
  2. Общие частные конечные точки доступа: хотя общие частные конечные точки доступа автоматически реплицируются на реплики, для целевых ресурсов Private Link требуются отдельные согласования. Чтобы добавить или удалить общие частные конечные точки, управляйте ими в основном ресурсе. Не включите реплику до утверждения общей частной конечной точки.
  3. Параметры назначения журнала. Если на репликах это не настроено, будут передаваться только журналы основного ресурса.
  4. Оповещения.

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