Condividi tramite


Affidabilità nel servizio di de-identificazione di Servizi dati di integrità di Azure (anteprima)

Questo articolo descrive il supporto dell'affidabilità nel servizio di de-identificazione (anteprima). Per una panoramica più dettagliata dei principi di affidabilità in Azure, vedere affidabilità di Azure.

Ripristino di emergenza tra aree

Il ripristino di emergenza si occupa del ripristino in caso di eventi a impatto elevato, come disastri naturali o distribuzioni non riuscite che comportano tempi di inattività e perdita di dati. Indipendentemente dalla causa, il miglior rimedio per un'emergenza è un piano di ripristino ben definito e testato e una progettazione di applicazioni che supporta attivamente tale ripristino. Prima di iniziare a pensare a un piano di ripristino di emergenza, vedere Raccomandazioni per la progettazione di una strategia di ripristino di emergenza.

Nell'ambito del ripristino di emergenza, Microsoft usa il modello di responsabilità condivisa. In un modello basato sulla responsabilità condivisa, Microsoft garantisce che l'infrastruttura di base e i servizi della piattaforma siano disponibili. Allo stesso tempo, molti servizi di Azure non replicano automaticamente i dati o eseguono il fallback da un'area in cui si è verificato un errore per effettuare la replica incrociata in un'altra area abilitata. Per questi servizi, si è responsabili della configurazione di un piano di ripristino di emergenza che funziona per il carico di lavoro. La maggior parte dei servizi eseguiti nelle offerte PaaS (Piattaforma distribuita come servizio) di Azure forniscono funzionalità e indicazioni per supportare il ripristino di emergenza ed è possibile usare funzionalità specifiche del servizio per supportare il ripristino rapido e sviluppare il piano di ripristino di emergenza.

Ogni servizio di de-identificazione (anteprima) viene distribuito in una singola area di Azure. Se un'intera area non è disponibile o le prestazioni sono notevolmente ridotte:

  • La funzionalità del piano di controllo ARM è limitata alla sola lettura durante l'interruzione. I metadati del servizio, ad esempio le proprietà delle risorse, vengono sempre sottoposti a backup all'esterno dell'area da Microsoft. Al termine dell'interruzione, è possibile leggere e scrivere nel piano di controllo.
  • Tutte le richieste del piano dati hanno esito negativo durante l'interruzione, ad esempio la de-identificazione o le richieste API del processo. Non vengono persi i dati dei clienti, ma è possibile che i metadati di avanzamento del processo vadano persi. Al termine dell'interruzione, è possibile leggere e scrivere nel piano dati.

Esercitazione sul ripristino di emergenza

Se non è disponibile un'intera area di Azure, è comunque possibile garantire la disponibilità elevata dei carichi di lavoro. È possibile distribuire due o più servizi di de-identificazione in una configurazione attiva-attiva, con Frontdoor di Azure usato per instradare il traffico a entrambe le aree.

Con questa architettura di esempio:

  • I servizi di de-identificazione identici vengono distribuiti in due aree separate.
  • Frontdoor di Azure viene usato per instradare il traffico a entrambe le aree.
  • Durante un'emergenza, un'area diventa offline e Frontdoor di Azure instrada il traffico esclusivamente all'altra area. L'obiettivo del tempo di ripristino durante un failover geografico di questo tipo è limitato al tempo impiegato da Frontdoor di Azure per rilevare che un servizio non è integro.

RTO e RPO

Se si adotta la configurazione attiva-attiva, è necessario prevedere un obiettivo del tempo di ripristino (RTO) di 5 minuti. In qualsiasi configurazione, è necessario prevedere un obiettivo del punto di ripristino (RPO) di 0 minuti (nessun dato del cliente andrà perso).

Convalidare il piano di ripristino di emergenza

Prerequisiti

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Per completare questa esercitazione:

Creare un gruppo di risorse

Per questa esercitazione sono necessarie due istanze di un servizio di de-identificazione (anteprima) in aree di Azure diverse. L'esercitazione usa le aree Stati Uniti orientali e Stati Uniti occidentali 2, ma è possibile scegliere le proprie aree.

Per semplificare la gestione e la pulizia, usare un singolo gruppo di risorse per tutte le risorse in questa esercitazione. Prendere in considerazione l'uso di gruppi di risorse separati per ogni area o risorsa per isolare ulteriormente le risorse in una situazione di ripristino di emergenza.

Eseguire il comando seguente per creare il gruppo di risorse.

az group create --name my-deid --location eastus

Creare servizi di de-identificazione (anteprima)

Seguire la procedura descritta in Avvio rapido: Distribuire il servizio di de-identificazione (anteprima) per creare due servizi separati, uno negli Stati Uniti orientali e uno negli Stati Uniti occidentali 2.

Si noti l'URL del servizio di ogni servizio di de-identificazione in modo da poter definire gli indirizzi back-end quando si distribuisce Frontdoor di Azure nel passaggio successivo.

Creare un servizio Frontdoor di Azure

Una distribuzione in più aree può usare una configurazione attiva-attiva o attiva-passiva. Una configurazione attiva-attiva distribuisce le richieste tra più aree attive. Una configurazione attiva-passiva mantiene le istanze in esecuzione nell'area secondaria, ma non invia il traffico a meno che l'area primaria non riesca. Frontdoor di Azure include una funzionalità predefinita che consente di abilitare queste configurazioni. Per altre informazioni sulla progettazione di app per la disponibilità elevata e la tolleranza di errore, vedere Progettare applicazioni di Azure per la resilienza e la disponibilità.

Creare una risorsa Frontdoor di Azure

È ora possibile creare un servizio Frontdoor di Azure Premium per instradare il traffico ai servizi.

Eseguire az afd profile create per creare un profilo frontdoor di Azure.

Nota

Se si vuole distribuire Frontdoor di Azure Standard anziché Premium, sostituire il valore del --sku parametro con Standard_AzureFrontDoor. Non è possibile distribuire regole gestite con criteri WAF se si sceglie il livello Standard. Per un confronto dettagliato dei piani tariffari, vedere Confronto tra i livelli di Frontdoor di Azure.

az afd profile create --profile-name myfrontdoorprofile --resource-group my-deid --sku Premium_AzureFrontDoor
Parametro valore Descrizione
profile-name myfrontdoorprofile Nome del profilo frontdoor di Azure, univoco all'interno del gruppo di risorse.
resource-group my-deid Gruppo di risorse che contiene le risorse di questa esercitazione.
sku Premium_AzureFrontDoor Piano tariffario del profilo frontdoor di Azure.

Aggiungere un endpoint frontdoor di Azure

Eseguire az afd endpoint create per creare un endpoint nel profilo frontdoor di Azure. Questo endpoint instrada le richieste ai servizi. Dopo aver completato questa guida, è possibile creare più endpoint nel profilo.

az afd endpoint create --resource-group my-deid --endpoint-name myendpoint --profile-name myfrontdoorprofile --enabled-state Enabled
Parametro valore Descrizione
endpoint-name myendpoint Nome dell'endpoint nel profilo, univoco a livello globale.
enabled-state Enabled Indica se abilitare questo endpoint.

Creare un gruppo di origine di Frontdoor di Azure

Eseguire az afd origin-group create per creare un gruppo di origine contenente i due servizi di de-identificazione.

az afd origin-group create --resource-group my-deid --origin-group-name myorigingroup --profile-name myfrontdoorprofile --probe-request-type GET --probe-protocol Https --probe-interval-in-seconds 60 --probe-path /health --sample-size 1 --successful-samples-required 1 --additional-latency-in-milliseconds 50 --enable-health-probe
Parametro valore Descrizione
origin-group-name myorigingroup Nome del gruppo di origine.
probe-request-type GET Tipo di richiesta probe di integrità effettuata.
probe-protocol Https Protocollo da usare per il probe di integrità.
probe-interval-in-seconds 60 Il numero di secondi tra probe di integrità.
probe-path /health Percorso relativo all'origine utilizzata per determinare l'integrità dell'origine.
sample-size 1 Il numero di campioni da considerare per le decisioni di bilanciamento del carico.
successful-samples-required 1 Numero di campioni entro il periodo di campionamento che deve avere esito positivo.
additional-latency-in-milliseconds 50 La latenza aggiuntiva in millisecondi per i probe rientra nel bucket di latenza più bassa.
enable-health-probe Passare al controllo dello stato del probe di integrità.

Aggiungere origini al gruppo di origine di Frontdoor di Azure

Eseguire az afd origin create per aggiungere un'origine al gruppo di origine. Per i --host-name parametri e --origin-host-header sostituire il valore <service-url-east-us> segnaposto con l'URL del servizio Stati Uniti orientali, lasciando lo schema (https://). Dovrebbe essere disponibile un valore come abcdefghijk.api.eastus.deid.azure.com.

az afd origin create --resource-group my-deid --host-name <service-url-east-us> --profile-name myfrontdoorprofile --origin-group-name myorigingroup --origin-name deid1 --origin-host-header <service-url-east-us> --priority 1 --weight 1000 --enabled-state Enabled --https-port 443
Parametro valore Descrizione
host-name <service-url-east-us> Nome host del servizio di de-identificazione primario.
origin-name deid1 Nome dell'origine.
origin-host-header <service-url-east-us> Intestazione host da inviare per le richieste a questa origine.
priority 1 Impostare questo parametro su 1 per indirizzare tutto il traffico al servizio di de-identificazione primario.
weight 1000 Peso dell'origine nel gruppo di origine specificato per il bilanciamento del carico. Deve essere compreso tra 1 e 1000.
enabled-state Enabled Indica se abilitare l'origine.
https-port 443 Porta usata per le richieste HTTPS all'origine.

Ripetere questo passaggio per aggiungere la seconda origine. Per i --host-name parametri e --origin-host-header sostituire il valore <service-url-west-us-2> segnaposto con l'URL del servizio Stati Uniti occidentali 2, lasciando lo schema (https://).

az afd origin create --resource-group my-deid --host-name <service-url-west-us-2> --profile-name myfrontdoorprofile --origin-group-name myorigingroup --origin-name deid2 --origin-host-header <service-url-west-us-2> --priority 1 --weight 1000 --enabled-state Enabled --https-port 443

Prestare attenzione ai --priority parametri in entrambi i comandi. Poiché entrambe le origini sono impostate su priorità 1, Frontdoor di Azure considera entrambe le origini come attive e indirizza il traffico a entrambe le aree. Se la priorità per un'origine è impostata su 2, Frontdoor di Azure considera l'origine come secondaria e indirizza tutto il traffico all'altra origine, a meno che non vada inattivo.

Aggiungere una route di Frontdoor di Azure

Eseguire az afd route create per eseguire il mapping dell'endpoint al gruppo di origine. Questa route inoltra le richieste dall'endpoint al gruppo di origine.

az afd route create --resource-group my-deid --profile-name myfrontdoorprofile --endpoint-name myendpoint --forwarding-protocol MatchRequest --route-name route  --origin-group myorigingroup --supported-protocols Https --link-to-default-domain Enabled 
Parametro valore Descrizione
endpoint-name myendpoint Nome dell'endpoint.
forwarding-protocol MatchRequest Protocollo usato da questa regola per l'inoltro del traffico ai back-end.
route-name route Nome della route.
supported-protocols Https Elenco dei protocolli supportati per questa route.
link-to-default-domain Enabled Indica se questa route è collegata al dominio endpoint predefinito.

Attendere circa 15 minuti per il completamento di questo passaggio perché la propagazione globale di questa modifica richiede tempo. Dopo questo periodo, frontdoor di Azure è completamente funzionante.

Testare l'istanza di Frontdoor

Quando si crea il profilo Frontdoor di Azure Standard/Premium, la distribuzione globale della configurazione richiede alcuni minuti. Al termine, è possibile accedere all'host front-end creato.

Eseguire az afd endpoint show per ottenere il nome host dell'endpoint frontdoor. Dovrebbe essere simile a abddefg.azurefd.net

az afd endpoint show --resource-group my-deid --profile-name myfrontdoorprofile --endpoint-name myendpoint --query "hostName"

In un browser passare al nome host dell'endpoint restituito dal comando precedente: <endpoint>.azurefd.net/health. La richiesta dovrebbe essere indirizzata automaticamente al servizio primario di de-identificazione negli Stati Uniti orientali.

Per testare il failover globale istantaneo:

  1. Aprire un browser e passare al nome host dell'endpoint: <endpoint>.azurefd.net/health.

  2. Seguire la procedura descritta in Configurare l'accesso privato per disabilitare l'accesso alla rete pubblica per il servizio di de-identificazione negli Stati Uniti orientali.

  3. Aggiorna il browser. Dovrebbe essere visualizzata la stessa pagina di informazioni perché il traffico viene ora indirizzato al servizio di de-identificazione negli Stati Uniti occidentali 2.

    Suggerimento

    Potrebbe essere necessario aggiornare la pagina alcune volte per il completamento del failover.

  4. Disabilitare ora l'accesso alla rete pubblica per il servizio di de-identificazione negli Stati Uniti occidentali 2.

  5. Aggiorna il browser. Questa volta dovrebbe essere visualizzato un messaggio di errore.

  6. Riabilitare l'accesso alla rete pubblica per uno dei servizi di de-identificazione. Aggiornare il browser e dovrebbe essere visualizzato di nuovo lo stato di integrità.

A questo punto è stato convalidato che è possibile accedere ai servizi tramite Frontdoor di Azure e che il failover funziona come previsto. Abilitare l'accesso alla rete pubblica nell'altro servizio se è stato eseguito il test di failover.

Pulire le risorse

Nei passaggi precedenti sono state create risorse di Azure in un gruppo di risorse. Se non si prevede di usare queste risorse in futuro, eliminare i gruppi di risorse eseguendo questo comando:

az group delete --name my-deid

Il completamento di questo comando potrebbe richiedere alcuni minuti.

Avviare il ripristino

Per controllare lo stato di ripristino del servizio, è possibile inviare richieste a <service-url>/health.