Para aplicações de microsserviços no Serverless App Engine (SAE), adicione políticas de Auto Scaling para dimensionar automaticamente as instâncias da aplicação em resposta a alterações de tráfego, como picos repentinos.
Visão geral
O SAE oferece os seguintes métodos de dimensionamento:
Dimensionamento manual: Use o dimensionamento manual para necessidades urgentes, como picos de tráfego inesperados.
Auto Scaling: Use o Auto Scaling para demandas não urgentes, como variações periódicas de tráfego, configurando uma política de Auto Scaling. O SAE suporta políticas agendadas, baseadas em métricas e híbridas.
Casos de uso
O SAE disponibiliza três tipos de políticas de Auto Scaling:
Política de Auto Scaling agendada: Indicada para aplicações com padrões previsíveis e periódicos de uso de recursos. Comum em setores como finanças, saúde, governo e educação.
Política de Auto Scaling baseada em métricas: Adequada para aplicações que enfrentam tráfego em rajada ou flutuações periódicas. Frequentemente utilizada em serviços de internet, jogos e redes sociais.
Política de Auto Scaling híbrida: Ideal para aplicações que lidam simultaneamente com flutuações periódicas na demanda de recursos e tráfego em rajada. Típica em setores de serviços de internet, educação e alimentação.
Considerações
Você pode criar no máximo cinco políticas de Auto Scaling agendadas, uma política baseada em métricas ou uma política híbrida. Não é possível usar esses três tipos de políticas simultaneamente.
Quando uma política de Auto Scaling estiver ativa, não execute operações manuais no ciclo de vida da aplicação, como dimensionamento, implantação, alteração de especificações, reinicialização ou parada. Para executar essas ações, desative primeiro a política de Auto Scaling.
Se a aplicação estiver em processo de scale-out, scale-in, implantação (lote único, faseada ou canary), alteração de especificações, reinicialização ou parada, aguarde a conclusão do processo antes de adicionar ou ativar uma política de Auto Scaling.
O limite máximo de instâncias por aplicação é 50. Para aumentar essa cota, insira no grupo do DingTalk (ID: 32874633) e solicite a inclusão na lista de permissões.
Pré-requisitos
Procedimento
Na lista de aplicações do SAE, selecione a região e o namespace desejados na parte superior e clique em Application ID correspondente.
Na página Basic Information da aplicação alvo, clique em Auto Scaling. Na seção Auto Scaling, clique em Create Auto Scaling Policy.
Configurar uma política de Auto Scaling
Política agendada
-
No painel Create Auto Scaling Policy, configure os parâmetros abaixo e clique em Next: Preview Scheduled Auto Scaling Policy.
Parameter
Description
Example
Policy Type
Selecione Scheduled auto scaling policy.
Scheduled auto scaling policy
Policy Name
Insira um nome personalizado para a política.
demo
Timeframe
Defina se a política será de curto ou longo prazo:
-
Short-term: Especifique uma hora de início e outra de término.
-
Long-term: A política permanece ativa indefinidamente.
Long-term
Recurrence
Define a frequência de repetição da ação de dimensionamento. As opções são Daily, Weekly ou Monthly.
Daily
Daily Trigger Schedule
Trigger Time: Horário do dia em que a ação de dimensionamento ocorre.
Target Instance Count: Quantidade de instâncias a serem mantidas após o acionamento da ação de dimensionamento.
Trigger time: 08:00 e 20:00
Target instance count: 10 e 3
-
Na página Preview Scheduled Auto Scaling Policy, revise a projeção de instâncias para os períodos específicos e clique em Confirm.
Após adicionar a política de Auto Scaling agendada, ative-a.
Política baseada em métricas
-
No painel Create Auto Scaling Policy, configure os parâmetros a seguir e clique em Confirm.
Parameter
Description
Example
Policy Type
Selecione Metric-based auto scaling policy.
Metric-based auto scaling policy
Policy Name
Insira um nome personalizado para a política.
demo
Trigger Conditions
Escolha um tipo de métrica:
-
Utilização de CPU
-
Uso de memória
-
Conexões TCP ativas
-
Total de conexões TCP
-
QPS da aplicação
-
Tempo de resposta da aplicação (RT)
-
QPS do CLB voltado para a Internet
-
Tempo de resposta do CLB voltado para a Internet
-
QPS do CLB interno
-
Tempo de resposta do CLB interno
Nota-
Para detalhes sobre a agregação das métricas, consulte as descrições no console.
-
É possível definir múltiplos tipos de métricas.
Utilização de CPU
Uma ação de dimensionamento é acionada quando a métrica especificada atinge este valor.
70%
Instance Count
Defina os valores de Minimum application instances, Maximum application instances e minimum available instances.
NotaMinimum available instances determina a quantidade mínima de instâncias que permanecem disponíveis durante uma atualização contínua. Você pode configurar esse valor por número ou por proporção.
-
Minimum application instances: 6
-
Maximum application instances: 50
-
Minimum available instances: Definido por número como 3.
Advanced Settings
(Opcional) Configure os parâmetros abaixo conforme necessário:
-
Scale-out step size: Número máximo de instâncias adicionáveis em uma única ação de dimensionamento.
-
Scale-in step size: Número máximo de instâncias removíveis em uma única ação de dimensionamento.
-
Scale-out stabilization window: Para evitar flutuações rápidas durante o scale-out, o algoritmo usa a menor contagem de instâncias necessária calculada nesta janela de tempo para decidir o dimensionamento.
-
Scale-in stabilization window: Para evitar flutuações rápidas durante o scale-in, o algoritmo usa a maior contagem de instâncias necessária calculada nesta janela de tempo para decidir o dimensionamento.
-
Disable scale-in: Se ativado, a aplicação nunca fará scale-in. Isso evita interrupções de serviço causadas pela redução de instâncias durante picos de tráfego. Esta opção vem desativada por padrão.
Consulte Melhores práticas para parâmetros avançados de Auto Scaling.
-
Após adicionar a política de Auto Scaling baseada em métricas, ative-a.
Política híbrida
Uma política de Auto Scaling híbrida combina uma política de Auto Scaling agendada com uma política de Auto Scaling baseada em métricas.
-
Em Policy Type, selecione Hybrid auto scaling policy e insira um Policy Name personalizado.
Configure as Metric Settings. Para mais detalhes, consulte os parâmetros da política de Auto Scaling baseada em métricas.
-
(Opcional) Clique em Advanced Settings e configure os parâmetros abaixo conforme necessário.
Parameter
Description
Example
Scale-out step size
Número máximo de instâncias adicionáveis em uma única ação de dimensionamento.
3
Scale-in step size
Número máximo de instâncias removíveis em uma única ação de dimensionamento.
2
Scale-out stabilization window
Para evitar flutuações rápidas durante o scale-out, o algoritmo usa a menor contagem de instâncias necessária calculada nesta janela de tempo para decidir o dimensionamento.
300 segundos
Scale-in stabilization window
Para evitar flutuações rápidas durante o scale-in, o algoritmo usa a maior contagem de instâncias necessária calculada nesta janela de tempo para decidir o dimensionamento.
300 segundos
Disable scale-in
Se ativado, a aplicação nunca fará scale-in. Isso evita interrupções de serviço causadas pela redução de instâncias durante picos de tráfego. Esta opção vem desativada por padrão.
Enabled
Configure as Special Time Period Settings. Para mais detalhes, consulte os parâmetros da política de Auto Scaling agendada.
No assistente Preview Scheduled Auto Scaling Policy, revise a projeção de instâncias para os períodos específicos e clique em Confirm.
Após adicionar a política de Auto Scaling híbrida, ative-a.
Verificar a política
Valide se a política de Auto Scaling está funcionando corretamente usando um dos métodos a seguir:
Verificar contagem de instâncias
Acesse a página Basic Information da aplicação alvo e clique em Auto Scaling. Verifique se o número de instâncias corresponde ao definido na política de Auto Scaling. Se houver correspondência, a política está ativa e eficaz.
O gráfico Instance Count Trend with Scaling Metrics, localizado no topo da página, exibe as curvas de variação da quantidade atual de instâncias da aplicação e de métricas como utilização de CPU. A área azul indica o intervalo de scale-out, enquanto a área amarela representa o intervalo de scale-in. A tabela Hybrid Auto Scaling Policy List, logo abaixo, mostra os detalhes de configuração de cada política, incluindo Metric Target Value, Maximum application instances e Minimum application instances. Utilize essas informações para comparar a contagem atual de instâncias com as configurações da política.
Realizar teste de estresse
-
Adicione um endpoint público para a aplicação.
Faça login no console do SAE. Na página Basic Information, dentro da seção Application Access Settings, clique em Add Internet-facing CLB Access.
-
No painel Add Internet-facing CLB Access, selecione Create CLB (Pay-by-Specification), defina a HTTP Port e a Container Port e clique em OK.
Neste exemplo, a HTTP Port foi definida como
80e a Container Port como3210. -
Depois que o endpoint for adicionado, copie o endereço do public endpoint.
À direita de Public Endpoint, você verá o endereço gerado (por exemplo,
101.xxx:80) e o tipo de protocolo HTTP.
-
Execute um teste de estresse na aplicação.
Acesse o console do Performance Testing Service (PTS). Na página de visão geral, insira o endereço do endpoint no formato
http://<Endereço do Endpoint Público>e clique em Test.-
No painel Test Settings, informe o valor de Requests Per Second (RPS). Em seguida, marque a caixa de seleção The test is permitted and complies with the applicable laws and regulations e clique em Start.
Neste exemplo, o Total Duration foi definido como
10minutos e o Requests Per Second (RPS) como1000.
-
Retorne ao console do SAE. Na página Basic Information da aplicação alvo, vá até a aba Instance List. Confirme se o número de instâncias da aplicação aumentou. Um scale-out bem-sucedido confirma que a política está funcionando.
NotaApós a conclusão do teste de estresse, o número de instâncias reduzirá automaticamente via scale-in. Esse processo pode levar algum tempo.
Visualizar eventos de dimensionamento
Navegue até a página Application Events da aplicação alvo. Filtre por Source Type e defina o tipo de source como HorizontalPodAutoscaler para visualizar os eventos de dimensionamento.
Após aplicar o filtro, a lista exibirá eventos relacionados ao dimensionamento. Um evento com nível Normal e motivo SuccessfulRescale indica uma ação de dimensionamento bem-sucedida. Expanda os detalhes do evento para ver o resultado do dimensionamento (por exemplo, New size: 5) e o motivo do acionamento (por exemplo, a métrica externa slb_incall_qps ultrapassou o limiar alvo).
Mais operações
Na página Basic Information da aplicação alvo, clique em Auto Scaling.
Na seção Auto Scaling da aba Auto Scaling, localize a política desejada. Na coluna Actions, você pode Enable, Disable, Edit ou Delete a política, além de visualizar os Events acionados por ela.