Géoréplication dans Azure Web PubSub

Les applications stratégiques doivent souvent disposer d’un système de basculement robuste et servir les utilisateurs plus près de leur emplacement. Avant la publication de la fonctionnalité de géoréplication, les développeurs ont besoin de déployer plusieurs ressources Web PubSub et d’écrire du code personnalisé pour orchestrer la communication entre les ressources. Maintenant, avec une configuration rapide via Portail Azure, vous pouvez facilement activer cette fonctionnalité.

Avantages de l’utilisation de la géoréplication

  • Plus résilient aux pannes régionales : si une panne régionale se produit, les clients sont automatiquement acheminés vers un réplica sain.
  • Communication interrégion : les développeurs utilisent une ressource géoréplication comme d’habitude, même si en arrière-plan il existe plusieurs ressources. La communication entre les réplicas est gérée par le service.
  • Vitesse du réseau améliorée : les clients dispersés géographiquement se connectent au réplica le plus proche. Ces réplicas communiquent via le réseau principal du réseau global Azure, garantissant ainsi une mise en réseau rapide et stable.
  • Gestion facile. Tous les réplicas partagent la configuration de la ressource Web PubSub principale.

Prérequis

  • Ressource Web PubSub dans le niveau Premium.

Exemple de cas d’usage

Contoso, une société de médias sociaux

Contoso est une société de médias sociaux avec sa base de clients répartie aux États-Unis et au Canada. Contoso fournit une application mobile et web à ses utilisateurs afin qu’ils puissent se connecter les uns avec les autres. L’application Contoso est déployée dans la région USA Centre. Dans le cadre de l’architecture de Contoso, Web PubSub est utilisé pour établir des connexions WebSocket persistantes entre les applications clientes et le serveur d’applications. Contoso aime qu’il puisse décharger la gestion des connexions WebSocket à Web PubSub, mais n’aime pas lire les rapports d’utilisateurs au Canada présentant une latence plus élevée. En outre, l’équipe de développement de Contoso souhaite assurer l’application contre les pannes régionales afin que les utilisateurs puissent accéder à l’application sans interruption.

Diagram of using one Azure WebPubSub instance to handle traffic from two countries.

Contoso pourrait configurer une autre ressource Web PubSub au Canada Centre, qui est géographiquement plus proche de ses utilisateurs au Canada. Toutefois, la gestion de plusieurs ressources Web PubSub pose quelques défis :

  1. Un mécanisme de communication interrégion doit être mis en œuvre afin que les utilisateurs du Canada et des États-Unis puissent interagir entre eux.
  2. L’équipe de développement doit gérer deux ressources Web PubSub distinctes, chacune avec un domaine et chaîne de connexion distincts.
  3. Si une panne régionale a lieu, le trafic doit être dirigé vers une ressource disponible.

Toutes les ressources d’ingénierie ci-dessus s’éloignent de se concentrer sur l’innovation des produits.

Diagram of using two Azure Web PubSub instances to handle traffic from two countries.

Exploiter la fonctionnalité de géoréplication

Avec la fonctionnalité de géoréplication, Contoso peut maintenant établir un réplica au Canada Central, en surmontant efficacement les défis mentionnés ci-dessus. L’équipe de développement est heureuse de savoir qu’elle n’a pas besoin d’apporter de modifications de code. Il est aussi facile que de cliquer sur quelques boutons sur Portail Azure. L’équipe développeur est également heureuse de partager avec les parties prenantes que Contoso prévoit d’entrer sur le marché européen, il leur suffit d’ajouter un autre réplica en Europe.

Diagram of using one Azure Web PubSub instance with replica to handle traffic from two countries.

Comment activer la géoréplication dans une ressource Web PubSub

Pour créer un réplica dans une région Azure, accédez à votre ressource Web PubSub et recherchez le panneau Réplicas dans le Portail Azure, puis cliquez sur Ajouter pour créer un réplica.

Screenshot of creating replica for Azure Web PubSub on Portal.

Après la création, vous pouvez afficher/modifier votre réplica sur le portail en cliquant sur le nom du réplica.

Screenshot of overview blade of Azure Web PubSub replica resource.

Tarification et unité de ressources

Chaque réplica a sa propreunit et autoscale settings.

Le réplica est une fonctionnalité du niveau Premium du service Azure Web PubSub. Chaque réplica est facturé séparément en fonction de son propre unité et du trafic sortant. Le quota de messages gratuits est également calculé séparément.

Dans l’exemple précédent, Contoso a ajouté un réplica au Canada Central. Contoso paierait le réplica au Canada Central en fonction de son unité et de son message dans Premium Price.

Il y aura des frais de sortie pour le trafic sortant entre régions. Si un message est transféré entre les réplicas et envoyé avec succès à un client ou un serveur après le transfert, il est facturé en tant que message sortant.

Supprimer un réplica

Une fois que vous avez créé un réplica pour une ressource Web PubSub, vous pouvez le supprimer à tout moment s’il n’est plus nécessaire.

Pour supprimer un réplica dans le portail Azure :

  1. Accédez à votre ressource Web PubSub, puis sélectionnez le panneau Réplicas . Cliquez sur le réplica à supprimer.
  2. Cliquez sur le bouton Supprimer dans le panneau Vue d’ensemble du réplica.

Pour supprimer un réplica à l’aide d’Azure CLI :

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

Comprendre le fonctionnement de la fonctionnalité de géoréplication

Diagram of the arch of Azure Web PubSub replica.

  1. Le client résout le nom de domaine complet (FQDN) contoso.webpubsub.azure.com du service Web PubSub. Ce nom de domaine complet pointe vers un Traffic Manager, qui retourne le nom canonique (CNAME) de l’instance Web PubSub régionale la plus proche.
  2. Avec ce CNAME, le client établit une connexion websocket à l’instance régionale (réplica).
  3. Les deux réplicas synchronisent les données entre elles. Les messages envoyés à un réplica sont transférés vers d’autres réplicas si nécessaire.
  4. En cas d’échec d’un réplica, l’intégrité case activée effectuée par Traffic Manager (TM), la tm exclut le point de terminaison de l’instance ayant échoué de ses résultats de résolution de domaine. Pour plus d’informations, reportez-vous à la section ci-dessous Résilience et récupération d’urgence

Remarque

  • Dans le plan de données, une ressource Azure Web PubSub principale fonctionne de manière identique à ses réplicas

Résilience et reprise d’activité après sinistre

Le service Azure Web PubSub utilise un gestionnaire de trafic pour les case activée d’intégrité et la résolution DNS vers ses réplicas. Dans des circonstances normales, lorsque tous les réplicas fonctionnent correctement, les clients sont dirigés vers le réplica le plus proche. Exemple :

  • Les clients proches de eastus seront dirigés vers le réplica situé dans eastus.
  • De même, les clients proches de westus seront dirigés vers le réplica dans westus.

En cas de panne régionale dans eastus (illustré ci-dessous), le gestionnaire de trafic détecte l’intégrité case activée défaillance pour cette région. Ensuite, le DNS de ce réplica défectueux est exclu des résultats de la résolution DNS du gestionnaire de trafic. Après une durée de durée de vie (TTL) DNS définie sur 90 secondes, les clients sont eastus redirigés pour se connecter au réplica dans westus.

Diagram of Azure Web PubSub replica failover.

Une fois le problème résolu eastus et que la région est de retour en ligne, l’intégrité case activée réussit. Les clients dans eastus devront ensuite, une fois de plus, être dirigés vers le réplica dans leur région. Cette transition est fluide, car les clients connectés ne seront pas affectés tant que ces connexions existantes ne seront pas fermées.

Diagram of Azure Web PubSub replica failover recovery.

Ce processus de basculement et de récupération est automatique et ne nécessite aucune intervention manuelle.

Désactiver ou activer le point de terminaison du réplica

Lors de la configuration d’un réplica, vous avez la possibilité d’activer ou de désactiver son point de terminaison. S’il est désactivé, la résolution DNS du nom de domaine complet principal n’inclut pas le réplica. Par conséquent, le trafic ne sera pas dirigé vers celui-ci.

Diagram of Azure Web PubSub replica endpoint setting.

Vous pouvez également activer la désactivation du point de terminaison après sa création. Dans le panneau Réplicas de la ressource primaire, cliquez sur le bouton de sélection situé à droite du réplica, puis choisissez Activer le point de terminaison ou Désactiver le point de terminaison :

Diagram of Azure Web PubSub replica endpoint modification.

Avant de supprimer une réplication, envisagez de désactiver d’abord son point de terminaison. Au fil du temps, les connexions existantes se déconnectent. À mesure qu’aucune nouvelle connexion n’est disponible, la réplication devient inactive enfin. Cela garantit un processus de suppression fluide.

Cette fonctionnalité est également utile pour résoudre les problèmes régionaux.

Remarque

  • En raison du cache DNS, la mise à jour DNS peut prendre plusieurs minutes.
  • Les connexions existantes ne sont pas affectées tant qu’elles ne sont pas déconnectées.

Impact sur les performances après l’activation de la fonctionnalité de géoréplication

Une fois les réplicas activés, les clients distribuent naturellement en fonction de leurs emplacements géographiques. Bien que Web PubSub assume la responsabilité de synchroniser les données entre ces réplicas, vous serez heureux de savoir que la surcharge associée sur le chargement du serveur est minimale pour les cas d’usage les plus courants.

Plus précisément, si votre application diffuse généralement des groupes plus grands (taille >10) ou une connexion unique, l’impact sur les performances de la synchronisation est à peine perceptible. Si vous êtes des petits groupes de messagerie (taille < 10), vous remarquerez peut-être un peu plus de surcharge de synchronisation.

Pour garantir une gestion efficace du basculement, il est recommandé de définir la taille d’unité de chaque réplica pour gérer tout le trafic. Vous pouvez également activer la mise à l’échelle automatique pour gérer cela.

Pour plus d’évaluation des performances, reportez-vous à Performance.