Descripción general de los servidores para juegos

Game Servers es un servicio administrado que se diseñó para que los equipos de infraestructura de los juegos implementen y administren con facilidad flotas de servidores dedicados para videojuegos globales. Game Servers proporciona administración de clústeres de servidores de videojuegos con Kubernetes para la organización de contenedores y Agones para la organización de flotas de servidores de videojuegos y la administración del ciclo de vida. Puedes conectar y desconectar clústeres de la administración mediante Game Servers en cualquier momento sin afectar las sesiones de juego existentes. Después de desconectar un clúster, puedes continuar con la ejecución de una instalación de Agones de código abierto.

Tú controlas los clústeres del servidor de juegos con configuraciones globales del servidor de juegos, y definen las reglas de la ubicación y la cantidad de servidores que se deben poner en marcha, así como el objeto binario del servidor de juegos que se implementará. Game Servers crea paquetes Agones de manera automática según los lanzamientos administrados de manera central, lo que garantiza que se implementen de forma automática y segura en todos los clústeres administrados. En particular, las sesiones del juego en curso nunca se interrumpen porque un servidor de juegos en uso nunca se detiene.

Recursos de Game Servers

En esta sección, se describen los recursos principales con los que interactúas para administrar Game Servers.

Proyecto de Game Servers

Un solo entorno, como production o testing, y es un proyecto de Google Cloud con Game Servers habilitado. Por lo general, para mejorar el aislamiento y la seguridad, debes administrar un solo título de juego mediante varios proyectos de Google Cloud, como My Game Production y My Game Testing.

Ubicación

La ubicación define el alcance de un recurso y el valor predeterminado es global, que proporciona la mayor disponibilidad y dónde los datos son redundantes en varias regiones de Google Cloud. Puedes configurar la ubicación de un recurso de forma manual en una región específica de Google Cloud. Si deseas controlar dónde se almacenan los datos o qué son tus dominios de conmutación por error, anula la configuración predeterminada global.

Dominio

Game Servers está diseñado para admitir clústeres de Kubernetes que se ejecutan en Google Kubernetes Engine. Para aprovechar los conceptos de las regiones y zonas de Google Cloud, Game Servers presenta el concepto de meta-región de dominios. Un dominio es una agrupación definida por el usuario de clústeres de servidores de videojuegos según los requisitos de latencia del juego para las poblaciones de jugadores. Los dominios tienen una zona horaria asignada que permite que se usen configuraciones de escalamiento basadas en el tiempo en clústeres dentro del dominio. Existen dominios dentro de una ubicación.

Clúster de servidor de videojuegos

Un clúster de servidor de videojuegos es un subrecurso de un recurso de dominio. Cada clúster del servidor de juegos corresponde a un espacio de nombres en un clúster de Kubernetes que ejecuta Agones que está registrado en un dominio. Los clústeres de servidores para videojuegos dentro de un dominio deben considerarse equivalentes desde la perspectiva de la experiencia del usuario con respecto a mediciones, como la latencia o el rendimiento del procesamiento. El uso de un espacio de nombres que no sea default requiere que el espacio de nombres se cree en Kubernetes y Agones esté configurado para usarlo.

Después de crear un clúster de servidor de videojuegos, Game Servers crea flotas de Agones y escaladores automáticos según sea necesario. Game Servers no altera las flotas de Agones creadas manualmente.

Después de borrar un clúster del servidor de juegos, Game Servers no borra ningún recurso en el clúster, incluidas las flotas de Agones y los escaladores automáticos creados por Game Servers.

Implementación de servidores de videojuegos

Una implementación del servidor de juegos es un registro global de una versión del software del servidor de juegos que se puede implementar en cualquiera o todos los clústeres de servidor de videojuegos en todo el mundo. Una implementación del servidor de juegos es el recurso superior de la configuración del servidor del juego y los recursos de la implementación.

Configuración del servidor de juegos

La configuración del servidor de juegos es un subrecurso del recurso de implementación de un servidor de juegos que especifica la cantidad de servidores de juegos, el búfer y la versión del servidor de juegos. Debes definir políticas de escalamiento en una configuración del servidor de juegos. Las políticas de escalamiento pueden ser estáticas o basadas en el tiempo, como se ilustra en los siguientes ejemplos:

  • Durante las horas pico, debería haber suficientes servidores para admitir N asignaciones por minuto, durante las horas de menor actividad M asignaciones por minuto.
  • Para eventos de juegos planificados, aumenta la capacidad reservada en un N% para un intervalo de fecha y hora.

Implementación

Un lanzamiento es un subrecurso de un recurso de implementación de un servidor de juegos que asigna la configuración del servidor de juegos para orientarse a los dominios objetivo. De forma predeterminada, un lanzamiento asigna una configuración de servidor de juegos a todos los dominios. Para las pruebas A/B y las pruebas Canary, puedes anular dominios específicos para recibir una configuración alternativa del servidor de juegos.

Arquitectura

Game Servers expone una API del plano de control disponible a nivel mundial, mediante la que puedes controlar los recursos que describen la implementación mediante llamadas a la API o la herramienta de línea de comandos de gcloud, incluidas las siguientes:

  • crear y modificar dominios
  • Crea, registra y modifica clústeres de servidores de videojuegos en dominios
  • crear, implementar y actualizar implementaciones de servidores de juegos, configuraciones de servidor de juegos y lanzamientos

Para permitir que los servidores de juegos administren los recursos, debes crear una cuenta de servicio de Kubernetes con acceso limitado solo a los clústeres de Agones. Game Servers usa esta cuenta para enviar los cambios de configuración a los clústeres de Kubernetes de forma global.

Cada implementación del servidor de juegos describe los parámetros del servidor de juegos, equivalente a un GameServerSpec de Agones y especifica una política para orientar los clústeres de servidores de juegos en los que se deben crear flotas de servidores para juegos que ejecuten una compilación en particular. También puedes establecer preferencias de escalamiento de clúster individuales con políticas.

¿Qué sigue?