Ripristino di emergenza geografico per il bus di servizio di Azure

La funzionalità di ripristino di emergenza geografico per il bus di servizio è una delle opzioni per isolare le applicazioni del bus di servizio di Azure da interruzioni e emergenze e mira principalmente a mantenere l'integrità della configurazione delle applicazioni composite.

Nota

Questa funzionalità è disponibile per il livello Premium del bus di servizio di Azure.

La funzionalità di ripristino di emergenza geografico garantisce che l'intera configurazione di uno spazio dei nomi (entità, configurazione, proprietà) viene replicata continuamente da uno spazio dei nomi primario allo spazio dei nomi secondario a cui è associato, e consente di avviare uno spostamento di failover una tantum dall'area primaria a quella secondaria in qualsiasi momento. Lo spostamento di failover modifica il puntamento del nome alias scelto per lo spazio dei nomi indirizzandolo allo spazio dei nomi secondario e quindi interromperà l'associazione. Una volta avviato, il failover è pressoché istantaneo.

Elementi importanti da considerare

  • La funzionalità consente la continuità immediata delle operazioni con la stessa configurazione, ma non replica i messaggi contenuti in code o sottoscrizioni di argomenti o code di messaggi non recapitabili. Per mantenere la semantica della coda, tale replica richiede non solo la replica dei dati dei messaggi, ma di ogni modifica dello stato nel broker, disponibile nella funzionalità Replica geografica (anteprima pubblica).
  • Le assegnazioni del controllo degli accessi in base al ruolo di Microsoft Entra a entità del bus di servizio nello spazio dei nomi primario non vengono replicate nello spazio dei nomi secondario. Creare manualmente assegnazioni di ruolo nello spazio dei nomi secondario per accedervi.
  • Le configurazioni seguenti non vengono replicate.
    • Configurazioni delle reti virtuali
    • Connessioni a endpoint privato
    • Accesso a tutte le reti abilitato
    • Accesso ai servizi attendibili abilitato
    • Accesso alla rete pubblica
    • Azione di rete predefinita
    • Identità e impostazioni di crittografia (crittografia della chiave gestita dal cliente o crittografia Bring Your Own Key, "BYOK")
    • Abilitare la scalabilità automatica
    • Disabilita autenticazione locale
    • Sottoscrizioni di Griglia di eventi di Azure
  • L'associazione di uno spazio dei nomi partizionato a uno spazio dei nomi non partizionato non è supportata.
  • Se per un'entità è abilitata l'opzione AutoDeleteOnIdle, l'entità potrebbe non essere presente nello spazio dei nomi secondario quando si verifica il failover. Quando lo spazio dei nomi secondario diventa primario, l'ultimo stato di accesso, che non fa parte dei metadati, non sarà disponibile per il nuovo spazio dei nomi primario e l'entità potrebbe essere eliminata come parte della pulizia di AutoDeleteOnIdle.

Suggerimento

Per replicare il contenuto delle code e delle sottoscrizioni di argomenti e degli spazi dei nomi corrispondenti nelle configurazioni attiva/attiva per gestire interruzioni e emergenze, non è consigliabile usare questo set di funzionalità di ripristino di emergenza geografico, ma usare la funzionalità Replica geografica o seguire le indicazioni per la replica.

Concetti e terminologia di base

La funzionalità di ripristino di emergenza implementa il ripristino di emergenza dei metadati e si basa sugli spazi dei nomi primari e secondari di ripristino di emergenza. La funzionalità di ripristino di emergenza geografico è disponibile solo per il livello Premium. Non è necessario apportare modifiche alla stringa di connessione, perché la connessione viene effettuata tramite un alias.

In questo articolo viene usata la terminologia seguente:

  • Alias: nome per una configurazione di ripristino di emergenza impostata. L'alias fornisce una singola stringa di connessione FQDN (nome di dominio completo) stabile. Le applicazioni usano questa stringa di connessione alias per connettersi a uno spazio dei nomi. L'uso di un alias garantisce che la stringa di connessione rimanga invariata quando viene attivato il failover.

  • Spazio dei nomi primario/secondario: spazi dei nomi corrispondenti all'alias. Lo spazio dei nomi primario è "attivo" e riceve i messaggi (può essere uno spazio dei nomi esistente o nuovo). Lo spazio dei nomi secondario è "passivo" e non riceve messaggi. I metadati vengono sincronizzati tra entrambi gli spazi dei nomi, quindi entrambi possono facilmente accettare messaggi senza modifiche al codice dell'applicazione o alla stringa di connessione. Per fare in modo che solo lo spazio dei nomi attivo riceva i messaggi, è necessario usare l'alias.

  • Metadati: entità come code, argomenti e sottoscrizioni e le relative proprietà del servizio associate allo spazio dei nomi. Solo le entità e le relative impostazioni vengono replicate automaticamente. I messaggi non vengono replicati.

  • Failover: processo di attivazione dello spazio dei nomi secondario.

Attrezzaggio

Di seguito viene fornita una panoramica della procedura di configurazione dell'associazione tra gli spazi dei nomi.

Screenshot della schermata relativa alla configurazione dell'associazione con il ripristino di emergenza geografico.

È prima di tutto necessario creare uno spazio dei nomi primario o usarne uno esistente e creare un nuovo spazio dei nomi secondario, quindi associare i due spazi dei nomi. L'associazione fornisce un alias che può essere usato per la connessione. Poiché si usa un alias, non è necessario modificare le stringhe di connessione. È possibile aggiungere solo nuovi spazi dei nomi all'associazione di failover.

  1. Creare lo spazio dei nomi primario di livello Premium.

  2. Creare lo spazio dei nomi secondario di livello Premium in un'area diversa. Questo passaggio è facoltativo. È possibile creare lo spazio dei nomi secondario durante la creazione dell'associazione nel passaggio successivo.

  3. Nel portale di Azure, passare allo spazio dei nomi primario.

  4. Selezionare Ripristino geografico nel menu a sinistra, quindi Avvia associazione nella barra degli strumenti.

    Screenshot che mostra la pagina Ripristino geografico con il collegamento Avvia associazione selezionato.

  5. Alla pagina Avvia associazione, seguire questi passaggi:

    1. Selezionare uno spazio dei nomi secondario o crearne uno in un'area diversa. In questo esempio viene usato uno spazio dei nomi esistente come spazio dei nomi secondario.

    2. Per Alias, immettere un alias per l'associazione del ripristino di emergenza geografico.

    3. Quindi, selezionare Crea.

      Screenshot che mostra la pagina Avvia associazione nel portale di Azure.

  6. Verrà visualizzata la pagina Alias ripristino di emergenza geografico del bus di servizio, come illustrato nell'immagine seguente. È anche possibile passare alla pagina Alias ripristino di emergenza geografico dalla pagina dello spazio dei nomi primario selezionando Ripristino geografico nel menu a sinistra.

    Screenshot che mostra la pagina Alias ripristino di emergenza geografico del bus di servizio con gli spazi dei nomi primario e secondario.

  7. Alla pagina Alias ripristino di emergenza geografico, selezionare Criteri di accesso condiviso nel menu di sinistra per accedere alla stringa di connessione primaria per l'alias. Usare questa stringa di connessione al posto della stringa di connessione diretta allo spazio dei nomi primario/secondario. Inizialmente, l'alias fa riferimento allo spazio dei nomi primario.

  8. Passare alla pagina Panoramica. È possibile effettuare le seguenti operazioni:

    1. Interrompere l'associazione tra gli spazi dei nomi primario e secondario. Selezionare Interrompi associazione nella barra degli strumenti.
    2. Effettuare manualmente il failover allo spazio dei nomi secondario.
      1. Selezionare Failover nella barra degli strumenti.

      2. Confermare di voler eseguire il failover nello spazio dei nomi secondario digitando l'alias.

      3. Attivare l'opzione Failover sicuro per eseguire il failover sicuro nello spazio dei nomi secondario.

        Nota

        • Il failover sicuro assicura che le repliche di ripristino di emergenza geografico in sospeso vengano completate prima di passare allo spazio dei nomi secondario. In alternativa, il failover forzato o manuale non attende il completamento delle repliche in sospeso prima di passare allo spazio dei nomi secondario.
        • Attualmente, il failover sicuro ha esito negativo se gli spazi dei nomi primario e secondario non si trovano nella stessa sottoscrizione di Azure.
      4. Selezionare quindi Failover.

        Screenshot che mostra la pagina Failover.

        Importante

        Il failover attiva lo spazio dei nomi secondario e rimuove lo spazio dei nomi primario dall'associazione di ripristino di emergenza geografico. Creare un altro spazio dei nomi per avere una nuova coppia per il ripristino di emergenza geografico.

  9. Infine, è necessario aggiungere funzionalità di monitoraggio per rilevare i casi in cui è necessario un failover. Nella maggior parte dei casi, il servizio fa parte di un ecosistema di grandi dimensioni, quindi i failover automatici sono raramente possibili, in quanto spesso i failover devono essere eseguiti in modo sincronizzato con il sottosistema o l'infrastruttura rimanente.

Bus di servizio: dal livello Standard a Premium

Se è stata eseguita la migrazione dello spazio dei nomi Standard del bus di servizio di Azure al livello Premium del bus di servizio di Azure, è necessario usare l'alias preesistente (ad esempio la stringa di connessione dello spazio dei nomi Standard del bus di servizio) per creare la configurazione del ripristino di emergenza tramite PowerShell o l'interfaccia della riga di comando o l'API REST.

Questo perché, durante la migrazione, la stringa di connessione dello spazio dei nomi Standard del bus di servizio di Azure o il nome DNS stesso diventa un alias dello spazio dei nomi Premium del bus di servizio di Azure.

Le applicazioni client devono usare questo alias (ad esempio la stringa di connessione dello spazio dei nomi Standard del bus di servizio di Azure) per connettersi allo spazio dei nomi Premium in cui è stata configurata l'associazione del ripristino di emergenza.

Se per configurare il ripristino di emergenza si usa il portale di Azure, questa operazione è gestita automaticamente.

Flusso del failover

Un failover viene attivato manualmente dal cliente (sia in modo esplicito con un comando o tramite la logica di business di proprietà del client che attiva il comando) e mai da Azure. Questo garantisce al cliente la proprietà completa e la visibilità per la risoluzione delle interruzioni sulla rete backbone di Azure.

Immagine che mostra il flusso di failover dallo spazio dei nomi primario a quello secondario.

In seguito all'attivazione del failover:

  1. La stringa di connessione alias viene aggiornata in modo che faccia riferimento allo spazio dei nomi Premium secondario.

  2. I client (mittenti e ricevitori) si connettono automaticamente allo spazio dei nomi secondario.

  3. L'associazione esistente tra lo spazio dei nomi Premium primario e quello secondario viene interrotta.

Dopo aver avviato il failover:

  1. È necessario poter eseguire di nuovo il failover nel caso in cui si verifichi un'altra interruzione. Configurare quindi un altro spazio dei nomi secondario e aggiornare l'associazione.

  2. Eseguire il pull dei messaggi dallo spazio dei nomi primario precedente quando è di nuovo disponibile. Successivamente, usare tale spazio dei nomi per la messaggistica normale all'esterno della configurazione del ripristino di emergenza geografico oppure eliminare lo spazio dei nomi primario precedente.

Nota

È supportata solo la semantica di inoltro in caso di errore. In questo scenario, si esegue il failover e quindi si esegue di nuovo l'associazione con un nuovo spazio dei nomi. Il failback, come in un cluster SQL, non è supportato.

È possibile automatizzare il failover con sistemi di monitoraggio o con soluzioni di monitoraggio personalizzate. Tale automazione, tuttavia, richiede pianificazione e lavoro aggiuntivi che esulano dall'ambito di questo articolo.

Immagine che mostra come automatizzare il failover.

Gestione

Se si commette un errore, ad esempio se sono state associate le aree non corrette durante la configurazione iniziale, è possibile interrompere l'associazione dei due spazi dei nomi in qualsiasi momento. Per usare gli spazi dei nomi associati come normali spazi dei nomi, eliminare l'alias.

Usare lo spazio dei nomi esistente come alias

Se si ha uno scenario in cui non è possibile modificare le connessioni di producer e consumer, è possibile riutilizzare il nome dello spazio dei nomi come nome dell'alias. Vedere il codice di esempio su GitHub qui.

Esempi

Gli esempi su GitHub mostrano come configurare e avviare un failover. Questi esempi illustrano i concetti seguenti:

  • Un esempio .NET e le impostazioni necessarie in Microsoft Entra ID per usare Azure Resource Manager con il bus di servizio per configurare e abilitare il ripristino di emergenza geografico.
  • Passaggi necessari per eseguire il codice di esempio.
  • Modalità di utilizzo di uno spazio dei nomi esistente come alias.
  • Procedure per abilitare alternativamente il ripristino di emergenza geografico tramite PowerShell o l'interfaccia della riga di comando.
  • L'invio e la ricezione dallo spazio dei nomi primario o secondario corrente tramite l'alias.

Considerazioni

Tenere presente le considerazioni seguenti per questa versione:

  • Quando si pianifica il failover, è consigliabile considerare anche il fattore tempo. Ad esempio, se si perde la connettività per più di 15-20 minuti, è possibile decidere di avviare il failover.
  • Il fatto che non vengano replicati dati significa che le sessioni attive non vengono replicate. Il rilevamento dei duplicati e i messaggi pianificati potrebbero inoltre non funzionare. Le nuove sessioni, i nuovi messaggi pianificati e i nuovi duplicati funzioneranno.
  • È necessario provare a effettuare il failover di un'infrastruttura distribuita complessa almeno una volta.
  • La sincronizzazione delle entità può richiedere tempo, circa un minuto per 50-100 entità. Anche le sottoscrizioni e le regole contano come entità.

Endpoint privati

Questa sezione presenta altre considerazioni sull'uso del ripristino di emergenza geografico con spazi dei nomi che usano endpoint privati. Per informazioni sull'uso di endpoint privati con il bus di servizio in generale, vedere Integrare il bus di servizio di Azure con Collegamento privato di Azure.

Nuove associazioni

Se si tenta di creare un'associazione tra uno spazio dei nomi primario con un endpoint privato e uno spazio dei nomi secondario senza un endpoint privato, l'associazione ha esito negativo. L'associazione avrà esito positivo solo se entrambi gli spazi dei nomi, primario e secondario, hanno endpoint privati. È consigliabile usare le stesse configurazioni per gli spazi dei nomi primario e secondario e per le reti virtuali in cui sono stati creati gli endpoint privati.

Nota

Quando si tenta di associare lo spazio dei nomi primario con un endpoint privato e lo spazio dei nomi secondario, il processo di convalida controlla solo se esiste un endpoint privato nello spazio dei nomi secondario. Non controlla se l'endpoint funziona o se funzionerà dopo il failover. È responsabilità dell'utente assicurarsi che lo spazio dei nomi secondario con endpoint privato funzioni come previsto dopo il failover.

Per verificare che le configurazioni degli endpoint privati siano uguali, inviare una richiesta Get queues allo spazio dei nomi secondario dall'esterno della rete virtuale e verificare che si riceva un messaggio di errore dal servizio.

Associazioni esistenti

Se l'associazione tra uno spazio dei nomi primario e uno secondario esiste già, la creazione di endpoint privati nello spazio dei nomi primario ha esito negativo. Per risolvere il problema, creare prima un endpoint privato nello spazio dei nomi secondario e quindi crearne uno per lo spazio dei nomi primario.

Nota

Mentre l'accesso allo spazio dei nomi secondario è consentito in sola lettura, è possibile eseguire aggiornamenti nelle configurazioni degli endpoint privati.

Quando si crea una configurazione di ripristino di emergenza per l'applicazione e il bus di servizio, è necessario creare endpoint privati per entrambi gli spazi dei nomi, primario e secondario, del bus di servizio nelle reti virtuali che ospitano entrambe le istanze, primaria e secondaria, dell'applicazione.

Si supponga di avere due reti virtuali: VNET-1, VNET-2 e questi spazi dei nomi primario e secondario: ServiceBus-Namespace1-Primary, ServiceBus-Namespace2-Secondary. È necessario eseguire la procedura seguente:

  • In ServiceBus-Namespace1-Primary creare due endpoint privati che usano subnet di VNET-1 e VNET-2
  • In ServiceBus-Namespace2-Secondary creare due endpoint privati che usano le stesse subnet di VNET-1 e VNET-2

Endpoint privati e reti virtuali

Il vantaggio di questo approccio è che il failover può verificarsi a livello di applicazione indipendentemente dallo spazio dei nomi del bus di servizio. Si considerino gli scenari seguenti:

Failover della sola applicazione: qui, l'applicazione non esiste in VNET-1 ma viene spostata in VNET-2. Poiché entrambi gli endpoint privati sono configurati sia in VNET-1 che VNET-2 per entrambi gli spazi dei nomi primario e secondario, l'applicazione funzionerà.

Failover del solo spazio dei nomi del bus di servizio: anche in questo caso, poiché entrambi gli endpoint privati sono configurati in entrambe le reti virtuali per entrambi gli spazi dei nomi primario e secondario, l'applicazione funzionerà.

Nota

Per indicazioni sul ripristino di emergenza geografico di una rete virtuale, vedere Rete virtuale - Continuità aziendale.

Controllo degli accessi in base al ruolo

Le assegnazioni del controllo degli accessi in base al ruolo di Microsoft Entra a entità del bus di servizio nello spazio dei nomi primario non vengono replicate nello spazio dei nomi secondario. Creare manualmente assegnazioni di ruolo nello spazio dei nomi secondario per accedervi.

Passaggi successivi

Per altre informazioni sulla messaggistica del bus di servizio, vedere gli articoli seguenti: