Ideias de soluções
Este artigo é uma ideia de solução. Se você quiser que expandamos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações de implementação ou orientação de preços, informe-nos fornecendo feedback do GitHub.
Essa ideia de solução de jogos dimensiona elasticamente seu banco de dados para acomodar explosões imprevisíveis de tráfego e oferecer experiências multijogador de baixa latência em escala global.
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de dados
- O Azure Traffic Manager encaminha o tráfego de jogos de um utilizador para as aplicações alojadas no Serviço de Aplicações do Azure, Funções ou Contentores e para APIs publicadas através do Gateway de API do Azure.
- A CDN do Azure fornece imagens estáticas e conteúdo de jogos ao usuário que são armazenados no Armazenamento de Blobs do Azure.
- O Azure Cosmos DB armazena os dados de estado do jogo do usuário.
- O Azure Databricks correlaciona, limpa e transforma dados de estado do jogo.
- O Azure Functions processa as informações derivadas 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 Azure Traffic Manager é um balanceador de carga baseado em DNS que controla a distribuição do tráfego de usuários para pontos de extremidade de serviço em diferentes regiões do Azure. Durante as operações normais, este encaminha os pedidos para a região primária. Se essa região ficar indisponível, o Gerenciador de Tráfego poderá fazer failover para a região secundária, conforme necessário.
O Gerenciamento de API do Azure fornece um gateway de API que fica na frente das APIs de jogos. O Gerenciamento de API também pode ser usado para implementar preocupações, como:
- Aplicação de quotas de utilização e limites de taxas
- Validando tokens OAuth para autenticação
- Habilitando solicitações de origem cruzada (CORS)
- Armazenamento em cache de respostas
- Monitoramento e registro de solicitações
O Serviço de Aplicativo do Azure hospeda aplicativos de API que permitem dimensionamento automático e alta disponibilidade sem precisar gerenciar a infraestrutura.
A CDN do Azure fornece conteúdo estático e armazenado em cache de locais próximos aos usuários para reduzir a latência.
O Armazenamento de Blobs do Azure é otimizado 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 e modernizar aplicativos escaláveis e de alto desempenho.
O Azure Databricks é uma plataforma de análise baseada no Apache Spark e otimizada para a plataforma de serviços cloud Microsoft Azure.
O Azure Functions é uma opção de computação sem servidor que permite que os aplicativos sejam executados sob demanda sem precisar gerenciar a infraestrutura.
Detalhes do cenário
Potenciais casos de utilização
Este cenário específico é baseado em um cenário de jogos, para a indústria de desenvolvimento de jogos. Os padrões de design são relevantes para muitos setores que são necessários para processar chamadas da Web e solicitações de API de alto tráfego, como comércio eletrônico e aplicativos de varejo.
Próximos passos
Analise os seguintes artigos no Azure Cosmos DB:
- Casos de uso comuns do Azure Cosmos DB
- Feed de alterações no Azure Cosmos DB
- Time to Live [TTL] no Azure Cosmos DB
- Níveis de consistência no Azure Cosmos DB
- Unidades de Pedido no Azure Cosmos DB
- Criação de partições e dimensionamento horizontal no Azure Cosmos DB
Documentação do produto:
- O que é o Azure Traffic Manager?
- Gestão de API do Azure
- Visão geral do Serviço de Aplicativo do Azure
- O que é o Azure CDN?
- O que é o Armazenamento de Blobs do Azure?
- O que é o Azure Databricks?
- Introdução às Funções do Azure
- O que são os Hubs de Notificação do Azure?
Recursos relacionados
As seguintes ideias de solução apresentam o Azure Cosmos DB: