Identificar fatores de dimensionamento automático

Concluído

O dimensionamento automático permite especificar as condições em que um aplicativo Web deve ser expandido e reduzido. Um dimensionamento automático eficiente garante que os recursos suficientes estarão disponíveis para lidar com grandes volumes de solicitações em períodos de pico e gerenciarão os custos quando a demanda diminuir.

É possível configurar o dimensionamento automático para detectar quando reduzir e expandir de acordo com uma combinação de fatores, com base no uso de recursos. Também é possível configurar o dimensionamento automático de acordo com um cronograma.

Nesta unidade, você aprenderá a especificar os fatores que podem ser usados para dimensionar automaticamente um serviço.

Dimensionamento automático e o Plano do Serviço de Aplicativo

O dimensionamento automático é um recurso do Plano do Serviço de Aplicativo usado pelo aplicativo Web. Quando o aplicativo Web é expandido, o Azure inicia novas instâncias do hardware definido pelo Plano do Serviço de Aplicativo para o aplicativo.

Para evitar o dimensionamento automático sem controle, um Plano do Serviço de Aplicativo tem um limite de instâncias. Os planos com tipos de preço mais caros têm um limite maior. O dimensionamento automático não pode criar mais instâncias do que o definido pelo limite.

Observação

Nem todos os tipos de preço do Plano do Serviço de Aplicativo são compatíveis com o dimensionamento automático.

Condições de dimensionamento automático

Você indica como fazer o dimensionamento automático ao criar as condições de dimensionamento automático. O Azure oferece duas opções para dimensionamento automático:

  • Escalar com base em uma métrica, como o comprimento da fila do disco ou o número de solicitações HTTP aguardando processamento.
  • Dimensionar para uma contagem de instâncias específica de acordo com um cronograma. Por exemplo, é possível organizar uma expansão horizontal em um determinado horário do dia ou em uma data ou dia específico da semana. Também é possível especificar uma data de término. O sistema reverterá o dimensionamento nessa data.

Dimensionar para uma contagem de instâncias específica só permite que você aumente até um número definido de instâncias. Se precisar aumentar de maneira incremental, você poderá combinar a métrica e o dimensionamento automático baseado em agenda na mesma condição do dimensionamento automático. Com isso, você poderia organizar o sistema para aumentar se a quantidade de solicitações HTTP excedesse um limite, mas somente entre determinados horários do dia.

É possível criar várias condições de dimensionamento automático para lidar com cronogramas e métricas diferentes. O Azure escalará o serviço automaticamente se uma dessas condições ocorrer. Um Plano do Serviço de Aplicativo também tem uma condição padrão que será usada se nenhuma das outras condições ocorrerem. Essa condição sempre fica ativa e não tem um cronograma.

Métricas para as regras de dimensionamento automático

O dimensionamento automático por métrica exige a definição de uma ou mais regras de dimensionamento automático. Uma regra de dimensionamento automático especifica uma métrica para monitorar e como o dimensionamento automático deve responder quando essa métrica ultrapassar um limite definido. As métricas que você pode monitorar em um aplicativo Web são:

  • Percentual de CPU. Essa métrica é uma indicação do uso da CPU em todas as instâncias. Se o valor está alto, significa que as instâncias estão se vinculando à CPU, o que pode causar atrasos no processamento das solicitações do cliente.
  • Percentual de memória. Essa métrica captura a ocupação da memória pelo aplicativo em todas as instâncias. Um valor alto indica que a memória livre pode estar acabando e causar a falha de uma ou mais instâncias.
  • Comprimento da fila de disco. Essa métrica mede o número de solicitações E/S pendentes em todas as instâncias. Um valor alto significa que pode ocorrer a contenção do disco.
  • Tamanho da fila de HTTP. Essa métrica mostra quantas solicitações de cliente estão aguardando processamento pelo aplicativo Web. Se esse número for grande, as solicitações do cliente poderão falhar com erros HTTP 408 (tempo limite).
  • Entrada de dados. Essa métrica é o número de bytes recebidos em todas as instâncias.
  • Saída de dados. Essa métrica é o número de bytes enviados por todas as instâncias.

Também é possível escalar com base nas métricas de outros serviços do Azure. Por exemplo, se o aplicativo Web processar solicitações recebidas de uma Fila do Barramento de Serviço, talvez você queira criar mais instâncias de um aplicativo Web se o número de itens em uma Fila do Barramento de Serviço do Azure exceder um comprimento crítico.

Como uma regra de dimensionamento automático analisa métricas

O dimensionamento automático funciona ao analisar tendências em valores de métricas ao longo do tempo em todas as instâncias. A análise é um processo de várias etapas.

Na primeira etapa, uma regra de dimensionamento automático agrega os valores recuperados de uma métrica para todas as instâncias em um período de tempo conhecido como intervalo de agregação. Cada métrica tem seu próprio intervalo de agregação intrínseco, mas na maioria dos casos, esse período é de 1 minuto. O valor agregado é conhecido como agregação de tempo. As opções disponíveis são Média, Mínima, Máxima, Soma, Última e Contagem.

Um intervalo de um minuto é curto para determinar se qualquer alteração na métrica durará o suficiente para fazer com que o dimensionamento automático valha a pena. Dessa forma, uma regra de dimensionamento automático executa uma segunda etapa que realiza outra agregação do valor calculado pela agregação de tempo durante um período mais longo, especificado pelo usuário e conhecido como Duração. A Duração mínima é de cinco minutos. Se a Duração for definida como dez minutos no exemplo, a regra de dimensionamento automático agregará os dez valores calculados para o intervalo de agregação.

O cálculo de agregação para a Duração pode ser diferente do cálculo da granularidade de tempo. Por exemplo, se a agregação de tempo for Média e a estatística coletadas for o Percentual de CPU em um intervalo de agregação de um minuto, cada minuto do percentual de uso médio da CPU em todas as instâncias desse minuto será calculado. Se a estatística de intervalo de agregação estiver definida como Máxima e a Duração da regra estiver definida como dez minutos, o máximo dos dez valores médios para o percentual de utilização da CPU será usado para determinar se o limite da regra foi ultrapassado.

Ações de dimensionamento automático

Quando uma regra de dimensionamento automático detecta que uma métrica ultrapassou um limite, ela pode executar uma ação de dimensionamento automático. Uma ação de dimensionamento automático pode ser de expansão horizontal ou redução horizontal. Uma ação de escala horizontal aumenta o número de instâncias, já uma ação de redução horizontal diminui a contagem de instâncias. Uma ação de dimensionamento automático usa um operador (como menor que, maior que, igual a e assim por diante) para determinar como reagir ao limite. Normalmente, as ações de expansão horizontal usam o operador maior que para comparar o valor da métrica com o limite. As ações de redução horizontal tendem a comparar o valor da métrica ao limite com o operador menor que. Uma ação de dimensionamento automático também pode definir a contagem de instâncias em um nível específico, em vez de aumentar ou diminuir o número disponível.

Uma ação de dimensionamento automático tem um período de resfriamento, especificado em minutos. Durante esse intervalo, a regra de dimensionamento não será disparada novamente. Dessa maneira, o sistema pode se estabilizar entre os eventos de dimensionamento automático. Lembre-se: leva tempo para iniciar ou desligar instâncias. Portanto, talvez as métricas coletadas não tenham alterações significativas por vários minutos. O período de resfriamento mínimo é de cinco minutos.

Emparelhamento de regras de dimensionamento automático

É necessário planejar reduções horizontais quando uma carga de trabalho diminui. Considere definir as regras de dimensionamento automático em pares na mesma condição de dimensionamento automático. Uma regra de dimensionamento automático precisa indicar como expandir o sistema quando uma métrica excede um limite superior. A outra regra deve definir como reduzir o sistema quando a mesma métrica diminuir para um valor menor que o limite inferior.

Combinar regras de dimensionamento automático

Uma condição única de dimensionamento automático pode conter diversas regras de dimensionamento automático (por exemplo, uma regra de expansão horizontal e a regra de redução horizontal correspondente). No entanto, as regras de dimensionamento automático em uma condição de dimensionamento automático não precisam estar diretamente relacionadas. É possível definir as quatro regras a seguir na mesma condição de dimensionamento automático:

  • Se o comprimento da fila HTTP exceder 10, expanda horizontalmente em 1
  • Se o uso da CPU exceder 70%, expanda horizontalmente em 1
  • Se o comprimento da fila HTTP for zero, reduza horizontalmente em 1
  • Se o uso da CPU for menor que 50%, reduza horizontalmente em 1

Ao determinar se é necessário expandir horizontalmente, a ação de dimensionamento automático será realizada se qualquer uma das regras de expansão horizontal for cumprida (o comprimento da fila HTTP excede 10 ou o uso da CPU excede 70%). Ao reduzir horizontalmente, a ação de dimensionamento automático será executada somente se todas as regras de redução horizontal forem cumpridas (o comprimento da fila HTTP cai para zero e o uso da CPU fica abaixo de 50%). Caso seja necessário reduzir horizontalmente se somente uma das regras de redução horizontal for cumprida, você precisará definir as regras em condições diferentes de dimensionamento automático.