Distribuire i dati a livello globale con Azure Cosmos DB
SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella
Le applicazioni moderne devono garantire velocità di risposta elevate ed essere sempre online. Per ottenere bassa latenza e disponibilità elevata, è necessario che le istanze di queste applicazioni siano distribuite in data center vicini agli utenti. Queste applicazioni vengono in genere distribuite in più data center e vengono definite distribuite a livello globale. Per le applicazioni distribuite a livello globale è necessario un database distribuito a livello globale, che può replicare in modo trasparente i dati ovunque nel mondo per consentire alle applicazioni di operare su una copia dei dati vicina agli utenti.
Azure Cosmos DB è un sistema di database distribuito a livello globale che consente di leggere e scrivere dati dalle repliche locali del database. Azure Cosmos DB replica in modo trasparente i dati in tutte le aree associate all'account Azure Cosmos DB. È progettato per offrire bassa latenza, scalabilità elastica della velocità effettiva, semantica ben definita per la coerenza dei dati e disponibilità elevata. In breve, se l'applicazione richiede tempi di risposta rapidi in qualsiasi punto del mondo, se deve essere sempre online e richiede scalabilità illimitata ed elastica della velocità effettiva e dello spazio di archiviazione, valutare la possibilità di compilare le applicazioni con Azure Cosmos DB.
È possibile configurare i propri database in modo che siano distribuiti a livello globale e disponibili in una delle aree di Azure. Per ridurre la latenza, inserire i dati in un punto più vicino a quello in cui si trovano gli utenti. La scelta delle aree necessarie dipende la portata globale dell'applicazione e dalla posizione degli utenti. Azure Cosmos DB offre un'unica immagine di sistema del database e dei contenitori di Azure Cosmos DB distribuiti a livello globale in cui l'applicazione può leggere e scrivere in locale.
Nota
Gli account serverless per Azure Cosmos DB possono essere eseguiti solo in un'unica area di Azure. Per altre informazioni, vedere uso di risorse serverless.
Con Azure Cosmos DB è possibile aggiungere o rimuovere le aree associate all'account in qualsiasi momento. Non è necessario sospendere l'esecuzione o ridistribuire l'applicazione per aggiungere o rimuovere un'area. Azure Cosmos DB è disponibile in tutti i cinque ambienti cloud distinti di Azure disponibili per i clienti:
Cloud Azure pubblico, disponibile a livello globale.
Microsoft Azure gestito da 21Vianet è disponibile tramite una speciale collaborazione tra Microsoft e 21Vianet, uno dei principali provider Internet del Paese in Cina.
Azure Germania fornisce i servizi sulla base di un modello di trustee per i dati, che assicura che i dati dei clienti rimangano in Germania sotto il controllo di T-Systems International GmbH, una filiale di Deutsche Telekom, che funge da trustee per i dati tedesco.
Azure per enti pubblici è disponibile in quattro aree negli Stati Uniti per enti pubblici degli Stati Uniti e i rispettivi partner.
Azure per enti pubblici per DOD (Department of Defense) è disponibile in due aree negli Stati Uniti per il dipartimento della difesa.
Vantaggi chiave della distribuzione globale
Compilare app globali in modalità attiva-attiva. Con il nuovo protocollo di replica in più aree, ogni area supporta sia scritture che letture. La funzionalità di scrittura in più aree abilita anche:
- Scalabilità elastica illimitata per la scrittura e la lettura.
- Disponibilità in lettura e scrittura pari al 99,999% in tutto il mondo.
- Letture e scritture gestite in meno di 10 millisecondi nel 99% dei casi.
Quando si aggiungono e rimuovono aree da e nell'account Azure Cosmos DB, l'applicazione non deve essere ridistribuita o messa in pausa, continua a offrire disponibilità elevata senza interruzioni.
Compilare applicazioni a reattività elevata. L'applicazione può eseguire letture e scritture quasi in tempo reale in tutte le aree scelte per il database. Azure Cosmos DB gestisce internamente la replica dei dati tra aree con garanzie a livello di coerenza del livello selezionato.
Creare app a disponibilità elevata. L'esecuzione di un database in più aree del mondo ne aumenta la disponibilità. Se un'area non è disponibile, le richieste dell'applicazione vengono gestite automaticamente dalle altre aree. Azure Cosmos DB offre disponibilità del 99,999% in lettura e scrittura per i database in più aree.
Garantire la continuità operativa in caso di interruzioni a livello di area. Azure Cosmos DB supporta il failover gestito da servizio in caso di interruzioni del servizio a livello di area. In questi casi, Azure Cosmos DB continua a garantire la conformità ai contratti di servizio per latenza, disponibilità, coerenza e velocità effettiva. Per assicurare che l'intera app sia a disponibilità elevata, Azure Cosmos DB offre un'API di failover manuale che consente di simulare un'interruzione a livello di area. Con questa API è possibile eseguire esercitazioni periodiche per verificare la continuità aziendale.
Scalabilità globale della velocità effettiva di lettura e scrittura. È possibile abilitare ogni area in modo che sia scrivibile e ridimensionare in modo elastico le letture e le scritture in tutto il mondo. La velocità effettiva configurata dall'applicazione in un database Azure Cosmos DB o in un contenitore è soggetta a provisioning in tutte le aree associate all'account di Azure Cosmos DB. La velocità effettiva con provisioning è garantita dai contratti di servizio supportati finanziariamente.
Possibilità di scelta tra più modelli di coerenza ben definiti. Il protocollo di replica di Azure Cosmos DB offre cinque modelli di coerenza ben definiti, pratici e intuitivi. Ogni modello prevede un compromesso ottimale tra coerenza e prestazioni. Usare questi modelli di coerenza per creare con facilità applicazioni distribuite a livello globale.
Passaggi successivi
Altre informazioni sulla distribuzione globale sono disponibili negli articoli seguenti:
- Distribuzione globale - Informazioni sul funzionamento
- Come configurare scritture in più aree nelle applicazioni
- Configurare i client per il multihoming
- Aggiungere o rimuovere aree dall'account Azure Cosmos DB
- Creare criteri personalizzati per la risoluzione dei conflitti per gli account API for NoSQL
- Modelli di coerenza programmabile in Azure Cosmos DB
- Scegliere il livello di coerenza ottimale per la propria applicazione
- Livelli di coerenza nelle API di Azure Cosmos DB
- Compromessi nella disponibilità e nelle prestazioni per vari livelli di coerenza