Progettare un'architettura di rete distribuita a livello geografico

Completato

In un'app distribuita è essenziale garantire che i componenti possano comunicare in modo affidabile e che le richieste possano essere instradate in un'area o a un componente diverso in caso di errore.

Si è deciso di riprogettare il portale di spedizione in Azure per ridurre la vulnerabilità agli errori a livello di area. L'obiettivo è garantire che quando l'area primaria non è disponibile venga eseguito il failover dell'applicazione ai componenti in un'area secondaria. Il failover deve causare un'interruzione minima nella distribuzione del servizio agli utenti.

Questa unità illustra il modo in cui i servizi DNS di Azure, Gestione traffico, Frontdoor e Rete CDN di Azure supportano l'architettura dell'app della società di spedizione.

A diagram showing multi-region distributed application networking components.

DNS Azure

Come illustrato in precedenza, non sono necessarie modifiche per l'implementazione di DNS di Azure. Il servizio DNS di Azure viene usato per ospitare i record dei nomi di dominio che identificano l'app.

DNS di Azure fornisce la risoluzione dei nomi interamente tramite l'infrastruttura di Azure. Questo servizio offre supporto intrinseco per più aree e non è quindi necessario modificare la configurazione del servizio DNS di Azure esistente per supportare la funzionalità nella nuova progettazione dell'architettura.

Il contratto di servizio di DNS di Azure garantisce inoltre che le richieste DNS valide riceveranno una risposta da almeno uno dei server dei nomi DNS di Azure il 100% delle volte.

Scegliere un router del traffico

È necessario un servizio in grado di bilanciare il carico e reindirizzare il traffico tra più aree con applicazioni Web distribuite.

Azure offre diversi servizi che consentono di instradare il traffico tra i componenti front-end. Come visto in precedenza, è necessario sostituire il gateway applicazione di Azure perché è associato a una singola area. In caso di errore in tale area, non viene eseguito l'instradamento.

In Azure sono disponibili due router del traffico in grado di eseguire il routing globale tra più aree e che non sono vulnerabili a un'interruzione in una singola area:

  • Gestione traffico di Azure
  • Frontdoor di Azure

Questi servizi verranno esaminati in modo più dettagliato per poter scegliere il router appropriato per l'applicazione.

Che cos'è Gestione traffico di Azure?

Gestione traffico di Azure è un servizio di bilanciamento del carico globale che usa i record DNS per instradare il traffico alle destinazioni in più aree di Azure.

È possibile configurare Gestione traffico per instradare tutte le richieste all'area primaria e monitorare la velocità di risposta del servizio app in tale area. In caso di errore del servizio app nell'area primaria, Gestione traffico reindirizza automaticamente le richieste degli utenti al servizio app nell'area secondaria. Questo reindirizzamento esegue il failover che garantisce il servizio continuo. In questo caso si parla di modalità di routing con priorità.

Poiché Gestione traffico usa il sistema DNS per instradare il traffico, viene instradato qualsiasi protocollo, non solo il traffico HTTP. Gestione traffico, tuttavia, non è in grado di instradare o filtrare il traffico in base a proprietà HTTP, ad esempio identificativi dei paesi dei client o intestazioni agente-utente. Non è inoltre in grado di eseguire la terminazione del protocollo TLS (Transport Layer Security), in cui il router decrittografa le richieste e crittografa le risposte per alleggerire il carico dei server virtuali del servizio app. Se una di queste funzionalità è necessaria, occorre usare il servizio Frontdoor di Azure.

Gestione traffico offre ampie possibilità di configurazione per il monitoraggio degli endpoint. È ad esempio possibile definire il protocollo, la porta, il percorso, le impostazioni dell'intestazione personalizzata, gli intervalli di codici di stato previsti e il numero di errori tollerati. Il monitoraggio degli endpoint offre un'idea continua dello stato di integrità generale di tutte le parti dell'applicazione.

Azure Traffic Manager priority mode.

Che cos'è Frontdoor di Azure?

Analogamente a Gestione traffico, Frontdoor di Azure è un servizio di bilanciamento del carico globale. A differenza di Gestione traffico, funziona a livello di applicazione di rete, il livello 7, e usa le proprietà HTTP e HTTPS per eseguire operazioni di filtro e routing.

Con Frontdoor è possibile eseguire molti tipi di routing non supportati da Gestione traffico. È ad esempio possibile instradare il traffico in base all'identificativo del paese del browser. Frontdoor supporta anche la terminazione del protocollo TLS.

C'è tuttavia un'eccezione. Se si vuole instradare il traffico per qualsiasi protocollo diverso da HTTP e HTTPS, è necessario usare Gestione traffico.

Frontdoor consente di assegnare le priorità ai vari back-end che costituiscono il portale di monitoraggio. Queste priorità consentono a Frontdoor di instradare le richieste in base alle esigenze. Ai servizi dell'area primaria viene assegnata una priorità più alta e al servizio dell'area secondaria una priorità più bassa.

Frontdoor implementa i probe di integrità per monitorare lo stato di integrità dei servizi e, in caso di errore, può instradare il traffico correttamente. La modalità di routing con priorità e il monitoraggio degli endpoint in Frontdoor sono simili alle funzionalità in Gestione traffico, ad eccezione del fatto che i probe di integrità funzionano sempre tramite HTTP.

Tutto il traffico per l'interfaccia utente Web del portale di spedizione e per le relative API viene trasmesso tramite HTTPS e ciò consente di passare da Gestione traffico di Azure a Frontdoor. Si configura anche Frontdoor con l'assegnazione di back-end prioritari.

Rete CDN di Azure

Nell'architettura a singola area è stato usato il servizio Rete CDN di Azure per memorizzare nella cache il contenuto statico di Archiviazione BLOB di Azure. Il servizio Rete CDN di Azure è una rete globale di server che memorizza il contenuto statico nella cache vicino agli utenti. Non è necessario modificare questo servizio per l'architettura in più aree. Sono tuttavia necessarie alcune considerazioni relative all'account di archiviazione di Azure, che verranno illustrate nella prossima unità.

Verificare le conoscenze

1.

Quando è necessario eseguire un failover completo in un'altra area?

2.

Qual è il contratto di servizio per DNS di Azure?