Escalamiento según las predicciones


Puedes configurar el ajuste de escala automático en un grupo de instancias administrado (MIG)para agregar o quitar instancias de máquina virtual (VM) de forma automática según los aumentos o las disminuciones en la carga. Sin embargo, si la aplicación tarda unos minutos en inicializarse, agregar instancias en respuesta a cambios en tiempo real podría no aumentar la capacidad de tu aplicación con la rapidez suficiente. Por ejemplo, si hay un gran aumento en la carga (como cuando los usuarios se despiertan por la mañana), es posible que algunos usuarios experimenten demoras mientras tu aplicación se inicializa en instancias nuevas.

Puedes usar el ajuste de escala automático predictivo a fin de mejorar los tiempos de respuesta para las aplicaciones con tiempos de inicialización largos y cuyas cargas de trabajo varíen de forma predecible con ciclos diarios o semanales.

Cuando habilitas el ajuste de escala automático predictivo, Compute Engine predice la carga futura en función del historial de tu MIG y escala horizontalmente el MIG antes de la carga prevista, de modo que las instancias nuevas estén listas para entregar cuando llegue la carga. Sin el ajuste de escala automático predictivo, un escalador automático solo puede escalar de manera reactiva un grupo en función de los cambios observados en tiempo real. Con el ajuste de escala automático predictivo habilitado, el escalador automático trabaja con datos en tiempo real y con datos históricos para abarcar la carga actual y prevista. Para obtener más información, consulta Cómo funciona el ajuste de escala automático predictivo y Comprueba si el ajuste de escala automático predictivo es adecuado para tu carga de trabajo.

Antes de comenzar

  • Si quieres usar los ejemplos de la línea de comandos de esta guía, instala la Google Cloud CLI o inicia Cloud Shell.
  • Lee acerca de los aspectos básicos del escalador automático.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Precios

El ajuste de escala automático predictivo es gratuito. Sin embargo, si habilitas el ajuste de escala automático predictivo a fin de optimizar la disponibilidad, pagas por los recursos de Compute Engine que usa el MIG.

Limitaciones

  • El ajuste de escala automático predictivo solo funciona con el uso de CPU como la métrica de escalamiento. No se admiten las métricas de Cloud Load Balancing ni de Cloud Monitoring.
  • Compute Engine requiere 3 días de historial de ajuste de escala automático basado en CPU antes de que pueda generar predicciones.
  • Las predicciones se basan en patrones de carga diarios y semanales. Compute Engine no predice los eventos mensuales, anuales o únicos, y no predice los patrones de carga de menos de 10 minutos. Puedes usar el ajuste de escala automático basado en programas a fin de solicitar capacidad para patrones de carga únicos o de otro tipo.

Cargas de trabajo adecuadas

El ajuste de escala automático predictivo funciona mejor si tu carga de trabajo cumple con los siguientes criterios:

  • Tu aplicación tarda mucho tiempo en inicializarse, por ejemplo, si configuras un período de inicialización de más de 2 minutos.
  • Tu carga de trabajo varía de manera predecible con ciclos diarios o semanales.

Si tu servicio tarda mucho en inicializarse, es posible que los usuarios experimenten una latencia de servicio después de un evento de escalamiento horizontal, es decir, mientras se aprovisionan las VM nuevas, pero aún no se entregan. El ajuste de escala automático predictivo tiene en cuenta el tiempo de inicialización de la aplicación y aumenta la escala horizontalmente antes de aumentos de uso previstos, lo que ayuda a garantizar que la cantidad de instancias disponibles sea suficiente para el uso objetivo.

Para obtener una vista previa de cómo el ajuste de escala automático predictivo puede afectar tu grupo, consulta Comprueba si el ajuste de escala automático predictivo es adecuado para tu carga de trabajo.

Inhabilita y habilita el ajuste de escala automático predictivo

Puedes habilitar el ajuste de escala automático predictivo cuando escalas según el uso de CPU. Para obtener más información sobre la configuración del ajuste de escala automático basado en CPU, consulta Escalamiento según el uso de CPU.

Si tu MIG no tiene historial del escalador automático, puede tomar 3 días hasta que el algoritmo predictivo afecte al escalador automático. Durante este tiempo, el grupo escala solo según los datos en tiempo real. Después de 3 días, el grupo comienza a escalar con predicciones. A medida que se recopila más carga de carga, el escalador automático predictivo entiende mejor los patrones de carga y las previsiones mejoran. Compute Engine usa hasta 3 semanas del historial de carga de tu MIG para alimentar el modelo de aprendizaje automático.

Console

  1. En la consola de Cloud, ve a la página Grupos de instancias.

    Ir a Grupos de instancias

  2. En la lista, haz clic en el nombre de un MIG existente para abrir la página de resumen del grupo.

  3. Haz clic en Edit.

  4. Si no existe una configuración del ajuste de escala automático, en Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.

  5. En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.

  6. Especifica la cantidad mínima y máxima de instancias que deseas que el escalador automático cree en este grupo.

  7. En la sección Política de ajuste de escala automático, si aún no existe una métrica de uso de CPU, agrega una:

    1. Haz clic en Agregar métrica.
    2. En Tipo de métrica, elige Uso de CPU.
    3. Ingresa el Uso objetivo de CPU que desees. Este valor se trata como un porcentaje. Por ejemplo, para un 75% de uso de CPU, ingresa 75.
    4. En Ajuste de escala automático predictivo, elige Optimizar para lograr mayor disponibilidad a fin de habilitar el ajuste de escala automático predictivo.
      • De manera alternativa, si deseas inhabilitar el algoritmo predictivo y usar solo el escalador automático en tiempo real, elige Desactivado.
    5. Haz clic en Listo.
  8. En Período de inicialización, especifica el tiempo que tarda tu aplicación en inicializarse en una instancia nueva. Esta configuración informa al escalador automático predictivo que se escale horizontalmente aún más antes de la carga prevista, de modo que las aplicaciones se inicialicen cuando llegue la carga.

  9. Haz clic en Guardar.

gcloud

Cuando configuras o actualizas el escalador automático de MIG, incluye la marca --cpu-utilization-predictive-method con uno de los siguientes valores:

  • optimize-availability: para habilitar el algoritmo predictivo
  • none (predeterminado): inhabilita el algoritmo predictivo

Si el ajuste de escala automático basado en la CPU aún no está habilitado para el grupo, debes habilitarlo. Puedes usar el comando set-autoscaling para configurar la política de ajuste de escala automático de un grupo desde cero. Por ejemplo, el siguiente comando muestra cómo configurar el ajuste de escala automático con los siguientes ajustes:

  • Ajuste de escala automático predictivo: Habilitado
  • Uso de CPU objetivo: 75%.
  • La cantidad máxima de instancias configuradas en 20.
  • Un período de inicialización (--cool-down-period) establecido en 5 minutos. Esta configuración informa al escalador automático predictivo que se escale horizontalmente 5 minutos antes de la carga prevista, de modo que las aplicaciones se inicialicen cuando llegue la carga.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --cpu-utilization-predictive-method optimize-availability \
  --target-cpu-utilization 0.75 \
  --max-num-replicas 20 \
  --cool-down-period 300

Si el ajuste de escala automático basado en la CPU ya está habilitado para el grupo, usa el comando update-autoscalingpara habilitar el algoritmo predictivo:

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
  --cpu-utilization-predictive-method=optimize-availability

REST

Cuando crees o actualices un escalador automático, incluye el campo predictiveMethod en el cuerpo de la solicitud con uno de los siguientes valores:

  • OPTIMIZE_AVAILABILITY: para habilitar el algoritmo predictivo
  • NONE (predeterminado): inhabilita el algoritmo predictivo

Si el grupo no tiene una configuración del ajuste de escala automático existente, haz lo siguiente:

Si el grupo ya tiene una configuración del ajuste de escala automático, haz lo siguiente:

Si el ajuste de escala automático basado en la CPU aún no está habilitado para el grupo, debes habilitarlo.

Por ejemplo, la siguiente solicitud aplica un parche a un recurso de escalador automático existente para habilitar el ajuste de escala automático basado en CPU con la siguiente configuración:

  • Ajuste de escala automático predictivo: Habilitado
  • Uso de CPU objetivo: 75%.
  • La cantidad máxima de instancias configuradas en 20.
  • Un período de inicialización (coolDownPeriodSec) establecido en 5 minutos. Esta configuración informa al escalador automático predictivo que se escale horizontalmente 5 minutos antes de la carga prevista, de modo que las aplicaciones se inicialicen cuando llegue la carga.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers/

{
  "name": "AUTOSCALER_NAME",
  "target": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME",
  "autoscalingPolicy": {
    "cpuUtilization": {
       "utilizationTarget": 0.75,
       "predictiveMethod": "OPTIMIZE_AVAILABILITY"
     },
    "maxNumReplicas": 20,
    "coolDownPeriodSec": 300
  }
}

Comprueba que el escalador automático predictivo esté habilitado

Para ver la configuración actual del ajuste de escala automático de MIG, consulta Obtén las propiedades de un MIG.

Configura el ajuste de escala automático predictivo

Para obtener más información sobre cómo configurar el uso objetivo, la cantidad mínima y máxima de instancias y el período de inactividad, consulta Escalamiento según el uso de CPU. Cuando configuras estas opciones, el escalador automático predictivo trabaja para mantener todas las instancias al nivel de uso objetivo que estableciste, dentro de los límites mínimos y máximos del grupo, de la misma manera que un escalador automático en tiempo real.

Usa la configuración del período de inicialización para tener en cuenta el tiempo que demora tu aplicación en inicializarse. Esta configuración influye en la medida en que el escalador automático predictivo inicia instancias nuevas antes del aumento previsto en la carga, para que tu aplicación esté lista para entregar cuando llegue la carga.

Comprueba que el ajuste de escala automático predictivo sea adecuado para tu carga de trabajo

Para ver si el ajuste de escala automático predictivo puede mejorar la disponibilidad de tu aplicación, puedes comparar el rendimiento de la configuración actual del ajuste de escala automático basado en la CPU de tu grupo con el ajuste de escala automático predictivo. No necesitas habilitar el ajuste de escala automático predictivo para realizar la comparación.

A fin de obtener más información sobre las cargas de trabajo adecuadas para el ajuste de escala automático predictivo, consulta las cargas de trabajo adecuadas.

Verifica si existen sobrecargas

Tu MIG con ajuste de escala automático está sobrecargado cuando el uso promedio de CPU supera tu objetivo. Para verificar si tu configuración del ajuste de escala automático provocó VM sobrecargadas durante los últimos 7 días y ver si el ajuste de escala automático predictivo puede reducir las cargas, completa los siguientes pasos:

  1. En la consola de Cloud, ve a la página Grupos de instancias.

    Ir a Grupos de instancias

  2. Haz clic en un MIG existente para el que se haya configurado el ajuste de escala automático basado en CPU. Se abrirá la página de descripción general del grupo.

  3. Haga clic en Editar.

  4. En la sección Ajuste de escala automático, en Métricas de ajuste de escala automático, expande la sección Uso de CPU, luego haz clic en Ver si el ajuste de escala automático predictivo puede optimizar tu disponibilidad.

  5. Según los datos de los últimos 7 días, en la tabla se muestra cuántas VM se usaron por día y cuántas VM se sobrecargaron por día en las siguientes filas:

    • Configuración actual del ajuste de escala automático: Muestra el rendimiento del escalador automático en función de la configuración del escalador automático en los últimos 7 días.
    • Con el ajuste de escala automático predictivo establecido en “Optimizar para lograr mayor disponibilidad”: Se muestra el rendimiento del escalador automático si se hubiera habilitado el ajuste de escala automático predictivo en los últimos 7 días.

Puedes usar la “cantidad de VM que se usan por día” como proxy para los costos. Por ejemplo, para reducir la cantidad diaria de VM sobrecargadas, el escalador automático predictivo puede crear las VM con anticipación y ejecutarlas por más tiempo, lo que genera cargos adicionales.

Supervisa y simula el ajuste de escala automático predictivo

Puedes visualizar el tamaño histórico de tu grupo con Cloud Monitoring. En el grafo de supervisión, se muestra cómo la configuración del ajuste de escala automático escala el grupo a lo largo del tiempo y, también, cómo el ajuste de escala automático predictivo, si se habilitó, habría escalado tu grupo.

En el caso de los grupos con ajuste de escala automático predictivo, puedes usar esta herramienta para simular el ajuste de escala automático predictivo antes de habilitarlo.

  1. En la consola de Cloud, ve a la página Grupos de instancias.

    Ir a Grupos de instancias

  2. Haz clic en un MIG existente para el que se haya configurado el ajuste de escala automático basado en CPU. Se abrirá la página de descripción general del grupo.

  3. Haz clic en Monitoring para ver los gráficos relacionados con el grupo.

  4. En el primer gráfico, haz clic en el título y elige Ajuste de escala automático predictivo. Esta vista muestra el tamaño real del grupo y el tamaño previsto.

  5. Puedes seleccionar un intervalo de tiempo diferente para ver más historial o hacer un acercamiento en un período en el que la demanda creció para ver cómo el ajuste de escala automático predictivo afecta el tamaño del grupo antes de la carga prevista.

Cómo funciona el ajuste de escala automático predictivo

El escalador automático predictivo prevé la métrica de escalamiento según las tendencias históricas de la métrica. Las previsiones se vuelven a calcular cada pocos minutos, lo que permite que el escalador automático adapte rápidamente su previsión a cambios muy recientes en la carga. El escalador automático predictivo necesita al menos 3 días de historial a fin de determinar un patrón de uso de servicio representativo antes de que pueda proporcionar predicciones. Compute Engine usa hasta 3 semanas del historial de carga de tu MIG para alimentar el modelo de aprendizaje automático.

El escalador automático predictivo calcula la cantidad de VM necesarias para alcanzar tu objetivo de uso en función de varios factores, incluidos los siguientes:

  • El valor futuro previsto de la métrica de escalamiento
  • El valor actual de la métrica de escalamiento
  • Confianza en las tendencias anteriores, incluida la variabilidad anterior de la métrica de escalamiento.
  • El período de inicialización de la aplicación configurado, también conocido como el período de inicialización

Sobre la base de estos factores, el escalador automático predictivo escala horizontalmente tu grupo antes de la demanda prevista.

Comparación entre la entrega de VM con y sin ajuste de escala automático predictivo.

Figura 1. Comparación entre la entrega de VM con y sin ajuste de escala automático predictivo.

En la figura 1, la línea azul muestra una demanda creciente de VM. La línea negra muestra la respuesta del escalador automático: se agregan más VM. Sin embargo, en el caso de las aplicaciones con tiempos de inicialización prolongados, la línea gris muestra que las VM agregadas requieren tiempo adicional antes de estar listas para entregar, lo que puede dar como resultado que las VM de entrega no cumplan con la demanda. Con el ajuste de escala automático predictivo habilitado, se tienen en cuenta el aumento previsto en la demanda y la inicialización de la aplicación durante mucho tiempo: el escalador automático agrega VMs antes, lo que da como resultado una cantidad suficiente de VM de entrega. Puedes configurar hasta qué punto se agregan instancias nuevas con anticipación si configuras el período de inicialización.

Datos de uso en tiempo real

El escalador automático predictivo no puede determinar un patrón para todos los cambios futuros en el uso basados en datos históricos, por lo que también funciona sin problemas con datos en tiempo real. Por ejemplo, un evento de noticias inesperado podría contribuir a un aumento del uso que no se podría predecir solo según la historia. Para manejar esos cambios impredecibles en la carga, el escalador automático predictivo responde de la siguiente manera:

  • Adapta sus predicciones: Las predicciones se vuelven a calcular de forma constante en cuestión de minutos, por lo que se ajustan para incorporar los datos más recientes. Entre el momento exacto en el que se realizan los ajustes en los patrones nuevos depende de, entre otros factores, qué tan repetible es el patrón nuevo y qué tan grande es la diferencia entre el patrón nuevo y las predicciones anteriores.
  • Proporciona datos en tiempo real: la cantidad recomendada de instancias del escalador automático, basada en los valores de métricas en tiempo real de la métrica, siempre es suficiente para cumplir con el uso objetivo del grupo. Si el valor actual de una señal en tiempo real es mayor que la predicción, el valor actual de la señal tiene prioridad sobre la predicción. Como resultado, los MIG que tienen el ajuste de escala automático predictivo habilitado siempre tienen más disponibilidad que los MIG que no.

Existen dos gráficos que muestran cómo las predicciones se adaptan al uso real de la CPU.

Figura 2. Existen dos gráficos que muestran cómo las predicciones se adaptan al uso real de la CPU.

En la figura 2, la línea amarilla punteada muestra la predicción de t1. Sin embargo, el uso real de la CPU, como lo muestra la línea azul sólida, es diferente de lo previsto. En el gráfico de la izquierda, el uso real de la CPU es superior al previsto. En el gráfico de la derecha, el uso real de la CPU es más bajo de lo previsto. La línea de puntos azul muestra la predicción ajustada.

Aumentos de tráfico cortos e impredecibles

Los aumentos de tráficos cortos e impredecibles se analizan en tiempo real. El escalador automático crea, al menos, tantas instancias como sea necesario para mantener el uso en el objetivo configurado, según el valor real actual de la métrica. Sin embargo, estas instancias no se crean por adelantado, como se muestra en la siguiente figura.

Un aumento de actividad corto e impredecible hace que el escalador automático reaccione en tiempo real.

Figura 3. Un aumento de actividad corto e impredecible hace que el escalador automático reaccione en tiempo real.

En la figura 3, la línea azul sólida muestra el uso real de la CPU. No se pudo predecir un aumento inesperado en el uso de la CPU. Debido a que el escalador automático siempre supervisa los datos en tiempo real, agrega instancias para adaptarse al aumento. La línea negra sólida ilustra la adición reactiva del escalador automático de VM en respuesta al aumento. La línea gris sólida muestra la cantidad de VM de entrega. La línea gris se retrasa detrás de la línea negra debido al tiempo de inicialización de la aplicación. En esta situación, el grupo está sobrecargado de forma temporal.

Disminuciones repentinas

Otro tipo de cambio impredecible en el uso es una disminución repentina, por ejemplo, una caída causada por una falla en parte de la pila de aplicaciones. Cuando eso sucede, la cantidad de instancias sigue la previsión inicialmente. Sin embargo, con el tiempo, la previsión se ajusta al uso previsto más bajo, lo que genera una escala en escala. El tiempo exacto de este ajuste depende de varios factores, como la frecuencia con la que el patrón ocurrió en el pasado, la duración de la caída y su profundidad.

Una caída repentina hace que el escalador automático predictivo cambie su previsión.

Figura 4. Una caída repentina hace que el escalador automático predictivo cambie su previsión.

En la figura 4, la línea amarilla punteada muestra la predicción de t1. Sin embargo, el uso real de la CPU, como lo muestra la línea azul sólida, disminuyó más de lo previsto. La línea azul punteada muestra la predicción actualizada, que se ajusta de forma automática después de observar el uso más bajo de lo previsto. Esto hace que el escalador automático quite instancias que sigan el período de estabilización estándar.

Datos históricos

El escalador automático predictivo necesita al menos 3 días de carga histórica para comenzar a prever. Si tienes un MIG nuevo que carece de datos históricos, Compute Engine escala tu grupo de forma reactiva con datos en tiempo real hasta que haya suficientes datos históricos disponibles. Después de 3 días, a medida que Compute Engine recopila datos de uso adicionales, las predicciones mejoran.

Si actualizas tu aplicación mediante la creación de un nuevo MIG y el borrado del anterior, por ejemplo, una implementación azul-verde, entonces tu nuevo MIG necesita 3 días de datos de carga históricos para que el ajuste de escala automático predictivo pueda volver a generar previsiones. Si deseas conservar el historial de cargas en MIG para que las previsiones puedan comenzar de inmediato cuando crees un MIG nuevo, comunícate con nosotros para solicitar instrucciones a fin de unirte a una vista previa privada.

¿Qué sigue?