Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
GAMEOPS03-BP03 Prueba de carga temprana y con frecuencia
Las pruebas de carga son el proceso de simular el tráfico real en un sistema para evaluar su fiabilidad y rendimiento.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto
Guía para la implementación
Las pruebas de carga son un factor clave para desarrollar una base de rendimiento para sus recursos y comprender la capacidad del sistema, lo que puede servir de guía para la previsión financiera, el diseño de la arquitectura, la asignación de recursos, las configuraciones de escalado automatizadas y las actividades de preescalado posteriores al lanzamiento. Los beneficios adicionales incluyen:
-
Infraestructura optimizada: los recursos pueden estar sobreaprovisionados o infrautilizados. Comprender los recursos necesarios se traducirá en costos más bajos y menos infraestructura que administrar.
-
Preparación para la escalabilidad: Ciertos mecanismos y funciones pueden llevar a los usuarios a jugar rápidamente. Saber cuándo y cómo escalar puede marcar la diferencia entre satisfacer adecuadamente el aumento de la demanda o perder jugadores. Usa los resultados de las pruebas de carga para preparar manuales con los umbrales del sistema, los puntos de alerta y los puntos de alerta críticos en diferentes niveles de escalado.
-
Código de mayor calidad: problemas como la interferencia excesiva entre los servicios, las llamadas no agrupadas a bases de datos, los algoritmos ineficientes, las pérdidas de memoria y los problemas de degradación de los servicios a veces son más fáciles de identificar a escala.
-
Validación del comportamiento: al introducir diferentes tipos de errores en las pruebas, se puede validar el comportamiento esperado del sistema o descubrir problemas de gestión de errores que es necesario corregir.
Lo ideal es que los desarrolladores realicen las pruebas de carga en varios puntos del proceso de desarrollo, ya que cada uno de ellos puede ofrecer beneficios diferentes: desde el principio, guían las decisiones arquitectónicas y las iniciativas de refactorización, al tiempo que resulta más económico y sencillo realizar cambios. Al final de cada sprint o iteración, validan el rendimiento de la aplicación con las características y funcionalidades más recientes.
Antes de su implementación en producción, las pruebas de carga a gran escala que simulan los patrones de uso esperados en el mundo real confirman la capacidad del sistema para gestionar la carga de trabajo de producción. Tras la implementación, las pruebas de carga periódicas supervisan el rendimiento del sistema e identifican los cambios o los cuellos de botella que puedan surgir con el tiempo.
Para simular el tráfico de jugadores, necesitas clientes ligeros o bots que emulen los flujos de clientes del juego y realicen transacciones con el backend del juego para simular el comportamiento de los jugadores en el mundo real. Por lo general, estos datos se recopilan mediante registros de jugadas y datos generados por pruebas de control de calidad realizadas por personas, así como mediante pruebas alfa o beta a escala limitada en el mundo real, en las que se invita a jugadores reales a jugar a una versión del juego de acceso anticipado.
Es importante registrar el comportamiento del sistema en un manual operativo para ayudar a solucionar posibles fallas en el futuro y conservar las métricas de rendimiento con las que se puedan comparar las pruebas de carga futuras. También se recomienda que el personal de control de calidad humano pruebe el juego mientras se está realizando la prueba de carga, ya que podrían descubrir problemas que los bots no puedan identificar y que las métricas no reflejen.
AWS El servicio de inyección de fallos
Pasos para la implementación
-
Configura un entorno de pruebas de carga distribuido mediante Guidance for Game Load Testing con base en Kubernetes
. -
Personalice e implemente los módulos de control y de trabajo de Locust en el clúster de EKS utilizando los archivos de despliegue proporcionados, lo que permite una generación de carga escalable y gestionable.
-
Registre el comportamiento y las métricas del sistema durante las pruebas de carga en un manual operativo para ayudar a resolver problemas en el futuro y establecer líneas base de rendimiento.
-
Utilice experimentos de inyección de errores para simular las interrupciones del mundo real y descubrir problemas ocultos en el rendimiento, la observabilidad y la resiliencia del sistema.