Compartilhar via


Dimensionamento automático e Ambiente de Serviço de Aplicativo v1

Importante

Este artigo é sobre o Ambiente do Serviço de Aplicativo v1. O Ambiente do Serviço de Aplicativo v1 será desativado em 31 de agosto de 2024. Há uma nova versão do Ambiente de Serviço de Aplicativo que é mais fácil de usar e é executado na infraestrutura mais avançada. Para saber mais sobre a nova versão, comece com Introdução ao Ambiente do Serviço de Aplicativo. Se você estiver usando o Ambiente do Serviço de Aplicativo v1, siga as etapas neste artigo para migrar para a nova versão.

Desde 29 de janeiro de 2024, você não pode mais criar recursos do Ambiente do Serviço de Aplicativo v1 usando um dos métodos disponíveis, incluindo os modelos do ARM/Bicep, o portal do Azure, a CLI do Azure ou a API REST. Você precisará migrar para o Ambiente do Serviço de Aplicativo v3 antes de 31 de agosto de 2024 para evitar a exclusão de recursos e a perda de dados.

Os ambientes de Serviço de Aplicativo do Azure dão suporte ao dimensionamento automático. Você pode dimensionar automaticamente pools de trabalho individuais com base em métricas ou na agenda.

Autoscale options for a worker pool.

O dimensionamento automático otimiza a utilização de recursos, escalar e reduzir verticalmente um ambiente de Serviço de Aplicativo de forma automática para ajustar seu orçamento e/ou perfil de carregamento.

Configurar o dimensionamento automático de pool de trabalho

Você pode acessar a funcionalidade de dimensionamento automático na guia Configurações do pool de trabalho.

Settings tab of the worker pool.

A partir daí, a interface deve ser bastante familiar, já que é a mesma experiência que você vê quando dimensiona um Plano do Serviço de Aplicativo.

Manual scale settings.

Você também pode configurar um perfil de dimensionamento automático.

Autoscale settings.

Os perfis de dimensionamento automático são úteis para definir limites na sua escala. Dessa forma, você pode ter uma experiência de desempenho consistente, definindo um valor de escala de limite inferior (1) e um limite de gastos previsível, definindo um limite superior (2).

Scale settings in profile.

Depois de definir um perfil, você pode adicionar regras de dimensionamento automático para aumentar ou reduzir o número de instâncias no pool de trabalho dentro dos limites definidos pelo perfil. As regras de dimensionamento automático se baseiam em métricas.

Scale rule.

Qualquer métrica de pool de trabalho ou de front-end pode ser usada para definir regras de dimensionamento automático. Essas métricas são as mesmas que você pode monitorar nos grafos de folha de recursos e para as quais pode definir alertas.

Exemplo de dimensionamento automático

O dimensionamento automático de um ambiente de Serviço de Aplicativo pode ser melhor ilustrado examinando um cenário.

Este artigo explica todas as considerações necessárias ao configurar o dimensionamento automático. Este artigo aborda as interações que entram em jogo quando você fatora em ambientes de Serviço de Aplicativo de dimensionamento automático hospedados no Ambiente de Serviço de Aplicativo.

Introdução ao cenário

Matheus é um administrador de sistema de uma empresa que migrou parte das cargas de trabalho que ele gerencia para um ambiente de serviço de aplicativo.

O ambiente do Serviço de Aplicativo está configurado para a escala manual da seguinte maneira:

  • Front-ends: 3
  • Pool de trabalho 1: 10
  • Pool de trabalho 2:5
  • Pool de trabalho 3:5

O pool de trabalho 1 é usado para cargas de trabalho de produção, embora o pool de trabalho 2 e o pool de trabalho 3 sejam usados para garantia de qualidade (QA) e cargas de trabalho de desenvolvimento.

Os Planos do Serviço de Aplicativo para controle de qualidade e desenvolvimento são configurados para escala manual. O Plano do Serviço de Aplicativo de produção é definido para dimensionamento automático para lidar com variações de carga e tráfego.

Matheus está familiarizado com o aplicativo. Ele sabe que as horas de pico da carga ocorrem entre 9h00 e 18h00, porque o aplicativo em questão é de LOB (linha de negócios), que os funcionários usam enquanto estão no escritório. O uso é reduzido depois disso, quando os usuários param de trabalhar naquele dia. Fora do horário de pico, ainda há alguma carga porque os usuários podem acessar o aplicativo remotamente, usando seus dispositivos móveis ou computadores domésticos. O plano do Serviço de Aplicativo de produção já está configurado para dimensionamento automático com base no uso de CPU com as seguintes regras:

Specific settings for LOB app.

Perfil de dimensionamento automático – Dias da semana – plano do Serviço de Aplicativo Perfil de dimensionamento automático – Finais de semana – plano do Serviço de Aplicativo
Nome: Perfil de dia da semana Nome: Perfil de final de semana
Dimensionar por: Regras de agendamento e desempenho Dimensionar por: Regras de agendamento e desempenho
Perfil: Dias da semana Perfil: Final de semana
Tipo: Recorrência Tipo: Recorrência
Intervalo de destino: 5 a 20 instâncias Intervalo de destino: 3 a 10 instâncias
Dias: segunda-feira, terça-feira, quarta-feira, quinta-feira, sexta-feira Dias: sábado e domingo
Hora de início: 9:00 Hora de início: 9:00
Fuso horário: UTC-08 Fuso horário: UTC-08
Regra de dimensionamento automático (Escalar Verticalmente) Regra de dimensionamento automático (Escalar Verticalmente)
Recurso: Produção (ambiente de Serviço de Aplicativo) Recurso: Produção (ambiente de Serviço de Aplicativo)
Métrica: % da CPU Métrica: % da CPU
Operação: Mais de 60% Operação: Mais de 80%
Duração: 5 minutos Duração: 10 minutos
Agregação de tempo: Média Agregação de tempo: Média
Ação: Aumentar a contagem em 2 Ação: Aumentar a contagem em 1
Tempo de resfriamento (minutos): 15 Tempo de resfriamento (minutos): 20
Regra de dimensionamento automático (Reduzir Verticalmente) Regra de dimensionamento automático (Reduzir Verticalmente)
Recurso: Produção (ambiente de Serviço de Aplicativo) Recurso: Produção (ambiente de Serviço de Aplicativo)
Métrica: % da CPU Métrica: % da CPU
Operação: Menos de 30% Operação: Menos de 20%
Duração: 10 minutos Duração: 15 minutos
Agregação de tempo: Média Agregação de tempo: Média
Ação: Reduzir a contagem em 1 Ação: Reduzir a contagem em 1
Tempo de resfriamento (minutos): 20 Tempo de resfriamento (minutos): 10

Taxa de inflação do plano do Serviço de Aplicativo

Os planos do Serviço de Aplicativo configurados para dimensionamento automático o fazem a uma taxa máxima por hora. Essa taxa pode ser calculada com base nos valores fornecidos na regra de dimensionamento automático.

Compreender e calcular a taxa de inflação do plano do Serviço de Aplicativo é importante para o dimensionamento automático do ambiente de Serviço de Aplicativo, já que as alterações de escala em um pool de trabalho não são instantâneas.

A taxa de inflação do plano do Serviço de Aplicativo é calculada da seguinte maneira:

App Service plan inflation rate calculation.

Com base na regra Dimensionamento automático – Escalar verticalmente para o perfil de Dia da semana do Plano do Serviço de Aplicativo de produção:

App Service plan inflation rate for weekdays based on Autoscale – Scale Up rule.

No caso da regra Dimensionamento automático - Escalar verticalmente do perfil Finais de semana do plano do Serviço de Aplicativo de produção, a fórmula resolveria para:

App Service plan inflation rate for weekends based on Autoscale – Scale Up rule.

Esse valor também pode ser calculado para operações de redução.

Com base na regra Dimensionamento automático - Reduzir verticalmente do perfil dia da semana perfil do plano do Serviço de Aplicativo de produção, seria semelhante ao seguinte:

App Service plan inflation rate for weekdays based on Autoscale – Scale Down rule.

No caso da regra Dimensionamento automático - Reduzir verticalmente do perfil Finais de semana do plano do Serviço de Aplicativo de produção, a fórmula resolveria para:

App Service plan inflation rate for weekends based on Autoscale – Scale Down rule.

O Plano do Serviço de Aplicativo de produção pode crescer em uma taxa máxima de oito instâncias/hora durante a semana e quatro instâncias/hora durante o fim de semana. Ele pode liberar instâncias em uma taxa máxima de quatro instâncias/hora durante a semana e seis instâncias/hora durante os finais de semana.

Se vários planos do Serviço de Aplicativo estiverem sendo hospedados em um pool de trabalho, você precisará calcular a taxa total de inflação como a soma da taxa de inflação de todos os planos do Serviço de Aplicativo hospedados nesse pool de trabalho.

Total inflation rate calculation for multiple App Service plans hosted in a worker pool.

Usar a taxa de inflação do plano do Serviço de Aplicativo para definir regras de dimensionamento automático do pool de trabalho

Os pools de trabalho que hospedam Planos do Serviço de Aplicativo configurados para o dimensionamento automático precisam ter um buffer de capacidade alocado. O buffer permite que as operações de dimensionamento automático aumentem ou reduzam o plano do Serviço de Aplicativo, conforme necessário. O buffer mínimo seria a Taxa de Inflação Total do Plano do Serviço de Aplicativo calculada.

Como as operações de dimensionamento do ambiente de Serviço de Aplicativo demoram algum tempo para serem aplicadas, qualquer alteração deve levar em consideração outras alterações sob demanda que poderiam acontecer enquanto uma operação de escala está em andamento. Para acomodar essa latência, recomendamos que você use a Taxa de Inflação do Plano do Serviço de Aplicativo Total como o número mínimo de instâncias adicionadas para cada operação de dimensionamento automático.

Com essas informações, Matheus pode definir o seguinte perfil e regras de dimensionamento automático:

Autoscale profile rules for LOB example.

Perfil de dimensionamento automático – Dias da semana Perfil de dimensionamento automático – Finais de semana
Nome: Perfil de dia da semana Nome: Perfil de final de semana
Dimensionar por: Regras de agendamento e desempenho Dimensionar por: Regras de agendamento e desempenho
Perfil: Dias da semana Perfil: Final de semana
Tipo: Recorrência Tipo: Recorrência
Intervalo de destino: 13 a 25 instâncias Intervalo de destino: 6 a 15 instâncias
Dias: segunda-feira, terça-feira, quarta-feira, quinta-feira, sexta-feira Dias: sábado e domingo
Hora de início: 7:00 Hora de início: 9:00
Fuso horário: UTC-08 Fuso horário: UTC-08
Regra de dimensionamento automático (Escalar Verticalmente) Regra de dimensionamento automático (Escalar Verticalmente)
Recurso: Pool de trabalho 1 Recurso: Pool de trabalho 1
Métrica: WorkersAvailable Métrica: WorkersAvailable
Operação: menos de 8 Operação: menos de 3
Duração: 20 minutos Duração: 30 minutos
Agregação de tempo: Média Agregação de tempo: Média
Ação: Aumentar a contagem em 8 Ação: Aumentar a contagem em 3
Tempo de resfriamento (minutos): 180 Tempo de resfriamento (minutos): 180
Regra de dimensionamento automático (Reduzir Verticalmente) Regra de dimensionamento automático (Reduzir Verticalmente)
Recurso: Pool de trabalho 1 Recurso: Pool de trabalho 1
Métrica: WorkersAvailable Métrica: WorkersAvailable
Operação: maior que 8 Operação: maior que 3
Duração: 20 minutos Duração: 15 minutos
Agregação de tempo: Média Agregação de tempo: Média
Ação: Diminuir a contagem em 2 Ação: Diminuir a contagem em 3
Tempo de resfriamento (minutos): 120 Tempo de resfriamento (minutos): 120

O intervalo de Destino definido no perfil é calculado pelas instâncias do mínimas definidas no perfil para o plano do Serviço de Aplicativo + buffer.

O intervalo Máximo seria a soma de todos os intervalos máximos de todos os planos do Serviço de Aplicativo hospedados no pool de trabalho.

A contagem de Aumento das regras de escala vertical deve ser definida como, pelo menos, 1X a Taxa de Inflação do Plano do Serviço de Aplicativo para a escala vertical.

A contagem de redução pode ser ajustada para algo entre 1/2x ou 1x a taxa de inflação do plano do Serviço de Aplicativo para reduzir verticalmente.

Dimensionamento automático para o pool de front-end

As regras de dimensionamento automático de front-end são mais simples para pools de trabalho. Basicamente, você deve
verifique se a duração da medição e se os temporizadores de resfriamento consideram que as operações de escala em um Plano do Serviço de Aplicativo não são instantâneas.

Para este cenário, Frank sabe que a taxa de erro aumenta depois que os front-ends alcançam 80% de utilização de CPU e define a regra de dimensionamento automático para aumentar o número de instâncias da seguinte maneira:

Autoscale settings for front-end pool.

Perfil de dimensionamento automático – Front-ends
Nome: Dimensionamento automático – Front-ends
Dimensionar por: Regras de agendamento e desempenho
Perfil: Todos os dias
Tipo: Recorrência
Intervalo de destino: 3 a 10 instâncias
Dias: Todos os dias
Hora de início: 9:00
Fuso horário: UTC-08
Regra de dimensionamento automático (Escalar Verticalmente)
Recurso: Pool de front-end
Métrica: % da CPU
Operação: Mais de 60%
Duração: 20 minutos
Agregação de tempo: Média
Ação: Aumentar a contagem em 3
Tempo de resfriamento (minutos): 120
Regra de dimensionamento automático (Reduzir Verticalmente)
Recurso: Pool de trabalho 1
Métrica: % da CPU
Operação: Menos de 30%
Duração: 20 minutos
Agregação de tempo: Média
Ação: Diminuir a contagem em 3
Tempo de resfriamento (minutos): 120