Giochi con Cosmos DB

App per le API
Cosmos DB

PanoramicaOverview

Questa architettura della soluzione di gioco ridimensiona in modo elastico il database per adattarsi a picchi imprevedibili di traffico e offrire esperienze multiplayer a bassa latenza su scala globale.This gaming solution architecture elastically scales your database to accommodate unpredictable bursts of traffic and deliver low-latency multi-player experiences on a global scale. Questo scenario specifico si basa su uno scenario di gioco, ma i modelli di progettazione sono rilevanti per molti settori che richiedono il processo di chiamate web ad alto traffico e richieste API, ad esempio le applicazioni di e-commerce e per la vendita al dettaglio.This specific scenario is based on a gaming scenario, but the design patterns are relevant for many industries requiring the process high-traffic web calls and API requests such as e-commerce and retail applications.

ArchitetturaArchitecture

Diagramma dell'architettura scaricare un SVG di questa architettura.Architecture Diagram Download an SVG of this architecture.

Flusso di datiData Flow

  1. Gestione traffico di Azure instrada il traffico del gioco di un utente alle app ospitate nel servizio app Azure, funzioni o contenitori e API pubblicate tramite il gateway API di Azure.Azure Traffic Manager routes a user's game traffic to the apps hosted in Azure App Service, Functions or Containers and APIs published via Azure API Gateway.
  2. La rete CDN di Azure offre immagini statiche e contenuto del gioco all'utente archiviati nell'archivio BLOB di Azure.Azure CDN serves static images and game content to the user that are stored in Azure Blob Storage.
  3. Azure Cosmos DB archivia i dati dello stato del gioco dell'utente.Azure Cosmos DB stores user's game state data.
  4. Azure Databricks correlare, pulire e trasformare i dati dello stato del gioco.Azure Databricks correlates, cleanses and transforms game state data.
  5. Funzioni di Azure elabora le informazioni dettagliate derivate da Azure Databricks e inserisce le notifiche usando hub di notifica di Azure per i dispositivi mobili.Azure Functions processes the insights derived from Azure Databricks and pushes notifications using Azure Notification Hubs to mobile devices.

ComponentiComponents

Questa architettura include i componenti seguenti:This architecture includes the following components:

  • Gestione traffico di Azure è un servizio di bilanciamento del carico basato su DNS che controlla la distribuzione del traffico utente per gli endpoint di servizio in diverse aree di Azure.Azure Traffic Manager is a DNS-based load balancer that controls the distribution of user traffic for service endpoints in different Azure regions. Durante il normale funzionamento, le richieste vengono indirizzate all'area primaria.During normal operations, it routes requests to the primary region. Se l'area non è più disponibile, gestione traffico può effettuare il failover nell'area secondaria in base alle esigenze.If that region becomes unavailable, Traffic Manager can fail over to secondary region as needed.

  • Gestione API di Azure offre un gateway API che si trova davanti alle API di gioco.Azure API Management provides an API gateway that sits in front of the Gaming APIs. Gestione API viene usato anche per implementare problemi quali:API Management also be used to implement concerns such as:

    • applicazione delle quote di uso e dei limiti di frequenzaEnforcing usage quotas and rate limits
    • convalida dei token OAuth per l'autenticazioneValidating OAuth tokens for authentication
    • abilitazione di richieste multiorigine (CORS)Enabling cross-origin requests (CORS)
    • memorizzazione nella cache delle risposteCaching responses
    • monitoraggio e registrazione delle richiesteMonitoring and logging requests
  • App Azure servizio ospita applicazioni API che consentono la scalabilità automatica e la disponibilità elevata senza la necessità di gestire l'infrastruttura.Azure App Service hosts API applications allowing autoscale and high availability without having to manage infrastructure.

  • La rete CDN di Azure fornisce contenuti statici memorizzati nella cache da posizioni vicine agli utenti per ridurre la latenza.Azure CDN delivers static, cached content from locations close to users to reduce latency.

  • L' archiviazione BLOB di Azure è ottimizzata per l'archiviazione di grandi quantità di dati non strutturati, come i supporti per i giochi statici.Azure Blob Storage are optimized to store large amounts of unstructured data, such as static gaming media.

  • Azure Cosmos DB è un servizio di database NoSQL completamente gestito per la creazione e la modernizzazione di applicazioni scalabili e ad alte prestazioni.Azure Cosmos DB is a fully managed NoSQL database service for building and modernizing scalable, high performance applications.

  • Azure Databricks è una piattaforma di analisi basata su Apache Spark ottimizzata per la piattaforma dei servizi cloud di Microsoft Azure.Azure Databricks is an Apache Spark-based analytics platform optimized for the Microsoft Azure cloud services platform.

  • Funzioni di Azure è un'opzione di calcolo senza server che consente l'esecuzione su richiesta delle applicazioni senza dover gestire l'infrastruttura.Azure Functions are serverless compute options that allow applications to run on-demand without having to manage infrastructure.

  • Hub di notifica di Azure è un motore di notifiche push a scalabilità elevata per l'invio rapido di notifiche a diverse piattaforme e dispositivi mobili.Azure Notification Hubs is a massively scalable push notification engine for quickly sending notifications to variety of mobile devices and platforms.