

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á.

# GAMEOPS05-BP01Escolha o estágio, a arquitetura e a estrutura de teste de carga certos para atingir suas metas
<a name="gameops05-bp01"></a>

 A abordagem para testar a carga de um jogo pode variar significativamente dependendo de muitos fatores, incluindo o estágio do processo de desenvolvimento em que ele é executado, a arquitetura do próprio sistema gerador de carga e a escolha da estrutura de teste de carga. O momento em que ela será conduzida, seja nas fases iniciais, durante sprints iterativos, antes da implantação da produção ou após a implantação, definirá as metas e o foco dos esforços de teste. Diferentes projetos de infraestrutura de geração de carga têm seus próprios prós e contras, e a seleção da estrutura de teste de carga influencia muito os recursos, a facilidade de uso e as integrações disponíveis para o processo de teste. Ao alinhar cuidadosamente esses elementos, as equipes de desenvolvimento podem adaptar a abordagem de teste de carga às características exclusivas do jogo, extrair as informações de desempenho mais valiosas e proporcionar uma experiência tranquila para seus jogadores. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Alto 

## Orientação para implementação
<a name="implementation-guidance-9"></a>

 **Teste de carga em diferentes estágios de desenvolvimento ** 

 A realização de testes exploratórios de carga no início das fases de desenvolvimento pode validar a arquitetura subjacente do sistema. Isso ajuda os desenvolvedores a tomar decisões informadas sobre a infraestrutura do jogo, o design do banco de dados e a topologia da rede antes que um extenso trabalho de implementação seja concluído. Os testes de carga identificam riscos e criam uma linha de base de desempenho, potencialmente minimizando a necessidade de retrabalho dispendioso e dívidas técnicas mais tarde no ciclo de vida do desenvolvimento. Eles também podem promover uma compreensão compartilhada dos requisitos de desempenho do jogo entre a equipe, levando a uma melhor colaboração e tomada de decisões. Por fim, o teste de carga durante as fases iniciais cria uma base sólida para um jogo de alto desempenho, escalável e resiliente, ajudando a aprimorar a experiência geral do jogador. 

 No final de cada sprint ou iteração, o teste de carga pode avaliar o impacto no desempenho dos novos recursos, correções de erros e outras mudanças introduzidas no ciclo mais recente. Essa abordagem direcionada permite que as equipes de desenvolvimento identifiquem rapidamente as regressões ou degradações de desempenho introduzidas pelas atualizações mais recentes, permitindo que elas resolvam esses problemas antes que eles sejam propagados mais adiante e mantendo um nível consistente de qualidade e desempenho. 

 Antes da implantação na produção, testes de carga robustos ajudam as equipes a validar a capacidade do sistema de lidar com as condições reais de tráfego e carga previstas. Eles podem descobrir gargalos de escalabilidade ou restrições de recursos na infraestrutura de produção e oferecer a oportunidade de otimizar o desempenho do jogo, criando uma experiência de usuário suave e responsiva desde o primeiro dia. Os insights obtidos com o teste de carga de pré-lançamento podem mitigar os riscos do dia do lançamento e informar o planejamento contínuo da capacidade, que estabelece a base para a sustentabilidade e escalabilidade de longo prazo do jogo. 

 O teste de carga de um jogo que já está em produção permite que as equipes monitorem o desempenho do jogo e identifiquem regressões ou degradações de desempenho que podem ocorrer com o tempo. Isso permite que eles resolvam problemas de forma proativa antes que eles afetem a experiência do jogador e afetem negativamente a retenção do usuário. Além disso, o teste de carga na produção valida a eficácia dos esforços de otimização de desempenho ou do dimensionamento da infraestrutura que foram implementados. Esse processo fornece uma experiência de jogo de alta qualidade, responsiva e escalável para os jogadores, mesmo à medida que o jogo evolui e amadurece. 

 **Load-generating arquiteturas ** 

 O design da arquitetura de geração de carga para testes de carga de jogos pode assumir várias formas, cada uma com seu próprio conjunto de vantagens e considerações.  

 No nível mais básico, as [ instâncias autogerenciadas do ](https://aws.amazon.com/ec2/) Amazon EC2 podem ser provisionadas e configuradas para atuar como geradoras de carga. Com uma abordagem de nó de controle e nós de trabalho, você pode configurar várias instâncias geradoras de carga, cada uma executando seu próprio script de teste e, em geral, gerenciada por uma única instância de controle. A arquitetura pode ser ampliada e gerar mais carga sem aumentar a complexidade, criando nós de trabalho adicionais, mas essa abordagem prática exige que as equipes lidem com o provisionamento, a configuração e o gerenciamento da infraestrutura subjacente. 

 Para uma abordagem mais escalável e orquestrada, você pode usar os clusters [ Kubernetes do ](https://aws.amazon.com/eks/) Amazon EKS para gerenciar e distribuir a carga de trabalho de teste de carga em uma frota de agentes de carga baseados em contêineres. Os recursos de escalabilidade automática do Kubernetes podem ser usados para lidar com a escalabilidade dos pods geradores de carga, enquanto as próprias equipes configuram e gerenciam as instâncias subjacentes do EC2 no cluster que hospeda os pods.  

 Como alternativa, a natureza sem servidor do [AWS Fargate](https://aws.amazon.com/fargate/) pode acelerar e simplificar a configuração do teste de carga, abstraindo o gerenciamento da infraestrutura e, ao mesmo tempo, fornecer a escalabilidade e a flexibilidade necessárias. Para soluções híbridas em que já existe um cluster Kubernetes local que gera carga, mas pode ser necessária capacidade adicional, o [ EKS Anywhere ](https://aws.amazon.com/eks/eks-anywhere/) pode gerenciar os dois clusters como um só a partir do. Console de gerenciamento da AWS

 Você também pode usar [AWS Lambda](https://aws.amazon.com/lambda/) funções de acordo com seus requisitos e objetivos. As funções do Lambda são relativamente fáceis de configurar e escalar sem a necessidade de provisionar e gerenciar recursos adicionais. Eles também permitem a criação de cenários de teste mais complexos e dinâmicos devido à profunda integração com outros AWS serviços. No entanto, as funções do Lambda têm limites para funções simultâneas e tempo de execução (15 minutos), o que pode restringir a escala e a duração dos testes de carga que podem ser alcançados. As latências de partida a frio também podem afetar a precisão dos resultados, e as limitações de recursos do Lambda podem não ser adequadas para cargas de trabalho de teste de carga altamente exigentes. 

 Os estúdios que desejam usar uma solução pré-criada podem usar o Teste de Carga [ Distribuída ativado. AWS](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/solution-overview.html) Essa solução usa o Amazon ECS on AWS Fargate para implantar contêineres que podem executar simulações de dezenas de milhares de usuários conectados. Você pode usar isso para iniciar rapidamente sua infraestrutura de teste de carga no estilo IAC usando AWS CloudFormation. 

 **Estruturas de teste de carga ** 

 Não há duas estruturas de teste de carga criadas da mesma forma. Alguns têm interfaces gráficas intuitivas para criação de testes, enquanto outros são totalmente baseados em linha de comando. Uma ferramenta pode ser flexível e eficiente, mas exigir tempo e esforço para ser configurada e gerenciada, e outra pode ser sem servidor, mas limitada nos testes que pode criar e executar. Alguns gostam de grandes comunidades e de muitos tutoriais, embora não tenham sido comprovados em campo, o que contrasta fortemente com outros que podem ter sido testados em produção, mas carecem de suporte ou documentação da comunidade. Escolha a estrutura que encontre o equilíbrio certo para você e sua equipe. Algumas opções populares são: 
+  **[Apache JMeter](https://jmeter.apache.org/): estrutura ** popular Java-based de teste de carga de código aberto devido ao seu conjunto robusto de recursos e facilidade de uso. Sua capacidade de simular cenários de usuário complexos, ampla variedade de protocolos suportados, relatórios abrangentes e histórico comprovado fazem do JMeter uma escolha confiável para testes de carga. 
+  **[Locust](https://locust.io/): estrutura de teste de carga ** moderna e distribuída, construída em uma arquitetura orientada por eventos, tornando-a eficiente e eficiente em termos de recursos. Os testes são escritos em Python, permitindo cenários de teste flexíveis que aproveitam milhares de bibliotecas poderosas de terceiros, ao mesmo tempo em que permanecem amigáveis e simples de ler. 
+  **[Grafana K6](https://k6.io/): estrutura ** poderosa de teste de carga que combina facilidade de uso com recursos avançados. Seu suporte para geração de carga distribuída, scripts flexíveis e integração perfeita com o Grafana para visualização de dados tornam o Grafana K6 uma escolha atraente. 
+  **[Gatling](https://gatling.io/): estrutura de teste de ** Open-source carga conhecida por seu desempenho e escalabilidade. Sua Scala-based linguagem específica de domínio (DSL) permite que os desenvolvedores criem scripts de teste de carga concisos e fáceis de manter, e seus recursos robustos de geração de relatórios e análises fornecem informações detalhadas do sistema em teste. 

### Etapas de implementação
<a name="implementation-steps-9"></a>
+  **Estágios de teste de carga: ** realize testes de carga em vários estágios de desenvolvimento (desenvolvimento inicial, sprints, pré-produção e pós-implantação) para validar o desempenho do sistema e identificar problemas. 
+  **Load-generatingarquiteturas: ** escolha arquiteturas de geração de carga apropriadas (EC2, EKS, Fargate ou Lambda) com base nas necessidades de escalabilidade, preferências de gerenciamento e requisitos de teste específicos. 
+  **Estruturas de teste de carga: ** selecione uma estrutura de teste de carga (como JMeter, Locust, Grafana K6 ou Gatling) que equilibre facilidade de uso, desempenho, flexibilidade e suporte da comunidade para atender às necessidades da sua equipe. 