Identificar os fatores para a implementação do dimensionamento automático

Concluído

O dimensionamento automático permite especificar as condições em que se deve escalar horizontalmente um aplicativo Web e depois reduzi-lo horizontalmente de volta novamente. Um dimensionamento automático eficiente garante que recursos suficientes estarão disponíveis para lidar com grandes volumes de solicitações em períodos de pico ao mesmo tempo que mantém baixos os custos fixos quando a demanda diminuir.

É possível configurar o dimensionamento automático para detectar quando escalar e reduzir horizontalmente de acordo com uma combinação de fatores, com base no uso de recursos. Você também pode 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 Web.

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

Ao criar um aplicativo Web, você também cria um Plano do Serviço de Aplicativo. O Plano do Serviço de Aplicativo define o sistema operacional (Windows ou Linux) usado para hospedar o aplicativo Web. O tipo de preço do plano especifica o hardware disponível (capacidade de memória, capacidade de processamento da CPU, armazenamento em disco) e outros serviços, como backups regulares de cada instância do aplicativo Web.

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

Para evitar um dimensionamento automático sem controle e dispendioso, um Plano do Serviço de Aplicativo tem um limite de instâncias. Os planos em tipos de preços mais caros têm limites de instância mais altos. O dimensionamento automático não pode exceder o limite de instâncias do Plano do Serviço de Aplicativo. Por exemplo, a série Standard de planos de serviço dá suporte a até dez instâncias a um custo estimado de US$ 0,40/hora por instância. A série Premium de planos de serviço habilita até 20 instâncias a um custo estimado de US$ 0,80/hora por instância. Os planos de serviço Isolado permitem até 100 instâncias a um custo estimado de US$ 1,60/hora por cada instância.

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:

  • Escale 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 escala horizontal em um determinado horário do dia ou em uma data ou dia específico da semana. Você também pode especificar uma hora ou data para que o sistema seja reduzido novamente.

Dimensionar para uma contagem de instâncias específica só permite que você aumente até um número definido de instâncias. Se for preciso escalar horizontalmente de maneira incremental, você poderá combinar a métrica e o dimensionamento automático baseado em agendamento na mesma condição do dimensionamento automático. Com isso, você pode organizar o sistema para escalar horizontalmente se a quantidade de solicitações HTTP exceder 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 dimensiona automaticamente seu serviço quando qualquer uma de suas condições estabelecidas se aplica. Cada Plano do Serviço de Aplicativo também tem uma condição de dimensionamento automático padrão que é usada se nenhuma outra condição se aplicar. A condição de dimensionamento automático padrão está sempre ativa e não tem um agendamento.

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. A lista a seguir descreve as métricas que você pode monitorar para um aplicativo Web:

  • O Percentual de CPU indica a utilização da CPU em todas as instâncias. Um percentual de CPU alto mostra que as instâncias estão se vinculando à CPU, o que pode causar atrasos no processamento das solicitações do cliente.
  • A Memória de Percentual captura a ocupação da memória pelo aplicativo em todas as instâncias. Um percentual de memória alto indica que a memória livre pode estar se esgotando, o que pode causar falha em uma ou mais instâncias.
  • O Comprimento da Fila de Disco mede o número de solicitações de E/S pendentes em todas as instâncias. Um comprimento da fila de disco alto significa que a contenção de disco pode estar ocorrendo.
  • Comprimento da Fila de Http mostra quantas solicitações de cliente estão aguardando processamento pelo aplicativo Web. Se o comprimento da fila de Http for grande, as solicitações do cliente poderão falhar com erros HTTP 408 (tempo limite).
  • Entrada de Dados é o número de bytes recebidos em todas as instâncias.
  • Saída de Dados é o número de bytes enviados em 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 e 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 sua própria granularidade de tempo intrínseca, mas na maioria dos casos, esse período é de 1 minuto. O valor agregado é conhecido como agregação de tempo. As opções de agregação de tempo disponíveis são Média, Mínima, Máxima, Total, Ú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 10 minutos no exemplo, a regra de dimensionamento automático agregará os 10 valores calculados para a granularidade de tempo.

O cálculo de agregação para a Duração pode ser diferente do cálculo de agregação para a granularidade de tempo. Por exemplo, se a agregação de tempo for Médiae a estatística coletadas for o Percentual de CPU em uma granularidade de tempo de um minuto, cada minuto do percentual de uso médio da CPU em todas as instâncias desse minuto será calculado.

Para outro exemplo, digamos que a granularidade de tempo seja definida como Máxima e a Duração da regra seja definida como 10 minutos. Esta configuração de exemplo usaria o máximo de 10 valores médios para a utilização do percentual de CPU 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 o período de resfriamento, a regra de escala não é disparada novamente. O período de resfriamento permite que o sistema se estabilize entre eventos de dimensionamento automático. Lembre-se de que leva tempo para iniciar ou desligar instâncias. Portanto, talvez as métricas coletadas não mostrem 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 escalar horizontalmente o sistema quando uma métrica excede um limite superior. Uma outra regra deve definir como reduzir horizontalmente 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 escala 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. Por exemplo, você pode definir as quatro regras de dimensionamento automático a seguir em uma única condição de dimensionamento automático:

  • Se o comprimento da fila de HTTP exceder 10, escale horizontalmente em um
  • Se a utilização da CPU exceder 70%, escale horizontalmente em um
  • Se o comprimento da fila de HTTP for igual a zero, reduza horizontalmente em um
  • Se a utilização da CPU cair abaixo de 50%, reduza horizontalmente em um

Ao determinar se é necessário escalar horizontalmente, a ação de dimensionamento automático será realizada se qualquer uma das regras de escala horizontal for cumprida (o comprimento d fila HTTP exceder 10 ou o uso da CPU exceder 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 cair para zero e o uso da CPU ficar abaixo de 50%). Caso você precise 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.