Dimensionamento com base em previsões


Você pode configurar o escalonamento automático para um grupo de instâncias gerenciadas (MIG) para adicionar ou remover automaticamente instâncias de máquina virtual (VM) com base em aumentos ou diminuições na carga. No entanto, se o seu aplicativo demorar alguns minutos ou mais para inicializar, adicionar instâncias em resposta a alterações em tempo real poderá não aumentar a capacidade do seu aplicativo com rapidez suficiente. Por exemplo, se houver um grande aumento na carga (como quando os usuários acordam pela manhã), alguns usuários poderão sofrer atrasos enquanto seu aplicativo estiver inicializando em novas instâncias.

Você pode usar o escalonamento automático preditivo para melhorar os tempos de resposta para aplicativos com longos tempos de inicialização e cujas cargas de trabalho variam de forma previsível com ciclos diários ou semanais.

Quando você ativa o escalonamento automático preditivo, o Compute Engine prevê a carga futura com base no histórico do seu MIG e amplia o MIG antes da carga prevista, para que novas instâncias estejam prontas para veiculação quando a carga chegar. Sem o escalonamento automático preditivo, um escalonador automático só pode escalar um grupo de forma reativa, com base nas alterações observadas na carga em tempo real. Com o escalonamento automático preditivo ativado, o escalonador automático funciona com dados em tempo real, bem como com dados históricos para cobrir a carga atual e a prevista. Para obter mais informações, consulte Como funciona o escalonamento automático preditivo e Verificando se o escalonamento automático preditivo é adequado para sua carga de trabalho .

Antes de começar

  • Se quiser usar os exemplos de linha de comando neste guia, instale a Google Cloud CLI ou inicie o Cloud Shell .
  • Leia sobre os fundamentos do escalonador automático.
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    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 as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        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 mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Preços

O escalonamento automático preditivo é gratuito. No entanto, se você ativar o escalonamento automático preditivo para otimizar a disponibilidade, você pagará pelos recursos do Compute Engine que seu MIG usa.

Limitações

  • O escalonamento automático preditivo funciona apenas com a utilização da CPU como métrica de escalonamento. As métricas do Cloud Load Balancing ou do Cloud Monitoring não são compatíveis.
  • O Compute Engine requer três dias de histórico de escalonamento automático baseado em CPU antes de gerar previsões.
  • As previsões são baseadas em padrões de carga semanais e diários. O Compute Engine não prevê eventos mensais, anuais ou únicos, nem padrões de carga inferiores a 10 minutos. Você pode usar o escalonamento automático baseado em agendamento para solicitar capacidade para padrões de carga únicos ou outros.

Cargas de trabalho adequadas

O escalonamento automático preditivo funciona melhor se sua carga de trabalho atender aos seguintes critérios:

  • Seu aplicativo demora muito para inicializar — por exemplo, se você configurar um período de inicialização de mais de 2 minutos.
  • Sua carga de trabalho varia de forma previsível com ciclos diários ou semanais.

Se o seu serviço demorar muito para inicializar, seus usuários poderão enfrentar latência de serviço após um evento de expansão, ou seja, enquanto as novas VMs são provisionadas, mas ainda não estão em serviço. O escalonamento automático preditivo leva em consideração o tempo de inicialização do seu aplicativo e aumenta a escala antes dos aumentos previstos no uso, ajudando a garantir que o número de instâncias de serviço disponíveis seja suficiente para a utilização desejada.

Para visualizar como o escalonamento automático preditivo pode afetar seu grupo, consulte Verificando se o escalonamento automático preditivo é adequado para sua carga de trabalho .

Ativar e desativar o escalonamento automático preditivo

Você pode ativar o escalonamento automático preditivo ao escalonar com base na utilização da CPU. Para obter mais informações sobre como configurar o escalonamento automático baseado em CPU, consulte Dimensionamento baseado na utilização da CPU .

Se o seu MIG não tiver histórico de escalonador automático, poderá levar três dias até que o algoritmo preditivo afete o escalonador automático. Durante esse período, o grupo é dimensionado apenas com base em dados em tempo real. Após 3 dias, o grupo começa a escalar usando previsões. À medida que mais carga histórica é coletada, o escalonador automático preditivo entende melhor seus padrões de carga e suas previsões melhoram. O Compute Engine usa até três semanas do histórico de carga do seu MIG para alimentar o modelo de machine learning.

Console

  1. No console, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Na lista, clique no nome de um MIG existente para abrir a página de visão geral do grupo.

  3. Clique em Editar .

  4. Se não existir nenhuma configuração de escalonamento automático, em Autoscaling , clique em Configure autoscaling .

  5. Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.

  6. Especifique os números mínimo e máximo de instâncias que você deseja que o escalonador automático crie neste grupo.

  7. Na seção Sinais de escalonamento automático , se ainda não existir uma métrica de utilização de CPU , adicione uma:

    1. Clique em Adicionar um sinal .
    2. No menu suspenso Tipo de sinal , selecione Utilização da CPU .
    3. Insira a utilização desejada da CPU desejada. Este valor é tratado como uma porcentagem. Por exemplo, para 75% de utilização da CPU, insira 75 .
    4. Em escalonamento automático preditivo , selecione Otimizar para disponibilidade para habilitar o escalonamento automático preditivo.
      • Alternativamente, se você quiser desabilitar o algoritmo preditivo e usar apenas o autoescalador em tempo real, selecione Off .
    5. Clique em Concluído .
  8. Em Período de inicialização , especifique quanto tempo leva para seu aplicativo inicializar em uma nova instância. Essa configuração informa o escalonador automático preditivo para aumentar ainda mais antes da carga prevista, para que os aplicativos sejam inicializados quando a carga chegar.

  9. Clique em Salvar .

gcloud

Ao configurar ou atualizar o escalonador automático de um MIG, inclua o sinalizador --cpu-utilization-predictive-method com um dos seguintes valores:

  • optimize-availability : para habilitar o algoritmo preditivo
  • none (padrão): para desabilitar o algoritmo preditivo

Se o escalonamento automático baseado em CPU ainda não estiver habilitado para o grupo, você deverá habilitá-lo. Você pode usar o comando set-autoscaling para configurar a política de escalonamento automático de um grupo do zero. Por exemplo, o comando a seguir mostra como configurar o escalonamento automático com as seguintes configurações:

  • Escalonamento automático preditivo ativado.
  • Meta de utilização da CPU de 75%.
  • O número máximo de instâncias definido como 20.
  • Um período de inicialização ( --cool-down-period ) definido como 5 minutos. Essa configuração informa ao escalonador automático preditivo para aumentar 5 minutos antes da carga prevista, para que os aplicativos sejam inicializados quando a carga chegar.
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

Se o escalonamento automático baseado em CPU já estiver habilitado para o grupo, use o comando update-autoscaling para habilitar o algoritmo preditivo:

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

DESCANSAR

Ao criar ou atualizar um escalonador automático, inclua o campo predictiveMethod no corpo da solicitação com um dos seguintes valores:

  • OPTIMIZE_AVAILABILITY : para ativar o algoritmo preditivo
  • NONE (padrão): para desabilitar o algoritmo preditivo

Se o grupo não tiver nenhuma configuração de escalonamento automático, faça o seguinte:

Se o grupo já tiver uma configuração de escalonamento automático, faça o seguinte:

Se o escalonamento automático baseado em CPU ainda não estiver habilitado para o grupo, você deverá habilitá-lo.

Por exemplo, a solicitação a seguir corrige um recurso de escalonador automático existente para habilitar o escalonamento automático baseado em CPU com as seguintes configurações:

  • Escalonamento automático preditivo ativado.
  • Meta de utilização da CPU de 75%.
  • O número máximo de instâncias definido como 20.
  • Um período de inicialização ( coolDownPeriodSec ) definido como 5 minutos. Essa configuração informa ao escalonador automático preditivo para aumentar 5 minutos antes da carga prevista, para que os aplicativos sejam inicializados quando a carga chegar.
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
  }
}

Verificando se o escalonador automático preditivo está ativado

Para visualizar a configuração atual de escalonamento automático de um MIG, consulte Obtendo as propriedades de um MIG .

Configurando o escalonamento automático preditivo

Para obter mais informações sobre como configurar a utilização desejada, o número mínimo e máximo de instâncias e o período de inicialização, consulte Dimensionamento baseado na utilização da CPU . Ao configurar essas opções, o escalonador automático preditivo trabalha para manter todas as instâncias no nível de utilização alvo definido, dentro dos limites mínimo e máximo do grupo, da mesma forma que um escalonador automático em tempo real.

Use a configuração do período de inicialização para contabilizar o tempo que leva para o seu aplicativo inicializar. Essa configuração influencia a antecedência com que o escalonador automático preditivo inicia novas instâncias antes do aumento previsto na carga, para que seu aplicativo esteja pronto para servir quando a carga chegar.

Verificando se o escalonamento automático preditivo é adequado para sua carga de trabalho

Para ver se o escalonamento automático preditivo pode melhorar a disponibilidade do seu aplicativo, você pode comparar o desempenho da configuração atual de escalonamento automático baseado em CPU do seu grupo com o escalonamento automático preditivo. Não é necessário ativar o escalonamento automático preditivo para fazer a comparação.

Para obter mais informações sobre cargas de trabalho adequadas para escalonamento automático preditivo, consulte Cargas de trabalho adequadas .

Verificando sobrecargas

Seu MIG com escalonamento automático fica sobrecarregado quando a utilização média da CPU excede sua meta. Para verificar se a configuração de escalonamento automático resultou em VMs sobrecarregadas durante os últimos sete dias e para ver se o escalonamento automático preditivo pode reduzir sobrecargas, conclua as etapas a seguir:

  1. No console, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique em um MIG existente para o qual o escalonamento automático baseado em CPU está configurado. A página de visão geral do grupo é aberta.

  3. Clique em Editar .

  4. Na seção Escalonamento automático , em Sinais de escalonamento automático , expanda a seção Utilização da CPU e clique em Veja se o escalonamento automático preditivo pode otimizar sua disponibilidade .

  5. Com base nos dados dos últimos sete dias, a tabela mostra quantas VMs foram usadas por dia e quantas VMs foram sobrecarregadas por dia para as seguintes linhas:

    • Configuração atual de escalonamento automático : mostra o desempenho do escalonador automático com base na configuração do escalonador automático nos últimos sete dias.
    • Com o escalonamento automático preditivo definido como "Otimizar para disponibilidade" : mostra o desempenho do escalonador automático se o escalonamento automático preditivo estivesse ativado nos últimos sete dias.

Você pode usar o "Número de VMs usadas por dia" como proxy para custos. Por exemplo, para reduzir o número diário de VMs sobrecarregadas, o escalonador automático preditivo pode criar VMs mais cedo e executá-las por mais tempo, o que resulta em encargos adicionais.

Monitorando e simulando escalonamento automático preditivo

Você pode visualizar o tamanho histórico do seu grupo usando o Cloud Monitoring. O gráfico de monitoramento mostra como sua configuração de escalonamento automático dimensionou seu grupo ao longo do tempo e também mostra como o escalonamento automático preditivo, se habilitado, teria dimensionado seu grupo.

Para grupos com escalonamento automático preditivo desabilitado, você pode usar esta ferramenta para simular o escalonamento automático preditivo antes de habilitá-lo.

  1. No console, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique em um MIG existente para o qual o escalonamento automático baseado em CPU está configurado. A página de visão geral do grupo é aberta.

  3. Clique em Monitoramento para ver gráficos relacionados ao grupo.

  4. No primeiro gráfico, clique no título e selecione Escalonamento automático preditivo . Esta visualização mostra o tamanho real do grupo, bem como o tamanho previsto.

  5. Você pode selecionar um intervalo de tempo diferente para ver mais histórico ou ampliar um período em que a demanda cresceu para ver como o escalonamento automático preditivo afeta o tamanho do grupo antes da carga prevista.

Como funciona o escalonamento automático preditivo

O escalonador automático preditivo prevê sua métrica de escalonamento com base nas tendências históricas da métrica. As previsões são recalculadas a cada poucos minutos, o que permite que o escalonador automático adapte rapidamente sua previsão às mudanças muito recentes na carga. O escalonador automático preditivo precisa de pelo menos três dias de histórico para determinar um padrão de uso de serviço representativo antes de poder fornecer previsões. O Compute Engine usa até três semanas do histórico de carga do seu MIG para alimentar o modelo de machine learning.

O escalonador automático preditivo calcula o número de VMs necessárias para atingir sua meta de utilização com base em vários fatores, incluindo os seguintes:

  • O valor futuro previsto da métrica de escalonamento
  • O valor atual da métrica de escalonamento
  • Confiança nas tendências passadas, incluindo a variabilidade passada da métrica de escala
  • O período de inicialização do aplicativo configurado, também conhecido como período de inicialização

Com base nesses fatores, o escalonador automático preditivo amplia seu grupo antes da demanda prevista.

Comparação de VMs atendidas com e sem escalonamento automático preditivo.

Figura 1. Comparação do atendimento de VMs com e sem escalonamento automático preditivo.

Na figura 1, a linha azul mostra uma demanda crescente por VMs. A linha preta mostra a resposta do autoescalador: mais VMs são adicionadas. No entanto, para aplicações com tempos de inicialização longos, a linha cinzenta mostra que as VMs adicionadas requerem mais tempo antes de estarem prontas para servir, o que pode resultar em VMs de serviço insuficientes para satisfazer a procura. Com o escalonamento automático preditivo ativado, o aumento previsto na demanda e o longo tempo de inicialização do aplicativo são levados em consideração: o escalonador automático responde adicionando VMs mais cedo, resultando em um número suficiente de VMs em serviço. Você pode configurar com que antecedência novas instâncias serão adicionadas definindo o período de inicialização .

Dados de uso em tempo real

O escalonador automático preditivo não consegue determinar um padrão para todas as mudanças futuras no uso com base em dados históricos, por isso também funciona perfeitamente com dados em tempo real. Por exemplo, um evento noticioso inesperado pode contribuir para um aumento no uso que não poderia ser previsto apenas com base no histórico. Para lidar com essas mudanças imprevisíveis na carga, o escalonador automático preditivo responde da seguinte forma:

  • Ele adapta suas previsões: as previsões são recalculadas constantemente, em questão de minutos, para que sejam ajustadas para incorporar os dados mais recentes. O momento exato dos ajustes a novos padrões depende, entre outras coisas, da repetência do novo padrão e do tamanho da diferença entre o novo padrão e as previsões anteriores.
  • Ele produz dados em tempo real: o número recomendado de instâncias do escalonador automático, com base nos valores em tempo real da métrica, é sempre suficiente para atender à utilização desejada do grupo. Se o valor atual de um sinal em tempo real for maior que a previsão, o valor atual do sinal terá prioridade sobre a previsão. Como resultado, os MIGs que têm o escalonamento automático preditivo habilitado sempre têm mais disponibilidade do que os MIGs que não têm.

Dois gráficos mostram como as previsões se adaptam ao uso real da CPU.

Figura 2. Dois gráficos mostram como as previsões se adaptam ao uso real da CPU.

Na figura 2, a linha amarela pontilhada mostra a previsão em t 1 . Mas o uso real da CPU, conforme mostrado pela linha azul sólida, é diferente do previsto. No gráfico esquerdo, o uso real da CPU é maior do que o previsto. No gráfico à direita, o uso real da CPU é menor do que o previsto. A linha azul pontilhada mostra a previsão ajustada.

Picos curtos e imprevisíveis

Picos curtos e imprevisíveis são cobertos em tempo real. O escalonador automático cria pelo menos quantas instâncias forem necessárias para manter a utilização no destino configurado, com base no valor real atual da métrica. No entanto, estas instâncias não são criadas antecipadamente, conforme mostrado na figura a seguir.

Um pico curto e imprevisível faz com que o escalonador automático reaja em tempo real.

Figura 3. Um pico curto e imprevisível faz com que o escalonador automático reaja em tempo real.

Na figura 3, a linha azul sólida mostra o uso real da CPU. Não foi possível prever um aumento inesperado no uso da CPU. Como o escalonador automático sempre monitora os dados em tempo real, ele adiciona instâncias para acomodar o pico. A linha preta sólida ilustra a adição reativa de VMs do autoescalador em resposta ao pico. A linha cinza sólida mostra o número de VMs em serviço. A linha cinza fica atrás da linha preta devido ao tempo de inicialização do aplicativo. Neste cenário, o grupo fica temporariamente sobrecarregado.

Quedas repentinas

Outro tipo de mudança imprevisível no uso é uma queda repentina, por exemplo, uma queda causada por uma falha em parte da pilha de aplicativos. Quando isso acontece, o número de ocorrências segue inicialmente a previsão. No entanto, ao longo do tempo, a previsão ajusta-se à utilização inferior ao previsto, resultando num aumento de escala. O momento exato desse ajuste depende de vários fatores, incluindo: com que frequência o padrão ocorreu no passado, quanto tempo dura a queda e quão profunda é a queda.

Uma queda repentina faz com que o escalonador automático preditivo altere sua previsão.

Figura 4. Uma queda repentina faz com que o escalonador automático preditivo altere sua previsão.

Na figura 4, a linha amarela pontilhada mostra a previsão em t 1 . Mas o uso real da CPU, conforme mostrado pela linha azul sólida, caiu abaixo do previsto. A linha azul pontilhada mostra a previsão atualizada, que foi ajustada automaticamente após observar um uso inferior ao previsto. Isso faz com que o escalonador automático remova as instâncias após o período de estabilização padrão.

Dados históricos

O escalonador automático preditivo precisa de pelo menos três dias de carga histórica para iniciar a previsão. Se você tiver um novo MIG sem dados históricos, o Compute Engine dimensionará seu grupo de forma reativa usando dados em tempo real até que dados históricos suficientes estejam disponíveis. Após três dias, à medida que o Compute Engine coleta dados de uso adicionais, as previsões melhoram.

Se você atualizar seu aplicativo criando um novo MIG e excluindo o antigo (por exemplo, uma implantação azul-verde), seu novo MIG precisará de três dias de dados históricos de carga antes que o escalonamento automático preditivo possa começar a gerar previsões novamente. Se você quiser preservar o histórico de carregamento entre MIGs para que as previsões possam começar imediatamente quando você criar um novo MIG, entre em contato conosco para solicitar instruções para participar de uma visualização privada.

O que vem a seguir