Diventare globali
- 3 minuti
Nell'unità precedente è stato descritto come dimensionare le risorse di calcolo e incrementarne la disponibilità nel processo. Abbiamo anche suggerito di aggiungere Azure Managed Redis per migliorare le prestazioni e scalare i database Azure SQL tramite il partizionamento orizzontale.
In considerazione della crescita aziendale, il passaggio successivo potrebbe essere quello di diventare globale. Prima di provare a implementare un'architettura completamente globale, è opportuno valutare alcune implicazioni.
Domande da porsi
La prima domanda è: È davvero necessario diventare globali?
Prima di imbarcarsi in questa impresa, è importante conoscere la situazione dei clienti. È quindi utile porsi alcune domande:
- È possibile usare una rete per la distribuzione di contenuti per avvicinare i contenuti agli utenti?
- È davvero utile dimensionare questo sistema specifico in due o più aree geografiche? Ad esempio, un utente nel Stati Uniti deve avere lo stesso account nel Regno Unito? Non sarebbe meglio adottare sistemi indipendenti? Si tratta di un modello comune nell'e-commerce.
- Se si ritiene che un sistema distribuito a livello globale sia realmente utile, quale tipo di coerenza è necessario per il database? La coerenza assoluta in tutto il mondo è difficile da ottenere correttamente. I servizi come Cosmos DB supportano una coerenza assoluta nelle configurazioni in più aree, ma offre compromessi significativi, tra cui una latenza più elevata, una disponibilità ridotta durante le interruzioni a livello di area e un aumento del consumo di UR per ogni operazione.
Coerenza dei dati
Esaminiamo più in dettaglio il problema della coerenza dei dati.
Nel calcolo distribuito, la coerenza si riferisce a quanto aggiornati e uniforme siano i dati tra tutte le repliche di un sistema. Esistono due modelli di coerenza principali.
La coerenza assoluta offre una garanzia di linearizzabilità. Le letture garantiscono la restituzione della versione più recente e confermata di un elemento.
Un altro tipo è la coerenza finale che si basa sul concetto che un database o un sistema alla fine diventi coerente col passare del tempo. Non prevede alcuna garanzia di ordinamento per le operazioni di lettura. In assenza di ulteriori operazioni di scrittura, le repliche alla fine convergeranno.
I servizi come Cosmos DB offrono anche modelli di coerenza intermedia, ad esempio decadimento ristretto, sessione e prefisso coerente, che offrono bilanciamenti diversi tra prestazioni e aggiornamento dei dati.
Strumenti per diventare globali
Se si ritiene che sia effettivamente necessario ridimensionare l'applicazione a livello globale, sono disponibili alcuni servizi Azure che consentono di ottenere questo risultato. Esaminiamo Gestione traffico di Azure e Frontdoor di Azure:
- Gestione traffico di Azure è un servizio di bilanciamento del carico basato su DNS globale. Usa probe di integrità e DNS per indirizzare gli utenti al miglior back-end integro in base ai criteri di routing definiti. Questo routing può essere basato su prestazioni, posizione, round robin e così via. Dopo aver identificato un back-end integro, i client si connetteranno sempre al back-end direttamente.
- Frontdoor di Azure è una rete CDN cloud moderna e un servizio di bilanciamento del carico globale, che offre varie funzionalità di bilanciamento del carico di livello 7 per le applicazioni. Offre funzionalità di accelerazione sito dinamico, nonché di bilanciamento del carico globale con failover near real-time. Si tratta di un servizio a disponibilità elevata e scalabile, completamente gestito da Azure.
Frontdoor di Azure è fondamentalmente un servizio di bilanciamento del carico basato su HTTP globale. Il client stabilisce una connessione con Frontdoor, di conseguenza è Frontdoor a inoltrare tramite proxy la richiesta dell'utente. Se l'elemento richiesto non si trova nella cache, viene identificata la regola di gestione corretta. Controlla quindi la sonda di integrità del back-end pertinente e, presupponendo che tutto sia integro, inoltra la richiesta dell'utente al miglior back-end in base al metodo di routing.
Poiché Frontdoor di Azure funge da proxy per la connessione, è possibile utilizzare funzioni avanzate come l'esecuzione di un firewall per applicazioni web e la memorizzazione nella cache, che è utile per il ridimensionamento. Gestione traffico non consente di eseguire nessuna di tali funzioni.
Il diagramma mostra come usare entrambi gli strumenti.
Diagramma completo dell'architettura che mostra sia Frontdoor di Azure che Traffic Manager nella stessa architettura.
In questa configurazione si usa Gestione traffico per il semplice bilanciamento del carico basato su DNS negli asset statici degli account di archiviazione e Frontdoor per il routing basato sul percorso nell'applicazione Web tra servizio app e macchine virtuali.