Archiviazione minima: feed di modifiche per replicare i dati

Frontdoor di Azure
Servizio app di Azure
Funzioni di Azure
Azure Cosmos DB
Archiviazione tabelle di Azure

Questo articolo presenta una soluzione a disponibilità elevata per un'applicazione Web che usa grandi quantità di dati che devono essere disponibili per un periodo di tempo specifico. Archivia i dati in Azure Cosmos DB e usa il feed di modifiche di Azure Cosmos DB per replicare i dati nell'archiviazione secondaria. Al termine del periodo di tempo specificato, Funzioni di Azure viene usato per eliminare i dati da Azure Cosmos DB.

Architettura

Architettura di un sistema resiliente che usa due tipi di archiviazione per ridurre i costi.

Scaricare un file di Visio di questa architettura.

Flusso di dati

  1. Il client esegue l'autenticazione con l'ID Microsoft Entra e viene concesso l'accesso alle applicazioni Web ospitate nel servizio app Azure.
  2. Frontdoor di Azure, un firewall e un servizio di bilanciamento del carico di livello 7, passa il traffico utente all'area di standby in caso di interruzione a livello di area.
  3. servizio app ospita siti Web e API Web RESTful. I client browser eseguono applicazioni AJAX che usano le API.
  4. Le API Web delegano la responsabilità al codice ospitato da Funzioni per gestire le attività in background. Le attività vengono accodate nelle code di accodamento di Azure Archiviazione.
  5. I messaggi in coda attivano le funzioni che eseguono le attività in background.
  6. cache di Azure per Redis memorizza nella cache i dati del database per le funzioni. Usando la cache, la soluzione scarica l'attività del database e velocizza le app per le funzioni e le app Web.
  7. Azure Cosmos DB contiene i dati generati di recente.
  8. Azure Cosmos DB genera un feed di modifiche che può essere usato per replicare le modifiche.
  9. Un'app per le funzioni legge il feed di modifiche e replica le modifiche apportate alle tabelle di Tabella di Azure Archiviazione. Un'altra app per le funzioni rimuove periodicamente i dati scaduti da Azure Cosmos DB.
  10. La tabella Archiviazione fornisce archiviazione a basso costo.

Componenti

  • L'ID Microsoft Entra di Azure è un servizio di gestione delle identità e degli accessi multi-tenant che può eseguire la sincronizzazione con una directory locale.
  • DNS di Azure è un servizio di hosting a disponibilità elevata per i domini DNS che fornisce alle app query DNS veloci e aggiornamenti rapidi ai record DNS. La gestione di DNS di Azure è simile alla gestione di altri servizi di Azure e usa le stesse credenziali, API, strumenti e fatturazione.
  • Frontdoor di Azure è una rete di distribuzione di contenuti sicura (rete CDN) e un servizio di bilanciamento del carico con failover istantaneo. Opera in prossimità degli utenti, accelerando la distribuzione dei contenuti proteggendo al tempo stesso app, API e siti Web da minacce informatiche.
  • servizio app è un servizio completamente gestito per la creazione, la distribuzione e il ridimensionamento delle app Web. È possibile creare app usando .NET, .NET Core, Node.js, Java, Python o PHP. Le app possono essere eseguite in contenitori o in Windows o Linux. In una migrazione mainframe, le schermate front-end o l'interfaccia Web possono essere codificate come API REST basate su HTTP. Possono essere separati e possono essere senza stato per orchestrare un sistema basato su microservizi. Per altre informazioni sulle API Web, vedere Progettazione di API Web RESTful.
  • Funzioni fornisce un ambiente per l'esecuzione di piccole parti di codice, chiamate funzioni, senza dover stabilire un'infrastruttura dell'applicazione. È possibile usarlo per elaborare i dati in blocco, integrare sistemi, usare dispositivi Internet delle cose (IoT) e creare API e microservizi semplici. Con i microservizi, è possibile creare server che si connettono ai servizi di Azure e sono sempre aggiornati.
  • Archiviazione di Azure è un set di servizi cloud altamente scalabili e sicuri per dati, app e carichi di lavoro. Include File di Azure, Archiviazione tabella e Archiviazione di accodamento. File di Azure è spesso uno strumento efficace per la migrazione dei carichi di lavoro mainframe.
  • La coda Archiviazione offre code di messaggi semplici, convenienti e durevoli per carichi di lavoro di grandi dimensioni.
  • La tabella Archiviazione è un archivio chiave-valore NoSQL per lo sviluppo rapido che usa set di dati semistrutturati di grandi dimensioni. Le tabelle sono senza schema e si adattano facilmente in base alle esigenze. L'accesso è rapido ed economico per molti tipi di applicazioni e in genere costa meno di altri tipi di archiviazione con chiave.
  • cache di Azure per Redis è un servizio di memorizzazione nella cache in memoria completamente gestito e un broker di messaggi per la condivisione di dati e stato tra le risorse di calcolo. Include sia redis open source che un prodotto commerciale di Redis Labs come servizi gestiti. È possibile migliorare le prestazioni delle applicazioni di elaborazione delle transazioni online ad alta velocità effettiva progettandole per la scalabilità e per usare un archivio dati in memoria, ad esempio cache di Azure per Redis.
  • Azure Cosmos DB è un database multimodello distribuito a livello globale di Microsoft che consente alle soluzioni di ridimensionare in modo elastico e indipendente la velocità effettiva e l'archiviazione in qualsiasi numero di aree geografiche. Offre garanzie di produttività, latenza, disponibilità e coerenza con contratti di servizio completi.

Alternative

  • Gestione traffico di Azure indirizza le richieste DNS in ingresso nelle aree di Azure globali in base ai metodi di routing del traffico scelti. Fornisce anche il failover automatico e il routing delle prestazioni.
  • Azure rete per la distribuzione di contenuti memorizza nella cache il contenuto statico nei server perimetrali per una risposta rapida e usa le ottimizzazioni di rete per migliorare la risposta per il contenuto dinamico. rete per la distribuzione di contenuti è particolarmente utile quando la base utente è globale.
  • Il servizio Azure Kubernetes è il servizio completamente gestito di Kubernetes per la distribuzione e la gestione di applicazioni in contenitori. È possibile usarlo per implementare un'architettura di microservizi i cui componenti vengono ridimensionati in modo indipendente su richiesta.
  • Istanze di Azure Container offre un modo rapido e semplice per eseguire attività senza dover gestire l'infrastruttura. È utile durante lo sviluppo o per l'esecuzione di attività non pianificate.
  • Bus di servizio di Azure è un servizio di messaggistica cloud affidabile per una semplice integrazione ibrida. Può essere usato invece di accodare Archiviazione in questa architettura. Per altre informazioni, vedere Archiviazione code e code bus di servizio, confrontate e contrastate.

Dettagli dello scenario

Questa soluzione usa Azure Cosmos DB per archiviare il volume elevato di dati usati dall'applicazione Web. Le app Web che gestiscono grandi quantità di dati traggono vantaggio dalla capacità di Azure Cosmos DB di ridimensionare in modo elastico e indipendente la velocità effettiva e l'archiviazione.

Un altro componente chiave della soluzione è il feed di modifiche di Azure Cosmos DB. Quando vengono apportate modifiche al database, il flusso del feed di modifiche viene inviato a un trigger di Funzioni basate su eventi. Una funzione esegue quindi e replica le modifiche apportate alle tabelle table Archiviazione, che forniscono una soluzione di archiviazione a basso costo.

L'app Web necessita dei dati solo per un periodo di tempo limitato. La soluzione sfrutta questo fatto per ridurre ulteriormente i costi. In particolare, un'altra funzione esegue periodicamente ed elimina i dati scaduti da Azure Cosmos DB. Oltre a essere attivati, le funzioni possono anche essere pianificate per l'esecuzione in momenti prestabiliti.

Potenziali casi d'uso

L'architettura è appropriata per qualsiasi applicazione che:

  • Usa una grande quantità di dati.
  • Richiede che i dati siano sempre disponibili quando sono necessari.
  • Usa i dati che scadono.

Gli esempi includono app che:

  • Tenere traccia delle abitudini di spesa dei clienti e del comportamento di acquisto.
  • Previsioni meteo.
  • Offrire sistemi di traffico intelligente o implementare sistemi di traffico intelligente o usare la tecnologia intelligente per monitorare il traffico.
  • Analizzare i dati IoT di produzione.
  • Visualizzare i dati dei contatori intelligenti o usare la tecnologia intelligente per monitorare i dati dei contatori.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Framework ben progettato di Microsoft Azure.

  • Quando si implementa e si gestisce questa soluzione, si comportano costi aggiuntivi.
  • L'uso del feed di modifiche per la replica richiede meno manutenzione del codice rispetto all'operazione di replica nell'applicazione principale.
  • È necessario eseguire la migrazione dei dati esistenti. Il processo di migrazione richiede script o routine ad hoc per copiare i dati precedenti negli account di archiviazione. Quando si esegue la migrazione dei dati, assicurarsi di usare timestamp e flag di copia per tenere traccia dello stato di avanzamento della migrazione.
  • Per evitare di eliminare voci dall'archivio secondario tabelle di Azure, ignorare i feed di eliminazione generati quando le funzioni eliminano voci da Azure Cosmos DB.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

  • Nabil Siddiqui | Cloud Solution Architect - Digital and Application Innovation

Passaggi successivi