Azure Event Hubs - Géorécupération d’urgenceAzure Event Hubs - Geo-disaster recovery

Si tout un centre de données ou une région Azure complète (si aucune zone de disponibilité n’est utilisée) connaît un temps d’arrêt, il est essentiel que le traitement des données puisse continuer dans les autres régions ou centres de données.When entire Azure regions or datacenters (if no availability zones are used) experience downtime, it is critical for data processing to continue to operate in a different region or datacenter. Pour cette raison, la géorécupération d’urgence et la géoréplication sont des fonctionnalités importantes pour les entreprises.As such, Geo-disaster recovery and Geo-replication are important features for any enterprise. Azure Event Hubs prend en charge la géorécupération d’urgence et la géoréplication au niveau de l’espace de noms.Azure Event Hubs supports both geo-disaster recovery and geo-replication, at the namespace level. 

La fonctionnalité de géorécupération d’urgence est disponible de manière globale pour la référence SKU standard dédiée d’Event Hubs.The Geo-disaster recovery feature is globally available for both Event Hubs Standard and Dedicated SKU. Veuillez noter que vous pouvez uniquement apparier des espaces de noms sur le même niveau de référence (SKU).Please note that you can only geo-pair namespaces across the same tier of SKU. Par exemple, si vous avez un espace de noms dans un cluster qui est disponible uniquement dans notre référence SKU dédiée, il peut uniquement être associé à un espace de noms dans un autre cluster.For instance, if you have a namespace in a cluster which is offered only in our Dedicated SKU, it can only be paired with a namespace in another cluster.

Pannes et sinistresOutages and disasters

Il est important de noter la différence entre « panne » et « sinistre ».It's important to note the distinction between "outages" and "disasters." Une panne se définit comme l’indisponibilité temporaire d’Azure Event Hubs. La panne impacte certains composants du service, comme une banque de messages, ou le centre de données entier.An outage is the temporary unavailability of Azure Event Hubs, and can affect some components of the service, such as a messaging store, or even the entire datacenter. Toutefois, une fois le problème résolu, Event Hubs redevient disponible.However, after the problem is fixed, Event Hubs becomes available again. En règle générale, une panne ne provoque aucune perte de messages ou d’autres données.Typically, an outage does not cause the loss of messages or other data. Une coupure de courant dans le centre de données est un exemple de panne.An example of such an outage might be a power failure in the datacenter. Certaines pannes sont uniquement dues à une courte perte de la connexion en raison de problèmes réseau ou de soucis temporaires.Some outages are only short connection losses due to transient or network issues.

Un sinistre se définit comme une perte définitive ou à long terme d’un cluster Event Hubs, d’une région Azure ou d’un centre de données.A disaster is defined as the permanent, or longer-term loss of an Event Hubs cluster, Azure region, or datacenter. La région ou le centre de données peut redevenir disponible ou pas, et rester arrêté(e) pendant plusieurs heures ou jours.The region or datacenter may or may not become available again, or may be down for hours or days. Les incendies, les inondations ou les tremblements de terre sont des exemples de sinistres.Examples of such disasters are fire, flooding, or earthquake. Un sinistre qui devient permanent peut entraîner la perte de certains messages, événements ou d’autres données.A disaster that becomes permanent might cause the loss of some messages, events, or other data. Toutefois, dans la plupart des cas, il ne doit y avoir aucune perte de données et les messages peuvent être récupérés une fois que le centre de données est sauvegardé.However, in most cases there should be no data loss and messages can be recovered once the data center is back up.

La fonctionnalité de géorécupération d’urgence d’Azure Event Hubs est une solution de récupération d’urgence.The Geo-disaster recovery feature of Azure Event Hubs is a disaster recovery solution. Les concepts et le workflow décrits dans cet article concernent des scénarios de sinistres, pas des pannes temporaires ou transitoires.The concepts and workflow described in this article apply to disaster scenarios, and not to transient, or temporary outages. Pour obtenir une présentation détaillée de la récupération d’urgence dans Microsoft Azure, consultez cet article.For a detailed discussion of disaster recovery in Microsoft Azure, see this article.

Concepts et terminologie de baseBasic concepts and terms

La fonctionnalité de récupération d’urgence implémente la récupération d’urgence des métadonnées, en s’appuyant sur les espaces de noms de récupération d’urgence principal et secondaire.The disaster recovery feature implements metadata disaster recovery, and relies on primary and secondary disaster recovery namespaces. Notez que la fonctionnalité de géorécupération d’urgence est disponible uniquement pour la référence SKU standard.Note that the Geo-disaster recovery feature is available for the Standard SKU only. Vous n’avez pas besoin de modifier la chaîne de connexion, car la connexion est établie à l’aide d’un alias.You do not need to make any connection string changes, as the connection is made via an alias.

Cet article emploie les termes suivants :The following terms are used in this article:

  • Alias : nom d’une configuration de récupération d’urgence que vous avez configurée.Alias: The name for a disaster recovery configuration that you set up. L’alias fournit une chaîne de connexion de nom de domaine complet (FQDN) stable.The alias provides a single stable Fully Qualified Domain Name (FQDN) connection string. Les applications utilisent cet alias de chaîne de connexion pour se connecter à un espace de noms.Applications use this alias connection string to connect to a namespace.

  • Espace de noms principal/secondaire : espaces de noms qui correspondent à l’alias.Primary/secondary namespace: The namespaces that correspond to the alias. L’espace de noms principal est « actif » et reçoit les messages (il peut s’agir d’un espace de noms existant ou nouveau).The primary namespace is "active" and receives messages (this can be an existing or new namespace). L’espace de noms secondaire est « passif » et ne reçoit pas de messages.The secondary namespace is "passive" and does not receive messages. Les métadonnées sont synchronisées entre ces deux espaces de noms, qui peuvent ainsi accepter facilement les messages sans aucune modification du code d’application ou de la chaîne de connexion.The metadata between both is in sync, so both can seamlessly accept messages without any application code or connection string changes. Pour vous assurer que seul l’espace de noms actif reçoit des messages, vous devez utiliser l’alias.To ensure that only the active namespace receives messages, you must use the alias.

  • Métadonnées : entités telles que des concentrateurs d’événements et des groupes de consommateurs ; incluent également leurs propriétés sur le service associé à l’espace de noms.Metadata: Entities such as event hubs and consumer groups; and their properties of the service that are associated with the namespace. Notez que seules les entités et leurs paramètres sont automatiquement répliqués.Note that only entities and their settings are replicated automatically. Les messages et les événements ne sont pas répliqués.Messages and events are not replicated.

  • Basculement : processus d’activation de l’espace de noms secondaire.Failover: The process of activating the secondary namespace.

Flux de configuration et de basculementSetup and failover flow

La section suivante présente une vue d’ensemble du processus de basculement et explique comment configurer le basculement initial.The following section is an overview of the failover process, and explains how to set up the initial failover.

1

ParamétrageSetup

Tout d’abord, vous créez ou utilisez un espace de noms principal existant et un espace de noms secondaire, avant d’associer les deux.You first create or use an existing primary namespace, and a new secondary namespace, then pair the two. Cette association crée un alias qui vous servira à vous connecter.This pairing gives you an alias that you can use to connect. Étant donné que vous utilisez un alias, vous n’avez pas besoin de modifier les chaînes de connexion existantes.Because you use an alias, you do not have to change connection strings. Vous pouvez uniquement ajouter de nouveaux espaces de noms à votre association de basculement.Only new namespaces can be added to your failover pairing. Enfin, vous devez ajouter un système de surveillance afin de détecter si un basculement est nécessaire.Finally, you should add some monitoring to detect if a failover is necessary. Dans la plupart des cas, le service fait partie d’un écosystème de grande taille. C’est pourquoi les basculements automatiques sont rarement possibles, dans la mesure où, très souvent, les basculements doivent être synchronisés avec le reste de l’infrastructure ou du sous-système.In most cases, the service is one part of a large ecosystem, thus automatic failovers are rarely possible, as very often failovers must be performed in sync with the remaining subsystem or infrastructure.

ExempleExample

Dans un exemple de ce scénario, imaginez une solution de Point de vente (PDV) qui émet des messages ou des événements.In one example of this scenario, consider a Point of Sale (POS) solution that emits either messages or events. Event Hubs transmet ces événements à une solution de mappage ou de reformatage, qui envoie ensuite les données mappées à un autre système pour traitement.Event Hubs passes those events to some mapping or reformatting solution, which then forwards mapped data to another system for further processing. À ce stade, tous ces systèmes peuvent être hébergés dans la même région Azure.At that point, all of these systems might be hosted in the same Azure region. Le choix du moment du basculement et des éléments à basculer varie selon le flux de données dans votre infrastructure.The decision on when and what part to fail over depends on the flow of data in your infrastructure.

Vous pouvez automatiser le basculement à l’aide de systèmes de surveillance ou à l’aide de solutions de surveillance personnalisées.You can automate failover either with monitoring systems, or with custom-built monitoring solutions. Toutefois, cette automatisation nécessite des tâches de planification et du travail supplémentaires, qui ne seront pas abordés dans cet article.However, such automation takes extra planning and work, which is out of the scope of this article.

Flux de basculementFailover flow

Si vous lancez le basculement, deux étapes sont requises :If you initiate the failover, two steps are required:

  1. Vous voulez être sûr de pouvoir refaire un basculement en cas de nouvelle panne.If another outage occurs, you want to be able to failover again. Pour cela, configurez un autre espace de noms passif et mettez à jour l’association.Therefore, set up another passive namespace and update the pairing.

  2. Tirez (pull) les messages à partir de l’ancien espace de noms principal une fois qu’il est de nouveau disponible.Pull messages from the former primary namespace once it is available again. Après cela, utilisez cet espace de noms pour les messages réguliers en dehors de votre configuration de géorécupération ou supprimez l’ancien espace de noms principal.After that, use that namespace for regular messaging outside of your geo-recovery setup, or delete the old primary namespace.

Notes

Seule la sémantique de transfert du basculement est prise en charge.Only fail forward semantics are supported. Dans ce scénario, vous basculez puis effectuez un nouveau couplage avec un nouvel espace de noms.In this scenario, you fail over and then re-pair with a new namespace. La restauration automatique n’est pas prise en charge ; par exemple, dans un cluster SQL.Failing back is not supported; for example, in a SQL cluster.

2

gestionManagement

Si vous avez fait une erreur (par exemple, vous avez associé les mauvaises régions lors de la configuration initiale), vous pouvez rompre le couplage des deux espaces de noms à tout moment.If you made a mistake; for example, you paired the wrong regions during the initial setup, you can break the pairing of the two namespaces at any time. Si vous souhaitez utiliser les espaces de noms couplés comme des espaces de noms standard, supprimez l’alias.If you want to use the paired namespaces as regular namespaces, delete the alias.

ExemplesSamples

L’exemple sur GitHub montre comment configurer et lancer un basculement.The sample on GitHub shows how to set up and initiate a failover. Cet exemple illustre les concepts suivants :This sample demonstrates the following concepts:

  • Paramètres requis dans Azure Active Directory pour utiliser Azure Resource Manager avec Event Hubs.Settings required in Azure Active Directory to use Azure Resource Manager with Event Hubs.
  • Étapes requises pour exécuter l’exemple de code.Steps required to execute the sample code.
  • Envoi et réception à partir de l’espace de noms principal actuel.Send and receive from the current primary namespace.

ConsidérationsConsiderations

Notez les points suivants pour cette version :Note the following considerations to keep in mind with this release:

  1. Dans votre planification de basculement, vous devez également tenir compte du facteur temps.In your failover planning, you should also consider the time factor. Par exemple, si vous perdez la connectivité pendant plus de 15 à 20 minutes, vous pouvez décider de lancer le basculement.For example, if you lose connectivity for longer than 15 to 20 minutes, you might decide to initiate the failover.

  2. Le fait qu’aucune donnée ne soit répliquée signifie que les sessions actuellement actives ne sont pas répliquées.The fact that no data is replicated means that currently active sessions are not replicated. En outre, la détection des doublons et les messages planifiés peuvent ne pas fonctionner.Additionally, duplicate detection and scheduled messages may not work. Les nouvelles sessions, les messages planifiés et les nouveaux doublons fonctionneront.New sessions, scheduled messages, and new duplicates will work.

  3. Le basculement d’une infrastructure distribuée complexe doit être répétée au moins une fois.Failing over a complex distributed infrastructure should be rehearsed at least once.

  4. La synchronisation des entités peut prendre un certain temps, à raison d’environ 50 à 100 entités par minute.Synchronizing entities can take some time, approximately 50-100 entities per minute.

Zones de disponibilitéAvailability Zones

La référence SKU Event Hubs Standard prend en charge les zones de disponibilité, fournissant ainsi des emplacements isolés des défaillances au sein d'une région Azure.The Event Hubs Standard SKU supports Availability Zones, providing fault-isolated locations within an Azure region.

Notes

Pour Azure Event Hubs Standard, la prise en charge des zones de disponibilité s'applique uniquement aux régions Azure où des zones de disponibilité sont déjà présentes.The Availability Zones support for Azure Event Hubs Standard is only available in Azure regions where availability zones are present.

Vous pouvez activer les Zones de disponibilité sur les nouveaux espaces de noms uniquement, à l’aide du portail Azure.You can enable Availability Zones on new namespaces only, using the Azure portal. Event Hubs ne prend pas en charge la migration des espaces de noms existants.Event Hubs does not support migration of existing namespaces. Vous ne pouvez pas désactiver la redondance de zone après l’avoir activée sur votre espace de noms.You cannot disable zone redundancy after enabling it on your namespace.

3

Étapes suivantesNext steps

  • L’exemple sur GitHub décrit un flux de travail simple qui crée un géocouplage et déclenche un basculement pour un scénario de récupération d’urgence.The sample on GitHub walks through a simple workflow that creates a geo-pairing and initiates a failover for a disaster recovery scenario.
  • La référence d’API REST décrit les API nécessaires pour effectuer la configuration de la géorécupération.The REST API reference describes APIs for performing the Geo-disaster recovery configuration.

Pour plus d’informations sur les concentrateurs d’événements, accédez aux liens suivants :For more information about Event Hubs, visit the following links: