Le 10 et 11 juin 2024, j’ai assisté à l’événement « Integrate 2024 » de l’entreprise Kovai. Microsoft annonce alors une nouvelle fonctionnalité : la géo réplication pour Azure Service Bus.
La préversion publique est initialement prévue pour le 17 juin 2024. C’est finalement le 25 juin 2024 qu’Eldert Grootenboer, Senior Product Manager de Microsoft, annonce sa sortie dans un article paru dans le blog tech de Microsoft.
Vous allez comprendre dans cet article les apports de cette nouveauté.
Tout d’abord, notez que cette fonctionnalité est uniquement disponible sur le niveau Premium de Service Bus. De plus, la géo réplication prend en charge actuellement une seule région secondaire, nous reviendrons sur ce principe de régions.
Microsoft indique également qu’il s’agit d’une préversion publique et qu’elle ne doit donc pas être utilisée en environnement de production. Aussi, elle est pour le moment disponible uniquement dans certaines régions. La disponibilité de la fonctionnalité s’étendra au fur et à mesure, vous pouvez suivre cela sur la documentation officielle de Microsoft.
Avant la géo réplication, Azure propose pour Service Bus la « Geo-disaster recovery » (Géo reprise d’activité après sinistre). Elle permet de garantir l’intégrité des métadonnées (entités, configuration, propriétés). Pour ce faire, un espace de nom secondaire est couplé à l’espace de nom primaire utilisé actuellement dans le flux. En cas de panne ou de sinistre, ces métadonnées sont basculées de l’espace de nom primaire vers le secondaire. La réplication est continue et le basculement presque instantané.
Pour connaitre plus précisément le fonctionnement de cette méthode, vous pouvez consulter la documentation de Microsoft.
Comme évoqué lors du paragraphe précédent, la « Geo-disaster recovery » protège uniquement les métadonnées. C’est pourquoi Microsoft, à travers la géo réplication, étend son offre aux données.
Ainsi, sont protégés :
Pour ce faire, on conserve les mêmes logiques :
Voici un schéma illustrant le fonctionnement de la géo réplication :
En état de marche, les producteurs et les consommateurs des messages du Service Bus Namespace utilisent un seul espace de nom pour se connecter à la région primaire. Cela permet aux utilisateurs de configurer leur flux en utilisant cet espace de nom et de ne pas avoir à le changer lors du basculement. Il pointe toujours vers la région primaire. En cas de panne ou de sinistre, on promeut une région secondaire. L’espace de nom bascule alors pour pointer vers la région secondaire, qui devient la région primaire. L’ancienne région primaire est rétrogradée en région secondaire. Une fois cette nouvelle région secondaire réinitialisée, on peut promouvoir de nouveau cette région au rang de primaire.
Le client gère la promotion de région primaire en région secondaire, via une propriété. Ainsi, il dispose d’une visibilité complète pour la résolution du problème à l’origine du basculement. L’automatisation de la promotion est également possible via les métriques associés. A noter qu’il n’est pas possible de lire ou écrire dans les régions secondaires.
Il existe deux modes de réplication :
Sans quelconque événement extérieur que vous subissez, vous pouvez choisir de migrer votre Service Bus Namespace vers une autre région. Voici une liste non exhaustive des raisons pouvant amener à cette utilisation de la géo réplication :
Pour ce faire, il faut configurer la géo réplication sur l’espace de nom existant avec la nouvelle région souhaitée en tant que région secondaire. A la fin de la synchronisation, la promotion planifiée de la région démarre. Les messages déjà publiés sont alors répliqués. A la fin de la promotion, vous pouvez supprimer l’ancienne région, elle devient secondaire. Vos flux s’exécutent désormais sur la nouvelle région primaire souhaitée.
Là où la géo réplication prend tout son sens, c’est lorsqu’un événement imprévu survient et affecte l’utilisation de votre Service Bus. Cela peut être :
Il est alors important que votre région secondaire puisse couvrir la région primaire que vous utilisez. De plus, la géo réplication assure une synchronisation continue pour que votre Service Bus soit toujours disponible et ainsi éviter toute interruption de service. Ceci s’effectue via la promotion de la région secondaire. Selon la gravité des services affectés, deux promotions sont possibles :
Après la théorie, l’objectif est de vous montrer en pratique comment fonctionne la géo réplication. Etant donné qu’il s’agit d’une fonctionnalité encore en préversion publique, il convient de consulter la documentation de Microsoft pour bénéficier des dernières avancées de Microsoft.
Les étapes de la promotion sont:
Les utilisateurs peuvent suivre l’avancée de la réplication grâce aux métriques. Pour cela, il faut activer les journaux de métriques dans votre Service Bus Namespace (en rouge) :
Les données sont ensuite disponibles via les Journaux d’activité (en bleu).
Vous pouvez utiliser la requête suivante pour rechercher le décalage de réplication (en secondes) entre les régions primaires et secondaires :
AzureMetrics | where TimeGenerated > ago(1h) | where MetricName == "ReplicationLagDuration"
Comme vous l’avez vu, la nouvelle fonctionnalité de géo réplication de Microsoft permet d’aller encore plus loin que la « Geo-disaster recovery » déjà existante. En effet, le fait de pouvoir répliquer les données en plus des métadonnées est crucial pour conserver l’ensembles des données qui transitent via Azure Service Bus.
Pour utiliser efficacement la géo réplication, vous devez maitriser ses principes et déterminer quel est le mode le plus adapté à votre projet : synchrone pour sécuriser vos données ou asynchrone pour un traitement plus efficace. Vous devez aussi corréler votre choix selon le scénario dans lequel vous opérez la géo réplication : exécuter une action voulue ou pour éviter de subir un problème tiers qui affecte votre Service Bus.
Maintenant que vous connaissez la théorie, il reste à mettre la géo réplication en pratique. Pour cela, il ne faut pas oublier que la géo réplication est une fonctionnalité en préversion publique. Cela signifie que Microsoft n’a pas encore totalement abouti sa mise en place et que vous devez surveiller ses avancées ainsi que les régions dans lesquelles elle est disponible.
Enfin, une petite note concernant la tarification : Microsoft facture le niveau Premium pour Service Bus par unité de messagerie. Avec la fonctionnalité de géo réplication, les régions secondaires s’exécutent sur le même nombre d’unités de messagerie que la région primaire, et vous devez calculer la tarification sur le nombre total d’unités de messagerie. En outre, vous encourrez des frais, calculés d’après la bande passante multipliée par le nombre de régions secondaires. Au cours de la préversion publique anticipée, Microsoft annule ces frais.
A vos marques, prêts, géo répliquez !