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

Concluído

O dimensionamento automático permite especificar as condições sob as quais um aplicativo Web deve ser dimensionado e, em seguida, dimensionado novamente. O dimensionamento automático eficaz garante a disponibilidade de recursos suficientes para lidar com grandes volumes de solicitações nos horários de pico, ao mesmo tempo em que mantém os custos gerais baixos quando a demanda cai.

Você pode configurar o dimensionamento automático para detetar quando dimensionar e dimensionar 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 uma programação.

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

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

Ao criar uma aplicação Web, também está a criar um Plano do Serviço de Aplicações. O Plano do Serviço de Aplicações define o sistema operativo (Windows ou Linux) utilizado para alojar a aplicação Web. A camada 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 para cada instância do aplicativo Web.

O dimensionamento automático é uma funcionalidade do Plano do Serviço de Aplicações utilizado pela aplicação Web. Quando o aplicativo Web é expandido, o Azure inicia mais instâncias do hardware definido pelo Plano do Serviço de Aplicativo para o aplicativo.

Para evitar o dispendioso dimensionamento automático descontrolado, um Plano do Serviço de Aplicativo tem um limite de instância. Planos em níveis 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. Como exemplo, a série Standard de planos de serviço suporta até 10 instâncias a um custo estimado de US$ 0,40/hora para cada instância. A série Premium de planos de serviço permite até 20 instâncias a um custo estimado de US$ 0,80/hora para cada instância. Os planos de serviço isolados permitem até 100 instâncias a um custo estimado de US$ 1,60/hora para cada instância.

Nota

Nem todos os escalões de preço do Plano do Serviço de Aplicações suportam o dimensionamento automático.

Condições do dimensionamento automático

Pode indicar a forma como quer efetuar o dimensionamento automático ao criar condições de dimensionamento automático. O Azure disponibiliza duas opções de dimensionamento automático:

  • Dimensione com base em uma métrica, como o comprimento da fila de disco ou o número de solicitações HTTP aguardando processamento.
  • Dimensionamento para um número de instâncias específico, segundo um horário. Por exemplo, você pode organizar a expansão 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 o sistema ser redimensionado.

Dimensionar para um número de instâncias específico apenas lhe permite aumentar horizontalmente para um número de instâncias definido. Para expandir incrementalmente, você pode combinar o dimensionamento automático baseado em métricas e agendamento em uma única condição de dimensionamento automático. Por exemplo, você pode organizar a expansão do sistema se o número de solicitações HTTP exceder um limite definido, mas apenas entre determinadas horas do dia.

Pode criar múltiplas condições de dimensionamento automático para gerir diferentes horários e métricas. O Azure dimensiona automaticamente o seu serviço quando qualquer uma das condições estabelecidas se aplica. Cada Plano do Serviço de Aplicativo também tem uma condição padrão de dimensionamento automático 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 uma agenda.

Métricas de dimensionamento automático

O dimensionamento automático por métrica requer que defina uma ou mais regras de dimensionamento automático. Uma regra de dimensionamento automático especifica a métrica a monitorizar e a forma como o dimensionamento automático deve responder quando esta métrica ultrapassar um limiar definido. A lista a seguir descreve as métricas que você pode monitorar para um aplicativo Web:

  • A Porcentagem da CPU indica a utilização da CPU em todas as instâncias. Uma alta porcentagem de CPU mostra que as instâncias estão se tornando vinculadas à CPU, o que pode causar atrasos no processamento de solicitações de clientes.
  • A porcentagem de memória captura a ocupação de memória do aplicativo em todas as instâncias. Uma alta porcentagem de memória indica que a memória livre pode estar baixa, o que pode fazer com que uma ou mais instâncias falhem.
  • O comprimento da fila de disco mede o número de solicitações de E/S pendentes em todas as instâncias. Um comprimento de fila de disco alto significa que a contenção de disco pode estar ocorrendo.
  • Http Queue Length mostra quantas solicitações de cliente estão aguardando processamento pelo aplicativo Web. Se o comprimento da fila http for grande, as solicitações do cliente podem falhar com erros HTTP 408 (tempo limite).
  • Data In é o número de bytes recebidos em todas as instâncias.
  • Data out é o número de bytes enviados em todas as instâncias.

Também pode dimensionar com base em métricas de outros serviços do Azure. Por exemplo, se um aplicativo Web processar solicitações recebidas de uma Fila do Barramento de Serviço, convém girar mais instâncias desse aplicativo se o número de itens mantidos 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 analisando tendências em valores métricos ao longo do tempo e em todas as instâncias. A análise é um processo de vários passos.

No primeiro passo, uma regra de dimensionamento automático agrega os valores obtidos de uma métrica para todas as instâncias durante um período de tempo conhecido como intervalo de agregação. Cada métrica tem seu próprio grão de tempo intrínseco, mas na maioria dos casos esse período é de um minuto. O valor agregado é conhecido como a agregação de tempo. As opções de agregação de tempo são Média, Mínima, Máxima, Total, Última e Contagem.

Um minuto é um curto intervalo para determinar se qualquer alteração na métrica é duradoura o suficiente para fazer o dimensionamento automático valer a pena. Assim, uma regra de dimensionamento automático executa uma segunda agregação do valor calculado pela agregação de tempo durante um período mais longo especificado pelo usuário, conhecido como Duração. A Duração mínima é cinco minutos. Se a Duração for definida como 10 minutos, por exemplo, a regra de escala automática agregará os 10 valores calculados para o grão de tempo.

O cálculo de agregação para a Duração pode ser diferente do cálculo de agregação para o grão de tempo. Por exemplo, se a agregação detempo for Média e a métrica reunida for Porcentagem de CPU em um grão de tempo de um minuto, a cada minuto será calculada a utilização média da porcentagem de CPU em todas as instâncias para esse minuto.

Para outro exemplo, digamos que a agregação de tempo é definida como Máximo e a Duração da regra é definida como 10 minutos. Este exemplo de configuração usaria o máximo dos 10 valores médios para a utilização da porcentagem da CPU para determinar se o limite da regra foi ultrapassado.

Ações de dimensionamento automático

Quando uma regra de dimensionamento automático deteta que uma métrica ultrapassou um limite, a regra de dimensionamento automático pode executar uma ação de dimensionamento automático. Uma ação de dimensionamento automático pode ser de aumento horizontal ou de redução horizontal. Uma ação de aumento horizontal aumenta o número de instâncias, enquanto uma ação de redução horizontal reduz o número de instâncias. Uma ação de dimensionamento automático utiliza um operador (por exemplo, menor que, maior que, igual a, entre outros) para determinar a forma de reagir perante o limiar. Normalmente, as ações de aumento horizontal utilizam o operador maior que para comparar o valor da métrica com o limiar. As ações de redução horizontal tendem a comparar o valor da métrica com o limiar ao utilizar o operador menos que. Uma ação de dimensionamento automático também pode definir a contagem de instâncias para um nível específico, ao invés de incrementar 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 reflexão, a regra de escala não é acionada novamente. O período de resfriamento permite que o sistema se estabilize entre eventos de escala automática. Lembre-se de que leva tempo para iniciar ou encerrar instâncias e, portanto, qualquer métrica coletada pode não mostrar alterações significativas por vários minutos. O tempo de arrefecimento mínimo é de cinco minutos.

Emparelhar regras de dimensionamento automático

Deve planear uma redução horizontal quando uma carga de trabalho diminuir. Pondere definir regras de dimensionamento automático em pares na mesma condição de dimensionamento automático. Uma regra de dimensionamento automático deve indicar como expandir o sistema quando uma métrica excede um limite superior. Em seguida, outra regra deve definir como dimensionar o sistema novamente quando a mesma métrica cair abaixo de um limite inferior.

Combinar regras de dimensionamento automático

Uma única condição de dimensionamento automático pode conter várias regras de dimensionamento automático (como uma regra de expansão e a regra de dimensionamento correspondente). No entanto, as regras de dimensionamento automático numa condição de dimensionamento automático não têm de 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 HTTP exceder 10, dimensione em um
  • Se a utilização da CPU exceder 70%, dimensione em um
  • Se o comprimento da fila HTTP for igual a zero, dimensione por um
  • Se a utilização da CPU cair abaixo de 50%, aumente a escala em um

Ao determinar se a expansão deve ser dimensionada, a ação de dimensionamento automático é executada se qualquer uma das regras de expansão for atendida (o comprimento da fila HTTP excede 10 ou a utilização da CPU excede 70%). Ao dimensionar, a ação de dimensionamento automático é executada somente se todas as regras de dimensionamento forem atendidas (o comprimento da fila HTTP cai para zero e a utilização da CPU cai abaixo de 50%). Se você precisar dimensionar se apenas uma regra de dimensionamento for atendida, você deverá definir as regras em condições de dimensionamento automático separadas.