Escalado basado en predicciones


Puede configurar el escalado automático para un grupo de instancias administrado (MIG) para agregar o eliminar automáticamente instancias de máquinas virtuales (VM) en función de los aumentos o disminuciones de la carga. Sin embargo, si su aplicación tarda unos minutos o más en inicializarse, es posible que agregar instancias en respuesta a cambios en tiempo real no aumente la capacidad de su aplicación con la suficiente rapidez. Por ejemplo, si hay un gran aumento en la carga (como cuando los usuarios se despiertan por primera vez por la mañana), algunos usuarios pueden experimentar retrasos mientras su aplicación se inicializa en nuevas instancias.

Puede utilizar el escalado automático predictivo para mejorar los tiempos de respuesta de aplicaciones con tiempos de inicialización prolongados y cuyas cargas de trabajo varían de manera predecible con ciclos diarios o semanales.

Cuando habilitas el escalado automático predictivo, Compute Engine pronostica la carga futura en función del historial de tu MIG y escala el MIG antes de la carga prevista, de modo que las nuevas instancias estén listas para funcionar cuando llegue la carga. Sin el escalado automático predictivo, un escalador automático solo puede escalar un grupo de forma reactiva, en función de los cambios observados en la carga en tiempo real. Con el escalado automático predictivo habilitado, el escalador automático funciona con datos en tiempo real, así como con datos históricos para cubrir tanto la carga actual como la prevista. Para obtener más información, consulte Cómo funciona el escalado automático predictivo y Comprobar si el escalado automático predictivo es adecuado para su carga de trabajo .

Antes de comenzar

  • Si desea utilizar los ejemplos de línea de comandos de esta guía, instale la CLI de Google Cloud o inicie Cloud Shell .
  • Lea acerca de los fundamentos del escalador automático.
  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. 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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

Precios

El escalado automático predictivo es gratuito. Sin embargo, si habilitas el escalado automático predictivo para optimizar la disponibilidad, pagas por los recursos de Compute Engine que utiliza tu MIG.

Limitaciones

  • El escalado automático predictivo solo funciona con la utilización de la CPU como métrica de escalado. No se admiten las métricas de Cloud Load Balancing o Cloud Monitoring.
  • Compute Engine requiere 3 días de historial de ajuste de escala automático basado en CPU antes de poder generar predicciones.
  • Las predicciones se basan en patrones de carga semanales y diarios. Compute Engine no predice eventos mensuales, anuales o únicos, ni tampoco predice patrones de carga que duren menos de 10 minutos. Puede utilizar el ajuste de escala automático basado en programación para solicitar capacidad para patrones de carga únicos u otros.

Cargas de trabajo adecuadas

El escalado automático predictivo funciona mejor si su carga de trabajo cumple con los siguientes criterios:

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

Si su servicio tarda mucho en inicializarse, sus usuarios podrían experimentar latencia del servicio después de un evento de escalamiento horizontal, es decir, mientras las nuevas máquinas virtuales están aprovisionadas pero aún no están funcionando. El escalado automático predictivo tiene en cuenta el tiempo de inicialización de su aplicación y se escala antes de los aumentos previstos en el uso, lo que ayuda a garantizar que la cantidad de instancias de servicio disponibles sea suficiente para el uso objetivo.

Para obtener una vista previa de cómo el escalado automático predictivo puede afectar a su grupo, consulte Comprobar si el escalado automático predictivo es adecuado para su carga de trabajo .

Habilitar y deshabilitar el escalado automático predictivo

Puede habilitar el escalado automático predictivo al escalar según la utilización de la CPU. Para obtener más información sobre cómo configurar el escalado automático basado en CPU, consulte Escalado basado en la utilización de CPU .

Si su MIG no tiene historial de escalador automático, pueden pasar 3 días antes de que el algoritmo predictivo afecte al escalador automático. Durante este tiempo, el grupo escala basándose únicamente en datos en tiempo real. Después de 3 días, el grupo comienza a escalar usando predicciones. A medida que se recopila más carga histórica, el escalador automático predictivo comprende mejor sus patrones de carga y sus pronósticos mejoran. Compute Engine utiliza hasta 3 semanas del historial de carga de tu MIG para alimentar el modelo de aprendizaje automático.

Consola

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

    Ir a grupos de instancias

  2. En la lista, haga clic en el nombre de un MIG existente para abrir la página de descripción general del grupo.

  3. Haga clic en Editar .

  4. Si no existe ninguna configuración de escalado automático, en Escalado automático , haga clic en Configurar escalado automático .

  5. En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.

  6. Especifique el número mínimo y máximo de instancias que desea que el escalador automático cree en este grupo.

  7. En la sección Señales de escalado automático , si aún no existe una métrica de utilización de CPU , agregue una:

    1. Haga clic en Agregar una señal .
    2. En el menú desplegable Tipo de señal , seleccione Utilización de CPU .
    3. Ingrese la utilización de CPU de destino que desee. Este valor se trata como un porcentaje. Por ejemplo, para una utilización de CPU del 75 %, ingrese 75 .
    4. En Escala automática predictiva , seleccione Optimizar para disponibilidad para habilitar la escala automática predictiva.
      • Como alternativa, si desea desactivar el algoritmo predictivo y utilizar solo el escalador automático en tiempo real, seleccione Desactivado .
    5. Haga clic en Listo .
  8. En Período de inicialización , especifique cuánto tiempo tarda su aplicación en inicializarse en una nueva instancia. Esta configuración informa al escalador automático predictivo que se amplíe más antes de la carga anticipada, de modo que las aplicaciones se inicialicen cuando llegue la carga.

  9. Haga clic en Guardar .

nube de gcloud

Al configurar o actualizar el escalador automático de un MIG, incluya el indicador --cpu-utilization-predictive-method con uno de los siguientes valores:

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

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

  • Escalado automático predictivo habilitado.
  • Objetivo de utilización de la CPU del 75 %.
  • El número máximo de instancias establecido 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 realice un escalamiento horizontal 5 minutos antes de la carga anticipada, 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 CPU ya está habilitado para el grupo, use el comando update-autoscaling para habilitar el algoritmo predictivo:

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

DESCANSAR

Al crear o actualizar un escalador automático, incluya el campo predictiveMethod en el cuerpo de la solicitud con uno de los siguientes valores:

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

Si el grupo no tiene ninguna configuración de escalado automático existente, haga lo siguiente:

Si el grupo ya tiene una configuración de escalado automático, haga lo siguiente:

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

Por ejemplo, la siguiente solicitud parchea un recurso de escalador automático existente para habilitar el escalado automático basado en CPU con la siguiente configuración:

  • Escalado automático predictivo habilitado.
  • Objetivo de utilización de la CPU del 75 %.
  • El número máximo de instancias establecido en 20.
  • Un período de inicialización ( coolDownPeriodSec ) establecido en 5 minutos. Esta configuración informa al escalador automático predictivo que realice un escalamiento horizontal 5 minutos antes de la carga anticipada, 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
  }
}

Comprobando si el escalador automático predictivo está habilitado

Para ver la configuración de escalado automático actual de un MIG, consulte Obtención de las propiedades de un MIG .

Configurar el escalado automático predictivo

Para obtener más información sobre cómo configurar la utilización de destino, el número mínimo y máximo de instancias y el período de inicialización, consulte Escalado basado en la utilización de CPU . Cuando configura estas opciones, el escalador automático predictivo funciona para mantener todas las instancias en el nivel de utilización objetivo que establezca, dentro de los límites mínimo y máximo del grupo, de la misma manera que lo hace un escalador automático en tiempo real.

Utilice la configuración del período de inicialización para tener en cuenta el tiempo que tarda su aplicación en inicializarse. Esta configuración influye en la antelación con la que el escalador automático predictivo inicia nuevas instancias antes del aumento previsto en la carga, de modo que su aplicación esté lista para funcionar cuando llegue la carga.

Comprobar si el escalado automático predictivo es adecuado para su carga de trabajo

Para ver si el escalado automático predictivo podría mejorar la disponibilidad de su aplicación, puede comparar el rendimiento de la configuración de escalado automático basada en CPU actual de su grupo con el escalado automático predictivo. No es necesario habilitar el escalado automático predictivo para realizar la comparación.

Para obtener más información sobre las cargas de trabajo que son adecuadas para el escalado automático predictivo, consulte Cargas de trabajo adecuadas .

Comprobando sobrecargas

Su MIG con escalado automático se sobrecarga cuando su utilización promedio de CPU excede su objetivo. Para verificar si su configuración de escalado automático generó máquinas virtuales sobrecargadas durante los últimos 7 días y para ver si el escalado automático predictivo puede reducir las sobrecargas, complete los siguientes pasos:

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

    Ir a grupos de instancias

  2. Haga clic en un MIG existente para el cual esté configurado el escalado automático basado en CPU. Se abre la página de descripción general del grupo.

  3. Haga clic en Editar .

  4. En la sección Escalado automático , en Señales de escalado automático , expanda la sección Uso de CPU y luego haga clic en Ver si el escalado automático predictivo puede optimizar su disponibilidad .

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

    • Configuración de escalado automático actual : muestra cómo se desempeñó el escalador automático según la configuración del escalador automático durante los últimos 7 días.
    • Con el escalado automático predictivo configurado en "Optimizar para disponibilidad" : muestra cómo se habría desempeñado el escalador automático si el escalado automático predictivo estuviera habilitado durante los últimos 7 días.

Puede utilizar el "Número de máquinas virtuales utilizadas por día" como indicador de los costos. Por ejemplo, para reducir la cantidad diaria de máquinas virtuales sobrecargadas, el escalador automático predictivo podría crear máquinas virtuales antes y ejecutarlas durante más tiempo, lo que genera cargos adicionales.

Monitoreo y simulación de escalado automático predictivo

Puedes visualizar el tamaño histórico de tu grupo usando Cloud Monitoring. El gráfico de monitoreo muestra cómo su configuración de escalado automático amplió su grupo a lo largo del tiempo y también muestra cómo el escalado automático predictivo, si estuviera habilitado, habría escalado su grupo.

Para grupos con el escalado automático predictivo deshabilitado, puede utilizar esta herramienta para simular el escalado automático predictivo antes de habilitarlo.

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

    Ir a grupos de instancias

  2. Haga clic en un MIG existente para el cual esté configurado el escalado automático basado en CPU. Se abre la página de descripción general del grupo.

  3. Haga clic en Monitoreo para ver gráficos relacionados con el grupo.

  4. En el primer gráfico, haga clic en su título y seleccione Escalado automático predictivo . Esta vista muestra el tamaño real del grupo así como su tamaño previsto.

  5. Puede seleccionar un rango de tiempo diferente para ver más historial o ampliar un período en el que creció la demanda para ver cómo el escalado automático predictivo afecta el tamaño del grupo antes de la carga prevista.

Cómo funciona el escalado automático predictivo

El escalador automático predictivo pronostica su métrica de escala en función de las tendencias históricas de la métrica. Los pronósticos se recalculan cada pocos minutos, lo que permite al escalador automático adaptar rápidamente su pronóstico a cambios muy recientes en la carga. El escalador automático predictivo necesita al menos 3 días de historial para determinar un patrón de uso de servicio representativo antes de poder proporcionar predicciones. Compute Engine utiliza 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 máquinas virtuales necesarias para lograr su objetivo de utilización en función de numerosos factores, incluidos los siguientes:

  • El valor futuro previsto de la métrica de escala.
  • El valor actual de la métrica de escala.
  • Confianza en las tendencias pasadas, incluida la variabilidad pasada de la métrica de escala
  • El período de inicialización de la aplicación configurada, también conocido como período de inicialización.

En función de dichos factores, el escalador automático predictivo amplía su grupo antes de la demanda anticipada.

Comparación de máquinas virtuales de servicio con y sin escalado automático predictivo.

Figura 1. Comparación de máquinas virtuales de servicio con y sin escalado automático predictivo.

En la figura 1, la línea azul muestra una demanda creciente de máquinas virtuales. La línea negra muestra la respuesta del escalador automático: se agregan más máquinas virtuales. Sin embargo, para las aplicaciones con tiempos de inicialización prolongados, la línea gris muestra que las máquinas virtuales agregadas requieren tiempo adicional antes de estar listas para funcionar, lo que puede dar como resultado que no haya suficientes máquinas virtuales en servicio para satisfacer la demanda. Con el escalado automático predictivo habilitado, se tienen en cuenta el aumento previsto en la demanda y el largo tiempo de inicialización de la aplicación: el escalador automático responde agregando VM antes, lo que da como resultado una cantidad suficiente de VM en servicio. Puede configurar con cuánta anticipación se agregan nuevas instancias estableciendo 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 basándose en datos históricos, por lo que también funciona perfectamente con datos en tiempo real. Por ejemplo, una noticia inesperada podría contribuir a un aumento en el uso que no podría haberse predicho basándose únicamente en el historial. Para manejar cambios tan impredecibles en la carga, el escalador automático predictivo responde de la siguiente manera:

  • Adapta sus predicciones: las predicciones se recalculan constantemente, en cuestión de minutos, para que se ajusten para incorporar los datos más recientes. El momento exacto de los ajustes a los nuevos patrones depende, entre otras cosas, de cuán repetible sea el nuevo patrón y de cuán grande sea la diferencia entre el nuevo patrón y las predicciones pasadas.
  • Produce datos en tiempo real: la cantidad de instancias recomendada por el escalador automático, basada en los valores en tiempo real de la métrica, siempre es suficiente para cumplir con la utilización 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 habilitado el escalado automático predictivo siempre tienen más disponibilidad que los MIG que no lo tienen.

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

Figura 2. Dos gráficos 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 en t 1 . Pero el uso real de la CPU, como lo muestra la línea azul continua, es diferente al previsto. En el gráfico de la izquierda, el uso real de la CPU es mayor de lo previsto. En el gráfico de la derecha, el uso real de la CPU es inferior al previsto. La línea azul punteada muestra la predicción ajustada.

Picos cortos e impredecibles

Los picos cortos e impredecibles se cubren en tiempo real. El escalador automático crea al menos tantas instancias como sea necesario para mantener la utilización en el objetivo configurado, según el valor real actual de la métrica. Sin embargo, estas instancias no se crean de antemano, como se muestra en la siguiente figura.

Un pico breve e impredecible hace que el escalador automático reaccione en tiempo real.

Figura 3. Un pico breve e impredecible hace que el escalador automático reaccione en tiempo real.

En la figura 3, la línea azul continua 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 monitorea los datos en tiempo real, agrega instancias para adaptarse al pico. La línea negra continua ilustra la adición reactiva de máquinas virtuales por parte del escalador automático en respuesta al pico. La línea gris continua muestra la cantidad de máquinas virtuales en servicio. La línea gris va por detrás de la línea negra debido al tiempo de inicialización de la aplicación. En este escenario, el grupo está temporalmente sobrecargado.

caídas repentinas

Otro tipo de cambio impredecible en el uso es una caída repentina, por ejemplo, una caída causada por una falla en parte de la pila de aplicaciones. Cuando eso sucede, el número de casos inicialmente sigue el pronóstico. Sin embargo, con el tiempo, el pronóstico se ajusta al uso inferior al previsto, lo que resulta en una ampliación. El momento exacto de este ajuste depende de numerosos factores, entre ellos: con qué frecuencia se produjo el patrón en el pasado, cuánto dura la caída y qué tan profunda es.

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

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

En la figura 4, la línea amarilla punteada muestra la predicción en t 1 . Pero el uso real de la CPU, como lo muestra la línea azul continua, cayó por debajo de lo previsto. La línea azul punteada muestra la predicción actualizada, que se ajustó automáticamente después de observar un uso inferior al previsto. Esto da como resultado que el escalador automático elimine instancias después del 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 realizar pronósticos. Si tienes un MIG nuevo que carece de datos históricos, Compute Engine escala tu grupo de forma reactiva utilizando 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 actualiza su aplicación creando un nuevo MIG y eliminando el antiguo (por ejemplo, una implementación azul-verde), entonces su nuevo MIG necesita 3 días de datos de carga históricos antes de que el escalado automático predictivo pueda comenzar a generar pronósticos nuevamente. Si desea conservar el historial de carga en todos los MIG para que los pronósticos puedan comenzar inmediatamente cuando cree un nuevo MIG, contáctenos para solicitar instrucciones para unirse a una vista previa privada.

¿Qué sigue?