Compartir por


Recuperación ante desastres geográfica de Azure Service Bus

La característica de recuperación ante desastres geográfica de Service Bus es una de las opciones para aislar las aplicaciones de Azure Service Bus frente a interrupciones y desastres, y principalmente, tiene como objetivo ayudar a preservar la integridad de la configuración de la aplicación compuesta.

Nota:

Esta característica está disponible para el nivel Premium de Azure Service Bus.

La característica Recuperación ante desastres geográfica garantiza que toda la configuración de un espacio de nombres (entidades, configuración, propiedades) se replique continuamente desde un espacio de nombres principal a un espacio de nombres secundario con el que está emparejado y le permite iniciar una conmutación por error de solo una vez desde la principal a la secundaria en cualquier momento. La conmutación por error vuelve a apuntar el nombre de alias elegido para el espacio de nombres al espacio de nombres secundario y, a continuación, interrumpe el emparejamiento. La conmutación por error es casi instantánea una vez que se ha iniciado.

Puntos importantes para tener en cuenta

  • La característica permite la continuidad instantánea de las operaciones con la misma configuración, pero no replica los mensajes incluidos en colas, las suscripciones de temas ni las colas de mensajes fallidos. Para conservar la semántica de cola, esta replicación no solo requiere la replicación de datos de mensajes, sino de todos los cambios de estado en el agente, que se ofrece en la característica de replicación geográfica (versión preliminar pública).
  • Las asignaciones de control de acceso basado en rol (RBAC) de Microsoft Entra a entidades de Service Bus en el espacio de nombres principal no se replican en el espacio de nombres secundario. Cree asignaciones de roles manualmente en el espacio de nombres secundario para proteger el acceso a estas.
  • No se replican las configuraciones siguientes.
    • Configuraciones de red virtual
    • Conexiones de punto de conexión privado
    • Acceso a todas las redes habilitado
    • Acceso de servicio de confianza habilitado
    • Acceso a una red pública
    • Acción de red predeterminada
    • Identidades y configuración de cifrado (cifrado de claves administradas por el cliente o cifrado Bring Your Own Key (BYOK))
    • Habilitar escalabilidad automática
    • Deshabilitación de la autenticación local
    • Suscripciones de Azure Event Grid
  • No se admite el emparejamiento de un espacio de nombres con particiones con un espacio de nombres sin particiones.
  • Si AutoDeleteOnIdle está habilitado en una entidad, es posible que la entidad no esté presente en el espacio de nombres secundario cuando se produzca la conmutación por error. Cuando la base de datos secundaria se convierte en principal, el último estado de acceso, que no forma parte de los metadatos, no estará disponible para la nueva entidad principal y se puede eliminar como parte de AutoDeleteOnIdle limpieza.

Sugerencia

Para replicar el contenido de las colas y las suscripciones de temas y operar los espacios de nombres correspondientes en configuraciones activas o activas para hacer frente a interrupciones y desastres, no se base en este conjunto de características de recuperación ante desastres geográficas, pero use la característica de replicación geográfica o siga las instrucciones de replicación.

Términos y conceptos básicos

La característica Recuperación ante desastres geográfica implementa la recuperación ante desastres de metadatos y se basa en los espacios de nombres de recuperación ante desastres principal y secundario. La característica de recuperación ante desastres geográfica está disponible solo para el nivel Premium. 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.

Los siguientes términos se utilizan en este artículo:

  • Alias: el nombre para una configuración de recuperación ante desastres que ha configurado. El alias proporciona una sola cadena de conexión estable de nombre de dominio completo (FQDN). Las aplicaciones usan esta cadena de conexión de alias para conectarse a un espacio de nombres. El uso de un alias garantiza que la cadena de conexión permanecerá sin modificación cuando se desencadene la conmutación por error.

  • Espacio de nombres principal o secundario: los espacio de nombres que corresponden al alias. El espacio de nombres principal está "activo" y recibe mensajes (puede ser un espacio de nombres nuevo o existente). El espacio de nombres secundario es "pasivo" y no recibe mensajes. 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. Para asegurarse de que solo el espacio de nombres activo recibe mensajes, tiene que utilizar el alias.

  • Metadatos: entidades como colas, temas y suscripciones, y sus propiedades del servicio que están asociadas con el espacio de nombres. Solo las entidades y sus valores se replican automáticamente. Los mensajes no se replican.

  • Conmutación por error: el proceso de activación del espacio de nombres secundario.

Configurar

En la siguiente sección se ofrece información general sobre la configuración del emparejamiento entre los espacios de nombres.

Captura de pantalla de la configuración del emparejamiento con recuperación ante desastres geográfica.

En primer lugar cree un espacio de nombres principal o use uno ya existente, y un nuevo espacio de nombres secundario, luego emparéjelos. Este emparejamiento le proporciona un alias que puede usar para conectarse. Al usar un alias, no es necesario que cambie las cadenas de conexión. Solo pueden agregarse nuevos espacios de nombres al emparejamiento de la conmutación por error.

  1. Crear el espacio de nombres de nivel Premium principal.

  2. Crear el espacio de nombres secundario de nivel superior en una región diferente. Este paso es opcional. Puede crear el espacio de nombres secundario mientras crea el emparejamiento en el paso siguiente.

  3. En Azure Portal, vaya al espacio de nombres principal.

  4. Seleccione Recuperación geográfica en el menú de la izquierda e Iniciar el emparejamiento en la barra de herramientas.

    Captura de pantalla que muestra la página Recuperación geográfica con el vínculo Iniciar emparejamiento seleccionado.

  5. En la página Iniciar el emparejamiento, siga estos pasos:

    1. Seleccione un espacio de nombres secundario existente o cree uno en otra región. En este ejemplo, se utiliza un espacio de nombres existente como espacio de nombres secundario.

    2. En Alias, escriba un alias para el emparejamiento de recuperación ante desastres geográfica.

    3. Seleccione Crear.

      Captura de pantalla que muestra la página Iniciar emparejamiento en el Azure Portal.

  6. Debería ver la página de Alias de recuperación ante desastres con localización geográfica de Service Bus, como se muestra en la siguiente imagen. También puede ir a la página Alias Geo-DR desde la página del espacio de nombres principal seleccionando la Recuperación geográfica en el menú de la izquierda.

    Captura de pantalla que muestra la página Alias de recuperación ante desastres geográficas de Service Bus con espacios de nombres principal y secundario.

  7. En la página Geo-DR Alias (Alias de recuperación ante desastres geográfica), seleccione Directivas de acceso compartido para acceder a la cadena de conexión principal del alias. Use esta cadena de conexión en lugar de usar directamente la cadena de conexión al espacio de nombres principal o secundario. Inicialmente, el alias apunta al espacio de nombres principal.

  8. Cámbiese a la página Información general. Puede realizar las siguientes acciones:

    1. Dividir el emparejamiento entre los espacios de nombres principal y secundario. Seleccionar Interrumpir el emparejamiento en la barra de herramientas.
    2. Realizar una conmutar por error de forma manual al espacio de nombres secundario.
      1. Seleccione Conmutación por error en la barra de herramientas.

      2. Escriba su alias para confirmar que desea realizar una conmutación por error al espacio de nombres secundario.

      3. Active la opción Safe Failover (Conmutación por error segura) para realizar una conmutación por error de forma segura al espacio de nombres secundario.

        Nota:

        • La conmutación por error segura garantiza que se completen las replicaciones pendientes de recuperación ante desastres geográficas antes de cambiar a la secundaria. Como alternativa, la conmutación por error forzada o manual no espera a que se completen las replicaciones pendientes antes de cambiar a la secundaria.
        • Actualmente, se produce un error en la conmutación por error segura si los espacios de nombres principal y secundario no están en la misma suscripción de Azure.
      4. Luego, seleccione Failover (Conmutación por error).

        Captura de pantalla que muestra la página de conmutación por error.

        Importante

        La conmutación por error activa el espacio de nombres secundario y quita el espacio de nombres principal del emparejamiento de recuperación ante desastres geográfica. Cree otro espacio de nombres para tener un nuevo par de recuperación ante desastres geográfica.

  9. Por último, debe agregar alguna supervisión para detectar si es necesario realizar una conmutación por error. En la mayoría de los casos, el servicio forma parte de un ecosistema mayor, por lo que 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.

Service Bus Estándar a Prémium

Si ha migrado el espacio de nombres del plan Estándar de Azure Service Bus al Prémium, debe usar el alias existente (es decir, la cadena de conexión del espacio de nombres del plan Estándar de Service Bus) para crear la configuración de recuperación ante desastres a través de la PS/CLI o la API de REST.

Eso se debe a que, durante la migración, el nombre de DNS o la cadena de conexión del espacio de nombres del plan Estándar de Azure Service Bus se convierte automáticamente en un alias para el espacio de nombres de Azure Service Bus Prémium.

Las aplicaciones cliente deben utilizar este alias (es decir, la cadena de conexión de espacio de nombres del plan Estándar de Azure Service Bus) para conectarse al espacio de nombres Prémium en el que se ha configurado el emparejamiento de la recuperación ante desastres.

Si usa Azure Portal para configurar la recuperación ante desastres, el portal le evita esta advertencia.

Flujo de conmutación por error

El cliente (y nunca Azure) es el que desencadena manualmente una conmutación por error (ya sea explícitamente mediante un comando o mediante una lógica de negocios propiedad del cliente que desencadena el comando). Esto otorga al cliente una propiedad y visibilidad total para la resolución de interrupciones en la red troncal de Azure.

Imagen que muestra el flujo de conmutación por error del espacio de nombres principal al secundario.

Después de que se desencadena la conmutación por error:

  1. La cadena de conexión del alias se actualiza para que apunte al espacio de nombres Premium secundario.

  2. Los clientes (remitentes y receptores) se conectan automáticamente al espacio de nombres secundario.

  3. Se ha roto el emparejamiento existente entre el espacio de nombres prémium principal y el secundario.

Una vez que se inicia la conmutación por error:

  1. En caso de otra interrupción, tiene que poder volver a realizar la conmutación por error. Por lo tanto, configure otro espacio de nombres secundario y actualice el emparejamiento.

  2. Extraiga mensajes del anterior espacio de nombres primario una vez que vuelva a estar disponible. Después, use ese espacio de nombres para la mensajería normal fuera de la configuración de recuperación ante desastres geográfica o elimine el espacio de nombres principal anterior.

Nota:

Se admite solo la semántica de conmutación de reenvío. En este escenario, se realiza la conmutación por error y, a continuación, se vuelve a emparejar con un nuevo espacio de nombres. No se admite la conmutación por recuperación; por ejemplo, como en un clúster de SQL.

Puede automatizar la conmutación por error con la supervisión de sistemas, o con soluciones de supervisión personalizadas. Sin embargo, dicha automatización necesita planeamiento y trabajo extra que se encuentran fuera del ámbito de este artículo.

Imagen que muestra cómo puede automatizar la conmutación por error.

Administración

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. Si desea usar los espacios de nombres emparejados como espacios de nombres normales, elimine el alias.

Uso de espacio de nombres existente como alias

En aquellos escenarios en los que no se puedan cambiar las conexiones de productores y consumidores, puede reutilizar el nombre del espacio de nombres como nombre de alias. Consulte el código de ejemplo en GitHub aquí.

Ejemplos

Los ejemplos en GitHub muestran cómo configurar e iniciar una conmutación por error. Estos ejemplos demuestran los conceptos siguientes:

  • Ejemplo y configuración de .NET que son necesarios en Microsoft Entra ID para usar Azure Resource Manager con Service Bus, para configurar y habilitar la recuperación ante desastres geográfica.
  • Pasos necesarios para ejecutar el código de ejemplo.
  • Uso de un espacio de nombres existente como un alias.
  • Pasos para habilitar la recuperación ante desastres geográficas mediante PowerShell o la CLI.
  • Envío y recepción desde el espacio de nombres principal o secundario actual usando el alias.

Consideraciones

Tenga en cuenta y recuerde las siguientes consideraciones para esta versión:

  • En el planeamiento de la conmutación por error, también debe considerar el factor de tiempo. Por ejemplo, si se pierde la conectividad durante más de 15 a 20 minutos, puede decidir iniciar la conmutación por error.
  • El hecho de que no se replican datos significa que las sesiones activas en la actualidad no se replican. Además, la detección de duplicados y los mensajes programados podrían no funcionar. Sí funcionarán las nuevas sesiones, los nuevos mensajes programados y los nuevos duplicados.
  • Conmutar por error una compleja infraestructura distribuida debe ensayarse al menos una vez.
  • La sincronización de entidades puede tardar algún tiempo, aproximadamente 50-100 entidades por minuto. Las suscripciones y reglas también cuentan como entidades.

Puntos de conexión privados

En esta sección se proporcionan más consideraciones al usar la recuperación ante desastres geográfica con espacios de nombres que usan puntos de conexión privados. Para obtener información sobre el uso de puntos de conexión privados con Service Bus en general, consulte Integración de Azure Service Bus con Azure Private Link.

Nuevos emparejamientos

Si intenta crear un emparejamiento entre un espacio de nombres principal con un punto de conexión privado y un espacio de nombres secundario sin él, se producirá un error. El emparejamiento solo tendrá éxito si los espacios de nombres principal y secundario tienen puntos de conexión privados. Se recomienda utilizar las mismas configuraciones en los espacios de nombres principal y secundario y en las redes virtuales en las que se creen los puntos de conexión privados.

Nota

Al intentar emparejar el espacio de nombres principal con un punto de conexión privado y el espacio de nombres secundario, el proceso de validación solo comprueba si existe un punto de conexión privado en el espacio de nombres secundario. No se comprueba si el punto de conexión funciona ahora o funciona después de la conmutación por error. Es su responsabilidad asegurarse de que el espacio de nombres secundario con el punto de conexión privado funcione según lo esperado después de la conmutación por error.

Para probar que las configuraciones del punto de conexión privado son iguales, envíe una solicitud Get queues al espacio de nombres secundario desde fuera de la red virtual y compruebe que recibe un mensaje de error del servicio.

Emparejamientos existentes

Si ya existe un emparejamiento entre el espacio de nombres principal y el secundario, se producirá un error en la creación del punto de conexión privado en el espacio de nombres principal. Para resolverlo, cree primero un punto de conexión privado en el espacio de nombres secundario y, a continuación, cree uno para el espacio de nombres primario.

Nota

Aunque se permite el acceso de solo lectura al espacio de nombres secundario, no se permiten las actualizaciones de las configuraciones de punto de conexión privado.

Al crear una configuración de recuperación ante desastres para la aplicación y Service Bus, debe crear puntos de conexión privados para los espacios de nombres de Service Bus principal y secundario en las redes virtuales que hospeden las instancias principales y secundarias de la aplicación.

Supongamos que tiene dos redes virtuales: VNET-1, VNET-2 y estos espacios de nombres principal y secundario: ServiceBus-Namespace1-Primary, ServiceBus-Namespace2-Secondary. Debe seguir estos pasos:

  • En ServiceBus-Namespace1-Primary, cree dos puntos de conexión privados que usen subredes de VNET-1 y VNET-2.
  • En ServiceBus-Namespace2-Secondary, cree dos puntos de conexión privados que usen las mismas subredes de VNET-1 y VNET-2.

Puntos de conexión privados y redes virtuales

La ventaja de este enfoque es que la conmutación por error puede producirse en el nivel de aplicación independiente del espacio de nombres de Service Bus. Considere los casos siguientes:

Conmutación por error solo de aplicaciones: aquí, la aplicación no existe en VNET-1, sino que se mueve a VNET-2. Como ambos puntos de conexión privados están configurados tanto en VNET-1 como en VNET-2 para los espacios de nombres principal y secundario, la aplicación simplemente funciona.

Conmutación por error solo del espacio de nombres de Service Bus: en este caso, dado que los dos puntos de conexión privados están configurados en ambas redes virtuales para los espacios de nombres principal y secundario, la aplicación simplemente funciona.

Nota:

Para obtener instrucciones sobre la recuperación ante desastres geográfica de una red virtual, vea Virtual Network - Business Continuity.

Control de acceso basado en rol

Las asignaciones de control de acceso basado en rol (RBAC) de Microsoft Entra a entidades de Service Bus en el espacio de nombres principal no se replican en el espacio de nombres secundario. Cree asignaciones de roles manualmente en el espacio de nombres secundario para proteger el acceso a estas.

Pasos siguientes

  • Consulte la referencia de la API de REST de recuperación ante desastres geográfica aquí.
  • Ejecute el ejemplo de recuperación ante desastres geográfica en GitHub.
  • Vea el ejemplo de recuperación ante desastres geográfica que envía mensajes a un alias.

Para más información sobre la mensajería de Service Bus, consulte los siguientes artículos: