En esta página, se describen dos opciones diferentes para lanzar una nueva configuración de Game Servers con una fase de versión canary. En la fase de versión canary, implementas la configuración nueva para un conjunto pequeño de clientes. Esto te ayudará a identificar posibles problemas sin afectar a todos tus usuarios.
La primera es usar una región de versión canary. La configuración de esta opción es más simple, pero un lanzamiento incorrecto afecta a toda la región. La otra opción es crear una implementación de versiones canary. Esta opción es más flexible, pero también es un proceso más complejo para administrar.
Antes de comenzar
Antes de comenzar, te recomendamos que te familiarices con los conceptos clave en la Descripción general de servidores para juegos. Asegúrate de haber realizado las siguientes tareas:
- Asegúrate de haber habilitado la API de los servicios de juego. Habilitar la API de servicios de juego
- Elige una shell que tenga gcloud CLI instalada o usa un cliente de API:
Ve a la consola de Google Cloud.
Desde la esquina superior derecha de la consola, haz clic en el botón Activar Cloud Shell:
.
- Crea una cuenta de servicio.
- Descarga una clave privada como un archivo JSON.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALS
to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.
Cloud Shell
Para iniciar Cloud Shell, sigue estos pasos:
Se abrirá una sesión de Cloud Shell dentro de un marco en la parte inferior en la consola.
Usa esta shell para ejecutar los comandos de gcloud
.
Shell local
Instala la CLI de gcloud
Verifica que hayas configurado el proyecto predeterminado que deseas para Google Cloud CLI (de lo contrario, debes especificar la marca --project
de forma explícita para cada comando más adelante):
gcloud config list project
Si no puedes ejecutar el siguiente comando para configurar un proyecto predeterminado, reemplaza PROJECT_ID
por el ID del proyecto deseado:
gcloud config set project PROJECT_ID
Ejecuta el siguiente comando para verificar tu versión de Google Cloud CLI.
Game Servers requiere la versión 306.0.0
o una posterior de gcloud CLI.
gcloud version
Para actualizar la instalación, ejecuta el siguiente comando:
gcloud components update
curl / PowerShell
Para usar la API de REST con curl
o Windows PowerShell, haz lo siguiente:
Biblioteca cliente
Google Cloud Game Servers se puede controlar de manera programática mediante una biblioteca cliente. Consulta Descripción general de bibliotecas cliente a fin de obtener instrucciones para usar la biblioteca y la autenticación.
Verifica el estado de un lanzamiento
Asegúrate de verificar el estado de tus servidores en diferentes puntos durante el lanzamiento. Puedes usar los datos recopilados para determinar si es seguro continuar con el lanzamiento. Si las verificaciones de estado revelan un problema, es mejor pausar o cancelar el lanzamiento.
Puedes usar las siguientes recomendaciones para verificar el estado de un lanzamiento:
Asegúrate de que el estado de las instancias del servidor de juegos individual sea
Ready
.Verifica que Agones pueda asignar y administrar el ciclo de vida completo de un
GameServer
. Asegúrate de que la implementación principal y de versiones canaryGameServers
tienen las mismas etiquetas que coinciden con el selector previstorequired
deGameServerAllocation
para que tu creador de partidas no requiera un cambio para asignar desde la implementación de versiones canary. De forma opcional, puedes asignar de forma selectiva desde la flota de versiones canary mediante el atributo "preferred" en una especificaciónGameServerAllocation
.Supervisa y asegúrate de que las métricas del juego y las métricas del sistema relevantes en la implementación no indiquen ninguna degradación en el rendimiento.
Lanzamiento en una región de versiones canary
Game Servers te permite anular una configuración en uno o más dominios. Asegúrate de que los clústeres de tu región de versiones canary se encuentren en un dominio independiente.
En este ejemplo, el dominio "australia" es el dominio de versión canary.
Para configurar v2
como la configuración activa en el dominio australia
, sigue estos pasos:
Copia el siguiente código en un archivo:
- realmsSelector: realms: - projects/games/locations/australia-southeast1/realms/australia configVersion: v2
Para aplicar los cambios, ejecuta el siguiente comando:
gcloud game servers deployments update-rollout stk --config-overrides-file configOverrideFile --no-dry-run
en el que configOverrideFile es la ruta al archivo con una configuración de anulación.
Una vez que hayas confirmado que la región de la versión canary está en buen estado, ejecuta el siguiente comando para implementar la versión nueva en todas partes:
gcloud game servers deployments update-rollout stk --default-config "v2" --no-dry-run
Cuando se completa la operación, la configuración v2
se implementa en todas partes.
Ahora ejecuta el siguiente comando para limpiar la anulación:
gcloud game servers deployments update-rollout stk --no-dry-run --clear-config-overrides
Lanza una implementación de versiones canary
Puedes usar una implementación independiente para probar la configuración. Inicialmente, no hay una implementación de versiones canary dedicada.
Comienza por crear la implementación de versiones canary:
gcloud game servers deployments create canary
Asegúrate de que el selector usado en GameServerAllocation pueda seleccionar GameServers tanto en la flota principal como en la flota de versiones canary, de modo que no se requieran cambios en tus estrategias de asignación actuales.
A continuación, ejecuta el siguiente comando a fin de crear una configuración
v1
que sea idéntica a la configuración activa en la implementación de versiones no canary:gcloud game servers configs create v1 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
en la que fleetSpecFile es la ruta de acceso del archivo que contiene la especificación de la flota. scalingConfigFile es la ruta de acceso del archivo que contiene todas las configuraciones de escalamiento.
Recomendamos configurar las configuraciones de escalamiento para que las flotas de versiones canary sean mucho más pequeñas que las flotas normales.
Ejecuta el siguiente comando para actualizar el lanzamiento de versión canary a fin de que la configuración
v1
se implemente en todas partes:gcloud game servers deployments update-rollout canary --default-config v1 --no-dry-run
Verifica que las flotas de versiones canary estén en buen estado.
Ejecuta el siguiente comando para crear la configuración
v2
en la implementación de versiones canary:gcloud game servers configs create v2 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
en la que fleetSpecFile es la ruta de acceso del archivo que contiene la especificación de la flota. scalingConfigFile es la ruta de acceso del archivo que contiene todas las configuraciones de escalamiento. Te recomendamos configurar las flotas de versiones canary en un tamaño pequeño.
Ejecuta el siguiente comando para implementar la configuración
v2
en la implementación de versiones canary:gcloud game servers deployments update-rollout canary --default-config v2 --no-dry-run
Verifica que las flotas de versiones canary estén en buen estado.
Ejecuta el siguiente comando para implementar la configuración
v2
en la implementación principal:gcloud game servers deployments update-rollout stk --default-config v2 --no-dry-run
Verifica que las flotas están en buen estado. En esta etapa,
v2
se lanza en todas partes.Limpia la implementación de versiones canary.
Ejecuta el siguiente comando para borrar el lanzamiento de la implementación de versiones canary:
gcloud game servers deployments update-rollout canary --clear-default-config --no-dry-run
Ejecuta el siguiente comando para borrar la configuración “v1”:
gcloud game servers configs delete v1 --deployment=canary
Borra la configuración “v2” con el siguiente comando:
gcloud game servers configs delete v2 --deployment=canary
Para quitar la implementación de versiones canary, ejecuta el siguiente comando:
gcloud game servers deployments delete canary
Para obtener un control más preciso sobre una implementación, puedes aplicar una configuración en dominios seleccionados mediante anulaciones antes de establecer la configuración como predeterminada. Sigue el mismo procedimiento para lanzar la versión canary de forma más gradual.
Puedes omitir los primeros tres pasos y el último paso manteniendo una implementación de versiones canary permanente. Para lanzamientos frecuentes y habituales, recomendamos este enfoque.