Jogos com o Azure Cosmos DB

Serviço de aplicativo do Azure
Azure Cosmos DB

Ideias de soluções

Esse artigo é uma ideia de solução. Caso deseje que ampliemos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações sobre implementação ou diretrizes de preços, fale conosco enviando seus comentários no GitHub.

Essa ideia de solução de jogos dimensiona seu banco de dados de forma elástica para acomodar picos imprevisíveis de tráfego e fornecer experiências multijogador de baixa latência em escala global.

Arquitetura

Architecture diagram that shows a gaming solution idea that uses Azure Cosmos DB.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. O Gerenciador de Tráfego do Azure roteia o tráfego de jogo de um usuário para os aplicativos hospedados no Serviço de Aplicativo do Azure, Funções ou Contêineres e APIs publicadas por meio do Gateway de API do Azure.
  2. A CDN do Azure fornece imagens estáticas e conteúdo de jogo para o usuário que são armazenados no Azure Blob Storage.
  3. O Azure Cosmos DB armazena os dados de estado do jogo do usuário.
  4. O Azure Databricks correlaciona, limpa e transforma dados de estado do jogo.
  5. O Azure Functions processa os insights derivados do Azure Databricks e envia notificações por push para dispositivos móveis, usando os Hubs de Notificação do Azure.

Componentes

Esta arquitetura inclui os seguintes componentes:

  • O Gerenciador de Tráfego do Azure é um load balancer baseado em DNS que controla a distribuição de tráfego do usuário para pontos de extremidade de serviço em diferentes regiões do Azure. Durante as operações normais, ele roteia as solicitações para a região primária. Se essa região ficar indisponível, o Gerenciador de Tráfego fará failover para a região secundária conforme necessário.

  • O Gerenciamento de API fornece um gateway de API localizado à frente das APIs de jogos. O Gerenciamento de API também pode ser usado para implementar características, como:

    • Imposição do uso de cotas e limites de taxa
    • Validação de tokens OAuth para autenticação
    • Habilitação de CORS (solicitações entre origens)
    • Armazenamento de respostas em cache
    • Monitoramento e registro em log de solicitações
  • O Serviço de Aplicativo do Azure hospeda os aplicativos de API permitindo o dimensionamento automático e alta disponibilidade sem a necessidade de gerenciar a infraestrutura.

  • A CDN do Azure entrega o conteúdo estático, armazenado em cache de locais próximos aos usuários para reduzir a latência.

  • O Azure Blob Storage são otimizados para armazenar grandes quantidades de dados não estruturados, como mídia estática de jogos.

  • O Azure Cosmos DB é um serviço de banco de dados NoSQL totalmente gerenciado para criar aplicativos escalonáveis de alto desempenho.

  • O Azure Databricks é uma plataforma de análise baseada no Apache Spark otimizada para a plataforma de Serviços de Nuvem do Microsoft Azure.

  • O Azure Functions é uma opção de computação sem servidor que permitem que aplicativos sejam executados sob demanda sem a necessidade de gerenciar a infraestrutura.

  • Os Hubs de Notificação do Azure são um mecanismo de notificação por push para dispositivos móveis altamente escalonável para enviar rapidamente milhões de notificações para vários dispositivos e plataformas móveis.

Detalhes do cenário

Possíveis casos de uso

Este cenário específico é baseado em um cenário de jogos, para a indústria de desenvolvimento de jogos. No entanto, os padrões de design são relevantes para muitos setores que são necessários para processar chamadas da Web de alto tráfego e solicitações de API, como aplicativos de comércio eletrônico e varejo.

Próximas etapas

Analise os seguintes artigos sobre o Azure Cosmos DB:

Documentação do produto:

As seguintes ideias de solução apresentam o Azure Cosmos DB: