View a markdown version of this page

Arquitetura de back-end de jogos baseada em contêineres - Lente da indústria de jogos

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Arquitetura de back-end de jogos baseada em contêineres

Esta seção descreve uma arquitetura de back-end de jogos baseada em contêineres.

Hospedando um back-end de jogos usando contêineres

Hospedando um back-end de jogos usando contêineres

  • Os jogadores acessam o jogo usando o software cliente do jogo, que pode ser distribuído por meio de um sistema de jogos, uma loja digital ou um download direto de uma rede de distribuição de conteúdo (CDN), como a Amazon. CloudFront CDNsforneça armazenamento em cache em locais periféricos para acelerar o desempenho dos usuários que baixam conteúdo. Por exemplo, CloudFront pode ser usado para distribuir o software cliente do jogo para seus jogadores, bem como os ativos do jogo e outros conteúdos.

  • AWS O Global Accelerator fornece aceleração de tráfego e controles personalizáveis para rotear o tráfego dos clientes de jogos do jogador para seus balanceadores de carga, bem como rotear o tráfego entre regiões para fins de multirregião e de failover. Os nomes de domínio personalizados para o back-end REST do seu jogo APIs são configurados no Amazon Route 53 para direcionar o tráfego para os endpoints do Global Accelerator. Não mostrado no diagrama,AWS Shield Advanced pode fornecer mitigação adicional de DDo S para seu acelerador e back-end de jogos.

  • O NAT Gateway e o Application Load Balancer são implantados em sub-redes públicas em cada uma das zonas de disponibilidade usadas pelo back-end do jogo para fornecer alta disponibilidade à região.AWS WAF é implantado no Application Load Balancer para fornecer filtragem de tráfego da web de camada 7.

  • O back-end do jogo é hospedado como uma coleção de microsserviços individuais baseados em contêineres implantados em um cluster Amazon EKS em sub-redes privadas espalhadas por zonas de disponibilidade para maior resiliência. O escalonamento automático ajusta dinamicamente a capacidade dos serviços e dos nós do cluster com base na utilização de recursos, que normalmente está correlacionada com a demanda dos jogadores. Enquanto o autoescalador de cluster ajusta automaticamente o número de nós no cluster, o escalonador automático horizontal de pods dimensiona automaticamente os pods implantados no cluster.

  • Os dados do jogo e do jogador são armazenados em bancos de dados e caches de back-end que são implantados em sub-redes privadas em todas as zonas de disponibilidade com replicação entre os nós primário e de réplica. O Amazon Aurora é uma escolha popular para casos de uso como perfis de jogadores, direitos e compras no jogo, que podem ter requisitos de consulta mais complexos e podem se beneficiar dos recursos de modelagem de dados relacionais do MySQL e do PostgreSQL. ElastiCache A Amazon é útil para criar tabelas de classificação de alto desempenho, pub/sub enviar mensagens e armazenar em cache dados acessados com frequência para reduzir a latência e a carga nos bancos de dados. O Amazon DynamoDB é um armazenamento de dados NoSQL totalmente gerenciado que é ideal para padrões de acesso imprevisíveis e a capacidade de escalar para uma taxa de transferência praticamente ilimitada para casos de uso, como dados de estado de jogadores e jogos, dados de sessão, estoques de inventário e itens, ou casos de uso em que você deseja um banco de dados global com sobrecarga mínima.

  • Os fluxos de trabalho de processamento assíncrono devem ser usados para realizar trabalhos que podem ser feitos em segundo plano, como atualizar tabelas de classificação ou enviar solicitações de amizade. Configure o back-end do seu jogo para colocar esse tipo de trabalho nas filas do Amazon SQS para escalar à medida que seu jogo cresce ou considere usar tópicos do Amazon SNS para distribuir o trabalho entre várias filas de aplicativos de consumidores para processamento paralelo. Use as funções do AWS Lambda para realizar o processamento de forma orientada por eventos para reduzir seus custos de infraestrutura de computação e a sobrecarga de gerenciamento. Para fluxos de trabalho de longa duração ou que exigem coordenação de tarefas com várias etapas, considere orquestrar todo o fluxo de trabalho usando.AWS Step Functions A Amazon EventBridge pode ser usada para iniciar funções para responder a eventos AWS de serviços e aplicativos personalizados.