arrow_back

Aprovechamiento de la herramienta Escalador automático para Cloud Spanner con el objetivo de lograr la elasticidad de la carga de trabajo

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Aprovechamiento de la herramienta Escalador automático para Cloud Spanner con el objetivo de lograr la elasticidad de la carga de trabajo

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

SCBL069

Descripción general

El Escalador automático para Cloud Spanner es una herramienta de código abierto que te permite aumentar o reducir automáticamente la capacidad de procesamiento en una o más instancias de Spanner según su uso.

Cloud Spanner es una base de datos relacional completamente administrada con escalamiento ilimitado, coherencia sólida y disponibilidad de hasta el 99.999%.

Cuando creas una instancia de Cloud Spanner, eliges la cantidad de nodos o unidades que proporcionan recursos de procesamiento para la instancia. A medida que cambia la carga de trabajo de la instancia, Cloud Spanner no ajusta de manera automática la cantidad de nodos o unidades de procesamiento en la instancia.

El Escalador automático supervisa tus instancias y agrega o quita automáticamente la capacidad de procesamiento para garantizar que se mantengan dentro de los valores máximos recomendados para el uso de CPU y el límite recomendado para el almacenamiento por nodo.

En este lab, implementarás el Escalador automático en la configuración por proyecto. En esta configuración de implementación, el Escalador automático se encuentra en el mismo proyecto que la instancia de Cloud Spanner con ajuste de escala automático.

Arquitectura

En el diagrama anterior, se muestran los componentes del Escalador automático de Cloud Spanner y el flujo de interacción:

  1. El componente de sondeo (formado por Cloud Scheduler, Cloud Pub/Sub y Cloud Run Functions de sondeo) consulta la API de Cloud Monitoring para recuperar las métricas de uso de cada instancia de Spanner. Para cada instancia, la función de sondeo envía un mensaje al tema de escalamiento de Pub/Sub que contiene las métricas de uso de la instancia específica de Spanner y algunos de sus parámetros de configuración correspondientes.

  2. El componente de escalador está formado por Cloud Pub/Sub, Cloud Run Functions de escalador y Cloud Firestore. Para cada mensaje, la función de escalador compara las métricas de las instancias de Spanner con los umbrales recomendados, a lo que se suma o resta un margen permitido. Con el método de escalamiento elegido, determina si se debe escalar la instancia y la cantidad de nodos o unidades de procesamiento a los que se debe escalar.

Durante el flujo, el Escalador automático de Spanner escribe un resumen paso a paso de las recomendaciones y acciones en Cloud Logging para el seguimiento y la auditoría.

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

En este lab práctico, se te proporcionarán credenciales temporales nuevas para acceder a Google Cloud y realizar las actividades en un entorno de nube real, no en uno de simulación o demostración.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo)
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:

    • El botón Abrir la consola de Google
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla.

Active Google Cloud Shell

Google Cloud Shell es una máquina virtual que cuenta con herramientas de desarrollo. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Google Cloud Shell proporciona acceso de línea de comandos a sus recursos de GCP.

  1. En GCP Console, en la barra de herramientas superior derecha, haga clic en el botón Abrir Cloud Shell.

  2. Haga clic en Continue (Continuar):

Toma unos minutos aprovisionar y conectarse con el entorno. Cuando está conectado, ya está autenticado y el proyecto está configurado en su PROJECT_ID . Por ejemplo:

gcloud es la herramienta de línea de comandos para Google Cloud Platform. Viene preinstalada en Cloud Shell y es compatible con la función “tab-completion”.

Puede mostrar el nombre de la cuenta activa con este comando:

gcloud auth list

Resultado:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

Puede mostrar el ID del proyecto con este comando:

gcloud config list project
	

Resultado:

[core]
project = <project_ID>
	

Resultado de ejemplo:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	
Nota: Cuando ejecutes gcloud en tu propia máquina, los parámetros de configuración se mantendrán en todas las sesiones. Sin embargo, en Cloud Shell, deberás establecer la configuración en cada nueva sesión o reconexión.

Tarea 1. Configura el Escalador automático y el entorno

  1. En Cloud Shell, clona los archivos necesarios para el lab:
git clone https://github.com/cloudspannerecosystem/autoscaler
  1. Configura las variables de entorno del proyecto y la carpeta:
gcloud config set project {{{project_0.project_id|Project ID}}} export WORKING_DIR=`pwd` export AUTOSCALER_DIR=${WORKING_DIR}/autoscaler/terraform/cloud-functions/per-project export AUTOSCALER_MODS=${WORKING_DIR}/autoscaler/terraform/modules export PROJECT_ID={{{project_0.project_id|Project ID}}}
  1. Configura la región, la zona y la ubicación de App Engine donde estará la infraestructura del Escalador automático:
export REGION={{{project_0.default_region|Lab Region}}} export ZONE={{{project_0.default_zone|Lab Zone}}} export APP_ENGINE_LOCATION={{{project_0.default_region|Lab Region}}}
  1. Habilita las APIs de Cloud obligatorias:
gcloud services enable iam.googleapis.com \ cloudresourcemanager.googleapis.com \ appengine.googleapis.com \ firestore.googleapis.com \ spanner.googleapis.com \ pubsub.googleapis.com \ cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ cloudscheduler.googleapis.com \ run.googleapis.com \ eventarc.googleapis.com
  1. Crea una nueva aplicación de App Engine en la región en la que deseas implementar el Escalador automático. Esto creará una nueva instancia de Cloud Firestore para tu proyecto:
gcloud app create --region=${APP_ENGINE_LOCATION}
  1. Actualiza los valores en los archivos de variables de Terraform (variables.tf) para que coincidan con tu proyecto de Qwiklabs:
sed -i "s/us-central1-c/$ZONE/g; s/us-central1/$REGION/g" ${AUTOSCALER_DIR}/variables.tf sed -i "s/us-central1/$REGION/g" ${AUTOSCALER_MODS}/autoscaler-functions/variables.tf sed -i "s/us-central/$REGION/g" ${AUTOSCALER_MODS}/scheduler/variables.tf

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una base de datos de Firestore

Tarea 2. Implementa el Escalador automático

  1. Configura el ID del proyecto, la región y la zona en las variables de entorno de Terraform correspondientes:
export TF_VAR_project_id=${PROJECT_ID} export TF_VAR_region=${REGION} export TF_VAR_zone=${ZONE}
  1. Establece TF_VAR_spanner_name en autoscale-test, el nombre de la instancia de Spanner que se creó para ti durante la configuración del lab:
export TF_VAR_spanner_name=autoscale-test

Esto hace que Terraform configure el Escalador automático para un Cloud Spanner llamado autoscale-test y actualice IAM en la instancia de Cloud Spanner. Esa instancia de Cloud Spanner se creó para ti durante la configuración del lab.

Especificar el nombre de una instancia existente es lo que normalmente se hace para las implementaciones de producción en las que ya hay una implementación de Cloud Spanner.

  1. Cambia al directorio de Terraform por proyecto y, luego, inicialízalo:
cd ${AUTOSCALER_DIR} terraform init
  1. Importa la aplicación de AppEngine existente al estado de Terraform:
terraform import module.scheduler.google_app_engine_application.app ${PROJECT_ID}
  1. Crea la infraestructura del Escalador automático:
terraform apply -parallelism=2
  1. Responde yes cuando se te solicite, después de revisar los recursos que Terraform pretende crear.
Nota: Si tienes problemas con los permisos, espera un minuto y vuelve a ejecutar el comando terraform apply -parallelism=2 en Cloud Shell. Nota: Si estás en Cloud Shell y encuentras el error “443: connect: cannot assign requested address”, intenta reducir el parámetro de paralelismo.
  1. Ve a menú de navegación > Firestore y haz clic en el ID de tu base de datos (default).

  2. Ahora, haz clic en el botón Cambiar al modo nativo y, luego, en Cambiar modos.

Nota: Si ves algún error, como Collections failed to load, espera unos minutos y actualiza la página.

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar el Escalador automático

Tarea 3. Observa el escalado automático

  1. Haz clic en el ícono de tres líneas en la parte superior izquierda para abrir el menú de navegación. A continuación, haz clic en Ver todos los productos, luego en Bases de datos y, por último, en Spanner. Se carga la página principal de Spanner.

  2. Haz clic en el nombre de la instancia autoscale-test y, luego, en Estadísticas del sistema a la izquierda, donde verás varias métricas de Spanner.

Nota: Es posible que debas esperar unos minutos para que se empiecen a completar los gráficos y observar el escalado automático. El escalador automático verifica la instancia cada 2 minutos.
  1. Desplázate hacia abajo para ver el uso de CPU. La generación de carga producirá aumentos repentinos en el uso de CPU de prioridad alta que se verán similares al siguiente gráfico:

En el gráfico, puedes ver dos aumentos repentinos que superan el umbral recomendado del 65% de uso de CPU.

  1. Desplázate hacia abajo para ver el gráfico de capacidad de procesamiento. En Unidad de procesamiento, selecciona Unidades de procesamiento.

El Escalador automático supervisa la instancia de Spanner y, cuando el uso de CPU supera el 65%, agrega capacidad de procesamiento. En este ejemplo, se agregan más unidades de procesamiento cada vez. La cantidad de unidades de procesamiento o nodos que agrega el Escalador automático se determina por el método de escalamiento.

Revisión de los registros del Escalador automático

  1. Para ver los registros de Cloud Run Functions de sondeo y escalador del Escalador automático, ve a menú de navegación > Logging.
  2. Ingresa el siguiente filtro en el cuadro de texto del Compilador de consultas:
resource.labels.configuration_name=~"tf-.*-function"
  1. Haz clic en Ejecutar consulta en el extremo derecho.

En Resultados de la consulta, puedes ver todos los mensajes de las funciones del Escalador automático. Como la función de sondeo solo se ejecuta cada 2 minutos, es posible que debas volver a ejecutar la consulta para recibir los mensajes de registro.

  1. Para ver solo los mensajes de la función de sondeo, ingresa el siguiente filtro en el cuadro de texto del Compilador de consultas:
resource.labels.configuration_name="tf-poller-function"
  1. Haz clic en Ejecutar consulta en el extremo derecho.

En Resultados de la consulta, solo verás los mensajes de la función de sondeo. Como la función de sondeo solo se ejecuta cada 2 minutos, es posible que debas volver a ejecutar la consulta para recibir los mensajes de registro.

  1. Revisa los registros en los horarios aproximados en que se activó el escalado automático.

La función de sondeo supervisa de forma continua la instancia de Spanner:

En este ejemplo, la función de sondeo obtiene las métricas de CPU de prioridad alta, CPU de 24 h progresiva y almacenamiento, y publica un mensaje para la función de escalador. Ten en cuenta que la CPU de prioridad alta es del 78.32% en este punto.

  1. Para ver solo los mensajes de la función de escalador, ingresa el siguiente filtro en el cuadro de texto del Compilador de consultas:
resource.labels.configuration_name="tf-scaler-function"
  1. Haz clic en Ejecutar consulta en el extremo derecho.
  2. En Resultados de la consulta, solo verás los mensajes de la función de escalador relacionados con las sugerencias de “nodos” y las decisiones de escalamiento.
Nota: Con estos filtros o similares, puedes crear métricas basadas en registros, lo que puede ser útil. Por ejemplo, te permiten hacer un seguimiento de la frecuencia de los eventos de escalado automático o usarlos en los gráficos de Cloud Monitoring y las políticas de alertas.

La función de escalador recibe ese mensaje y decide si se debe escalar la instancia de Spanner.

En este ejemplo, el método de escalamiento LINEAL sugiere escalar de 300 a 400 unidades de procesamiento según el valor de CPU de prioridad alta. Como la última operación de escalamiento se realizó hace más de cinco minutos, el escalador toma la decisión de escalar a 400 unidades de procesamiento.

¡Felicitaciones!

Ya implementaste la herramienta de Escalador automático para Cloud Spanner, que te permite aumentar o reducir automáticamente la cantidad de nodos según las necesidades de la carga de trabajo. Practicaste el uso de Cloud Run Functions, Spanner y Scheduler, y Cloud Monitoring.

Actualización más reciente del manual: 19 de noviembre de 2024

Prueba más reciente del lab: 19 de noviembre de 2024

Copyright 2024 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.