Jogar com o Cosmos DB

Aplicações API
Cosmos DB

Descrição geralOverview

Esta arquitetura de solução de jogo escala elasticamente a sua base de dados para acomodar explosões imprevisíveis de tráfego e proporcionar experiências multi-jogadores de baixa latência à escala global.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. Este cenário específico baseia-se num cenário de jogo, mas os padrões de design são relevantes para muitas indústrias que exigem o processo de chamadas web de alto tráfego e pedidos de API, como aplicações de e-commerce e retalho.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.

ArquiteturaArchitecture

Diagrama de arquitetura Descarregue um SVG desta arquitetura.Architecture Diagram Download an SVG of this architecture.

Fluxo de DadosData Flow

  1. O Azure Traffic Manager encaminha o tráfego de um utilizador para as aplicações hospedadas no Azure App Service, Functions ou Containers e APIs publicados via Azure API Gateway.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. O Azure CDN serve imagens estáticas e conteúdos de jogo ao utilizador que são armazenados no Azure Blob Storage.Azure CDN serves static images and game content to the user that are stored in Azure Blob Storage.
  3. A Azure Cosmos DB armazena os dados do estado do jogo dos utilizadores.Azure Cosmos DB stores user's game state data.
  4. A azure Databricks correlaciona, limpa e transforma dados do estado do jogo.Azure Databricks correlates, cleanses and transforms game state data.
  5. O Azure Functions processa os insights derivados da Azure Databricks e empurra notificações usando os Hubs de Notificação Azure para dispositivos móveis.Azure Functions processes the insights derived from Azure Databricks and pushes notifications using Azure Notification Hubs to mobile devices.

ComponentesComponents

Esta arquitetura inclui os seguintes componentes:This architecture includes the following components:

  • O Azure Traffic Manager é um equilibrador de carga baseado em DNS que controla a distribuição do tráfego de utilizadores para pontos finais de serviço em diferentes regiões de 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 as operações normais, este encaminha os pedidos para a região primária.During normal operations, it routes requests to the primary region. Se essa região ficar indisponível, o Gestor de Tráfego pode falhar na região secundária, se necessário.If that region becomes unavailable, Traffic Manager can fail over to secondary region as needed.

  • A Azure API Management fornece uma porta de entrada API que fica em frente às APIs de Jogos.Azure API Management provides an API gateway that sits in front of the Gaming APIs. A API Management também é utilizada para implementar preocupações como:API Management also be used to implement concerns such as:

    • Aplicação das quotas de utilização e dos limites de taxasEnforcing usage quotas and rate limits
    • Validação de fichas OAuth para autenticaçãoValidating OAuth tokens for authentication
    • Habilitação de pedidos de origem cruzada (CORS)Enabling cross-origin requests (CORS)
    • Respostas de cachingCaching responses
    • Pedidos de monitorização e registoMonitoring and logging requests
  • O Azure App Service acolhe aplicações API que permitem autoescalar e alta disponibilidade sem ter de gerir infraestruturas.Azure App Service hosts API applications allowing autoscale and high availability without having to manage infrastructure.

  • O Azure CDN fornece conteúdo estático e em cache de locais próximos dos utilizadores para reduzir a latência.Azure CDN delivers static, cached content from locations close to users to reduce latency.

  • O Azure Blob Storage está otimizado para armazenar grandes quantidades de dados não estruturados, como os meios de jogo estáticos.Azure Blob Storage are optimized to store large amounts of unstructured data, such as static gaming media.

  • Azure Cosmos DB é um serviço de base de dados NoSQL totalmente gerido para a construção e modernização de aplicações escaláveis e de alto desempenho.Azure Cosmos DB is a fully managed NoSQL database service for building and modernizing scalable, high performance applications.

  • O Azure Databricks é uma plataforma de análise baseada no Apache Spark e otimizada para a plataforma de serviços cloud Microsoft Azure.Azure Databricks is an Apache Spark-based analytics platform optimized for the Microsoft Azure cloud services platform.

  • As Funções Azure são opções de computação sem servidor que permitem que as aplicações funcionem a pedido sem ter de gerir a infraestrutura.Azure Functions are serverless compute options that allow applications to run on-demand without having to manage infrastructure.

  • O Azure Notification Hubs é um motor de notificação push massivamente escalável para o envio rápido de notificações para a variedade de dispositivos e plataformas móveis.Azure Notification Hubs is a massively scalable push notification engine for quickly sending notifications to variety of mobile devices and platforms.