Azure Event Hubs: recuperación ante desastres geográficaAzure Event Hubs - Geo-disaster recovery

Cuando hay regiones de Azure completas o centros de datos (si no se utilizan zonas de disponibilidad) que experimentan un tiempo de inactividad, es crucial que el procesamiento de datos siga funcionando en otra región o centro de datos.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. De esta forma, la recuperación ante desastres con localización geográfica y la replicación geográfica son características importantes para cualquier empresa.As such, Geo-disaster recovery and Geo-replication are important features for any enterprise. Azure Event Hubs admite tanto la recuperación ante desastres con localización geográfica como la replicación geográfica, en el nivel de espacio de nombres.Azure Event Hubs supports both geo-disaster recovery and geo-replication, at the namespace level. 

La característica de recuperación ante desastres está disponible globalmente para Event Hubs estándar y SKU dedicado.The Geo-disaster recovery feature is globally available for both Event Hubs Standard and Dedicated SKU. Tenga en cuenta que puede solo espacios de nombres de par de replicación geográfica en el mismo nivel de SKU.Please note that you can only geo-pair namespaces across the same tier of SKU. Por ejemplo, si tiene un espacio de nombres en un clúster que se ofrece solo en nuestra SKU dedicado, solo se puede emparejar con un espacio de nombres en otro clúster.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.

Interrupciones y desastresOutages and disasters

Es importante tener en cuenta la distinción entre "interrupciones" y "desastres".It's important to note the distinction between "outages" and "disasters." Una interrupción es la falta de disponibilidad temporal de Azure Event Hubs y puede afectar a algunos componentes del servicio, como un almacén de mensajes o incluso todo el centro de datos.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. Sin embargo, después de corregir el problema, Event Hubs está de nuevo disponible.However, after the problem is fixed, Event Hubs becomes available again. Normalmente, una interrupción no provoca la pérdida de mensajes ni otros datos.Typically, an outage does not cause the loss of messages or other data. Un ejemplo de una interrupción de este tipo podría ser un error de corriente en el centro de datos.An example of such an outage might be a power failure in the datacenter. Algunas interrupciones son solo breves pérdidas de conexión debido a problemas transitorios o de red.Some outages are only short connection losses due to transient or network issues.

Un desastre se define como la pérdida permanente o a largo plazo de un clúster de Event Hubs, una región de Azure o un centro de datos.A disaster is defined as the permanent, or longer-term loss of an Event Hubs cluster, Azure region, or datacenter. La región o el centro de datos no volverá necesariamente a estar disponible, o puede que esté fuera de servicio durante horas o días.The region or datacenter may or may not become available again, or may be down for hours or days. Algunos ejemplos de esos desastres son los incendios, las inundaciones o los terremotos.Examples of such disasters are fire, flooding, or earthquake. Un desastre que se convierte en permanente podría provocar la pérdida de algunos mensajes, eventos u otros datos.A disaster that becomes permanent might cause the loss of some messages, events, or other data. Sin embargo, en la mayoría de los casos, no debe producirse una pérdida de datos y se pueden recuperar los mensajes una vez que se realiza la copia de seguridad del centro de datos.However, in most cases there should be no data loss and messages can be recovered once the data center is back up.

La característica de recuperación ante desastres con localización geográfica de Azure Event Hubs es una solución de recuperación ante desastres.The Geo-disaster recovery feature of Azure Event Hubs is a disaster recovery solution. Los conceptos y el flujo de trabajo descritos en este artículo se aplican a situaciones catastróficas y no a interrupciones transitorias o temporales.The concepts and workflow described in this article apply to disaster scenarios, and not to transient, or temporary outages. Para obtener una explicación detallada de la recuperación ante desastres en Microsoft Azure, consulte este artículo.For a detailed discussion of disaster recovery in Microsoft Azure, see this article.

Términos y conceptos básicosBasic concepts and terms

La característica de recuperación ante desastres implementa la recuperación ante desastres de metadatos y depende de espacios de nombres de recuperación ante desastres principales y secundarios.The disaster recovery feature implements metadata disaster recovery, and relies on primary and secondary disaster recovery namespaces. Tenga en cuenta que la característica de recuperación ante desastres con localización geográfica solo está disponible para las SKU estándar.Note that the Geo-disaster recovery feature is available for the Standard SKU only. No es necesario realizar ningún cambio de la cadena de conexión, ya que la conexión se realiza a través de un alias.You do not need to make any connection string changes, as the connection is made via an alias.

Los siguientes términos se utilizan en este artículo:The following terms are used in this article:

  • Alias: el nombre para una configuración de recuperación ante desastres que ha configurado.Alias: The name for a disaster recovery configuration that you set up. El alias proporciona una sola cadena de conexión estable de nombre de dominio completo (FQDN).The alias provides a single stable Fully Qualified Domain Name (FQDN) connection string. Las aplicaciones usan esta cadena de conexión de alias para conectarse a un espacio de nombres.Applications use this alias connection string to connect to a namespace.

  • Espacio de nombres principal o secundario: los espacio de nombres que corresponden al alias.Primary/secondary namespace: The namespaces that correspond to the alias. El espacio de nombres principal es "activo" y recibe mensajes (puede ser un espacio de nombres ya existente o uno nuevo).The primary namespace is "active" and receives messages (this can be an existing or new namespace). El espacio de nombres secundario es "pasivo" y no recibe mensajes.The secondary namespace is "passive" and does not receive messages. Los metadatos entre ambos están sincronizados, por lo que ambos pueden aceptar sin problemas mensajes sin ningún cambio de código de la aplicación o cadena de conexión.The metadata between both is in sync, so both can seamlessly accept messages without any application code or connection string changes. Para asegurarse de que solo el espacio de nombres activo recibe mensajes, tiene que utilizar el alias.To ensure that only the active namespace receives messages, you must use the alias.

  • Metadatos: entidades como centros de eventos y grupos de consumidores; y sus propiedades del servicio que están asociadas con el espacio de nombres.Metadata: Entities such as event hubs and consumer groups; and their properties of the service that are associated with the namespace. Tenga en cuenta que solo las entidades y sus valores se replican automáticamente.Note that only entities and their settings are replicated automatically. No se replican los mensajes ni los eventos.Messages and events are not replicated.

  • Conmutación por error: el proceso de activación del espacio de nombres secundario.Failover: The process of activating the secondary namespace.

Flujo de conmutación por error y configuraciónSetup and failover flow

La siguiente sección contiene información general del proceso de conmutación por error y explica cómo configurar la conmutación por error inicial.The following section is an overview of the failover process, and explains how to set up the initial failover.

1

ConfiguraciónSetup

En primer lugar cree un espacio de nombres principal o use uno ya existente, y un nuevo espacio de nombres secundario, luego emparéjelos.You first create or use an existing primary namespace, and a new secondary namespace, then pair the two. Este emparejamiento le proporciona un alias que puede usar para conectarse.This pairing gives you an alias that you can use to connect. Al usar un alias, no es necesario que cambie las cadenas de conexión.Because you use an alias, you do not have to change connection strings. Solo pueden agregarse nuevos espacios de nombres al emparejamiento de la conmutación por error.Only new namespaces can be added to your failover pairing. Por último, debe agregar alguna supervisión para detectar si es necesario realizar una conmutación por error.Finally, you should add some monitoring to detect if a failover is necessary. En la mayoría de los casos, el servicio forma parte de un ecosistema mayor, por lo tanto las conmutaciones por error automáticas raramente son posibles, ya que a menudo las conmutaciones por error tienen que realizarse en sincronía con el subsistema o infraestructura restantes.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.

EjemploExample

En un ejemplo de este escenario, se considera una solución de punto de venta (POS) que emite mensajes o eventos.In one example of this scenario, consider a Point of Sale (POS) solution that emits either messages or events. Event Hubs pasa esos eventos a alguna solución de asignación o formato, que reenvía los datos asignados a otros sistema para continuar el procesamiento.Event Hubs passes those events to some mapping or reformatting solution, which then forwards mapped data to another system for further processing. En ese momento, todos estos sistemas podrían estar hospedados en la misma región de Azure.At that point, all of these systems might be hosted in the same Azure region. La decisión sobre cuándo y en qué parte se realizará la conmutación por error depende del flujo de datos en su infraestructura.The decision on when and what part to fail over depends on the flow of data in your infrastructure.

Puede automatizar la conmutación por error con la supervisión de sistemas, o con soluciones de supervisión personalizadas.You can automate failover either with monitoring systems, or with custom-built monitoring solutions. Sin embargo, dicha automatización necesita planeamiento y trabajo extra que se encuentran fuera del ámbito de este artículo.However, such automation takes extra planning and work, which is out of the scope of this article.

Flujo de conmutación por errorFailover flow

Si inicia la conmutación por error, se requieren dos pasos:If you initiate the failover, two steps are required:

  1. En caso de otra interrupción, tiene que poder volver a realizar la conmutación por error.If another outage occurs, you want to be able to failover again. Por lo tanto, configure un segundo espacio de nombres pasivo y actualice el emparejamiento.Therefore, set up another passive namespace and update the pairing.

  2. Extraiga mensajes del espacio de nombres anteriormente principal una vez que vuelva a estar disponible.Pull messages from the former primary namespace once it is available again. Después de eso, utilice ese espacio de nombres para la mensajería regular fuera de la configuración de recuperación con localización geográfica, o elimine el espacio de nombres principal antiguo.After that, use that namespace for regular messaging outside of your geo-recovery setup, or delete the old primary namespace.

Nota

Se admite solo la semántica de conmutación de reenvío.Only fail forward semantics are supported. En este escenario, se realiza la conmutación por error y, a continuación, se vuelve a emparejar con un nuevo espacio de nombres.In this scenario, you fail over and then re-pair with a new namespace. No se admite la conmutación por recuperación, por ejemplo en un clúster de SQL.Failing back is not supported; for example, in a SQL cluster.

2

AdministraciónManagement

Si ha cometido algún error; por ejemplo, ha emparejado regiones incorrectas durante la configuración inicial, puede interrumpir el emparejamiento de los dos espacios de nombres en cualquier momento.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 desea usar los espacios de nombres emparejados como espacios de nombres normales, elimine el alias.If you want to use the paired namespaces as regular namespaces, delete the alias.

EjemplosSamples

En el ejemplo de GitHub se muestra cómo configurar e iniciar una conmutación por error.The sample on GitHub shows how to set up and initiate a failover. En este ejemplo se demuestran los siguientes conceptos:This sample demonstrates the following concepts:

  • La configuración necesaria en Azure Active Directory para usar Azure Resource Manager con Event Hubs.Settings required in Azure Active Directory to use Azure Resource Manager with Event Hubs.
  • Los pasos necesarios para ejecutar el código de ejemplo.Steps required to execute the sample code.
  • Envío y recepción desde el espacio de nombres principal actual.Send and receive from the current primary namespace.

ConsideracionesConsiderations

Tenga en cuenta y recuerde las siguientes consideraciones para esta versión:Note the following considerations to keep in mind with this release:

  1. En el planeamiento de la conmutación por error, también debe considerar el factor de tiempo.In your failover planning, you should also consider the time factor. Por ejemplo, si se pierde la conectividad durante más de 15 a 20 minutos, puede decidir iniciar la conmutación por error.For example, if you lose connectivity for longer than 15 to 20 minutes, you might decide to initiate the failover.

  2. El hecho de que no se replican datos significa que las sesiones activas en la actualidad no se replican.The fact that no data is replicated means that currently active sessions are not replicated. Además, la detección de duplicados y mensajes programados puede no funcionar.Additionally, duplicate detection and scheduled messages may not work. Funcionarán las nuevas sesiones, los mensajes programados y los duplicados nuevos.New sessions, scheduled messages, and new duplicates will work.

  3. Conmutar por error una compleja infraestructura distribuida debe ensayarse al menos una vez.Failing over a complex distributed infrastructure should be rehearsed at least once.

  4. La sincronización de entidades puede tardar algún tiempo, aproximadamente 50-100 entidades por minuto.Synchronizing entities can take some time, approximately 50-100 entities per minute.

Zonas de disponibilidadAvailability Zones

La SKU de Event Hubs estándar es compatible con Availability Zones, lo que proporciona ubicaciones con aislamiento de errores dentro de una región de Azure.The Event Hubs Standard SKU supports Availability Zones, providing fault-isolated locations within an Azure region.

Nota

La compatibilidad de Availability Zones con Azure Event Hubs estándar solo está disponible en aquellas regiones de Azure en las que hay zonas de disponibilidad.The Availability Zones support for Azure Event Hubs Standard is only available in Azure regions where availability zones are present.

Solo puede habilitar Availability Zones en los espacios de nombres nuevos mediante Azure Portal.You can enable Availability Zones on new namespaces only, using the Azure portal. Event Hubs no admite la migración de espacios de nombres existentes.Event Hubs does not support migration of existing namespaces. No se puede deshabilitar la redundancia de zona después de habilitarla en el espacio de nombres.You cannot disable zone redundancy after enabling it on your namespace.

3

Pasos siguientesNext steps

  • El ejemplo en GitHub le guía a través de un flujo de trabajo simple que crea un emparejamiento geográfico e inicia una conmutación por error para un escenario de recuperación ante desastres.The sample on GitHub walks through a simple workflow that creates a geo-pairing and initiates a failover for a disaster recovery scenario.
  • La referencia de la API de REST describe las API para llevar a cabo la configuración de recuperación de desastres con localización geográfica.The REST API reference describes APIs for performing the Geo-disaster recovery configuration.

Para obtener más información acerca de Event Hubs, visite los vínculos siguientes:For more information about Event Hubs, visit the following links: