Compartilhar via


Dimensionamento automático no Serviço de Aplicativo do Azure

Observação

O dimensionamento automático está disponível para todos os tipos de aplicativo: Windows e Linux (implantação como código e contêiner). Não há suporte para a escala automática no tráfego de slot de implantação.

O dimensionamento automático é uma nova opção de expansão que lida automaticamente com decisões de dimensionamento para seus aplicativos Web e Planos do Serviço de Aplicativo. O recurso é diferente do dimensionamento automático do Azure pré-existente, que lhe permite definir as regras do dimensionamento com base em agendamentos e recursos. Com o dimensionamento automático, você pode ajustar as configurações de dimensionamento para aprimorar o desempenho do seu aplicativo e evitar problemas de inicialização a frio. A plataforma pré-aquece as instâncias para atuar como um buffer no escalonamento horizontal, garantindo transições de desempenho suaves. Você é cobrado por segundo para todas as instâncias, incluindo instâncias pré-aquecidas.

Uma comparação de expansão e escala nas opções disponíveis no Serviço de Aplicativo:

  Manual Autoescala Dimensionamento automático
Tipos de preço disponíveis Básico e superior Standard e superior Tipos de preços Premium V2 (P1V2, P2V2, P3V2) e Premium V3 (P0V3, P1V3, P2V3, P3V3, P1MV3, P2MV3, P3MV3, P4MV3, P5MV3)
Dimensionamento baseado em regras No Sim Não, a plataforma gerencia a expansão e se baseia no tráfego HTTP.
Dimensionamento baseado em agendamento No Sim No
Instâncias sempre prontas Não, seu aplicativo web é executado no número de instâncias dimensionadas manualmente. Não, o seu aplicativo Web é executado em outras instâncias disponíveis durante a operação de expansão, com base no limite definido para regras de dimensionamento automático. Sim (mínimo de 1)
Instâncias pré-aquecidas No No Sim (padrão de 1)
Máximo por aplicativo No No Sim

Como o dimensionamento automático funciona

Você pode habilitar o dimensionamento automático para um Plano do Serviço de Aplicativo e configurar uma faixa de instâncias para cada um dos aplicativos web. À medida que seu aplicativo web começa a receber tráfego HTTP, o Serviço de Aplicativo monitora a carga e adiciona instâncias. Os recursos podem ser compartilhados quando vários aplicativos Web dentro de um Plano do Serviço de Aplicativo são necessários para expansão simultânea.

Veja alguns cenários em que você deve fazer a expansão automaticamente:

  • Você não deseja configurar regras de dimensionamento automático com base em métricas de recursos.
  • Você deseja que seus aplicativos web dentro do mesmo Plano do Serviço de Aplicativo sejam dimensionados de forma diferente e independentemente uns dos outros.
  • Seu aplicativo web está conectado a um banco de dados ou sistema herdados, que podem não ser dimensionados tão rapidamente quanto o aplicativo web. O dimensionamento automático permite que você defina o número máximo de instâncias para as quais seu Plano do Serviço de Aplicativo pode ser dimensionado Essa configuração ajuda o aplicativo web a não sobrecarregar o back-end.

Habilitar o dimensionamento automático

Intermitência máxima é o maior número de instâncias para as quais seu Plano do Serviço de Aplicativo pode ser dimensionado com base em solicitações HTTP de entrada. Em planos Premium v2 e v3, você pode definir uma intermitência máxima de até 30 instâncias. A intermitência máxima deve ser igual ou maior que o número de trabalhos especificado para o Plano do Serviço de Aplicativo.

Para habilitar o dimensionamento automático, navegue até o menu esquerdo do aplicativo Web e selecione expansão (Plano do Serviço de Aplicativo). Selecione Automático, atualize o valor de Intermitência máxima e selecione o botão Salvar.

Dimensionamento automático no portal do Azure

Definir o número mínimo de instâncias de aplicativo web

Instâncias sempre prontas é uma configuração no nível do aplicativo para especificar o número mínimo de instâncias. Se a carga exceder o que as instâncias sempre prontas podem lidar, instâncias adicionais serão adicionadas (até a intermitência máxima especificada para o plano do Serviço de Aplicativo).

Para definir o número mínimo de instâncias de aplicativo Web, navegue até o menu esquerdo do aplicativo Web e selecione expansão (Plano do Serviço de Aplicativo). Atualize o valor Instâncias sempre prontas e selecione o botão Salvar.

Captura de tela das instâncias sempre prontas

Definir o número máximo de instâncias de aplicativo web

O limite máximo de dimensionamento define o número máximo de instâncias para as quais um aplicativo web pode ser dimensionado. O limite máximo de dimensionamento ajuda quando um componente downstream como um banco de dados tem uma taxa de transferência limitada. O máximo por aplicativo pode estar entre 1 e a intermitência máxima.

Para definir o número máximo de instâncias de aplicativo Web, navegue até o menu esquerdo do aplicativo Web e selecione expansão (Plano do Serviço de Aplicativo). Selecione Impor limite de expansão, atualize o Limite máximo de escala e selecione o botão Salvar.

Captura de tela do limite máximo de dimensionamento

Atualizar instâncias pré-aquecidas

A configuração de instâncias pré-aquecidas fornece instâncias aquecidas como um buffer durante os eventos de dimensionamento e ativação de HTTP. As instâncias pré-aquecidas continuam no buffer até que o limite máximo de expansão seja atingido. O número de instâncias pré-aquecidas padrão é 1 e, para a maioria dos cenários, esse valor deve permanecer como 1.

Você não pode alterar a configuração de instâncias pré-aquecidas no portal. Em vez disso, use a CLI do Azure.

Desabilitar o dimensionamento automático

Para desabilitar o dimensionamento automático, navegue até o menu esquerdo do aplicativo Web e selecione expansão (Plano do Serviço de Aplicativo). Selecione Manual e, em seguida, selecione o botão Salvar .

Captura de tela do dimensionamento manual

O dimensionamento automático é compatível com os aplicativos do Azure Functions?

Cuidado

O dimensionamento automático é desabilitado quando aplicativos Web do Serviço de Aplicativo e aplicativos do Azure Functions estão no mesmo Plano do Serviço de Aplicativo.

Não, você só pode ter os aplicativos web do Serviço de Aplicativo do Azure no Plano do Serviço de Aplicativo em que quiser habilitar o dimensionamento automático. Para o Functions, recomendamos usar o plano Azure Functions Premium.

Como o dimensionamento automático funciona nos bastidores?

Os aplicativos definidos para serem dimensionados automaticamente são monitorados continuamente, com avaliações de integridade do trabalho ocorrendo pelo menos uma vez a cada poucos segundos. Se o sistema detectar o aumento da carga no aplicativo, as verificações de integridade se tornarão mais frequentes. No caso de deterioração da integridade do trabalho e lentidão das solicitações, são solicitadas instâncias adicionais. A velocidade com que as instâncias são adicionadas varia de acordo com o padrão de carga e o tempo de inicialização do aplicativo individual. Aplicativos com breves tempos de inicialização e intermitência de carga podem ter uma máquina virtual adicionada em intervalos de poucos segundos a um minuto.

Depois que a carga diminuir, a plataforma iniciará uma revisão para possíveis dimensionamentos. Normalmente, esse processo começa aproximadamente de 5 a 10 minutos depois que a carga para de aumentar. Durante o dimensionamento, as instâncias são removidas a uma taxa máxima de uma a cada poucos segundos a um minuto.

Além disso, se vários aplicativos Web forem implantados no mesmo Plano do Serviço de Aplicativo, a plataforma se esforça para alocar recursos entre instâncias disponíveis com base na carga de cada aplicativo Web individual.

Como fazer para ser cobrado por instâncias pré-inicializadas?

Para entender como você é cobrado por instâncias pré-inicializadas, considere este cenário: digamos que o seu aplicativo Web tenha cinco instâncias sempre prontas, juntamente com uma instância pré-inicializada definida como o padrão.

Quando o seu aplicativo Web está ocioso e não recebe solicitações HTTP, ele é executado com as cinco instâncias sempre prontas. Durante esse tempo, você não é cobrado por instâncias pré-inicializadas porque as instâncias sempre prontas não estão sendo usadas e, portanto, nenhuma instância pré-inicializada é alocada.

No entanto, assim que o seu aplicativo Web começa a receber solicitações HTTP e as cinco instâncias sempre prontas ficam ativas, uma instância pré-inicializada é alocada e a cobrança para ela começa.

Se a taxa de solicitações HTTP continuar aumentando e o Serviço de Aplicativo decidir dimensionar além das cinco instâncias iniciais, ele começará a utilizar a instância pré-inicializada. Isso significa que, quando há seis instâncias ativas, uma sétima instância é imediatamente provisionada para preencher o buffer pré-inicializado.

Este processo de dimensionamento e pré-inicialização continua até que a contagem máxima de instâncias para o aplicativo seja atingida. É importante observar que nenhuma instância está pré-inicializada ou ativada além da contagem máxima de instâncias.

Por que AppServiceHTTPLogs tem entradas de log semelhantes a "/admin/host/ping" com um status 404?

O Dimensionamento Automático do Serviço de Aplicativo verifica periodicamente o ponto de extremidade /admin/host/ping juntamente com outros mecanismos de verificação de integridade inerentes à plataforma. Essas verificações são recursos especificamente implementados. Ocasionalmente, devido às configurações de plataforma existentes, erros 404 podem ser retornados por esses pings. No entanto, é importante observar que esses erros 404 não devem afetar a disponibilidade ou o desempenho de dimensionamento do aplicativo.

Se o aplicativo Web retornar um status 5xx, esses pings de ponto de extremidade poderão resultar em reinicializações intermitentes, embora isso seja incomum. No momento, estamos implementando aprimoramentos para resolver essas reinicializações intermitentes. Até lá, verifique se o seu aplicativo Web não retorna um status 5xx neste ponto de extremidade. Lembre-se de que esses pontos de extremidade de ping não podem ser personalizados.

Como fazer para acompanhar o número de instâncias dimensionadas durante o evento de dimensionamento automático?

A métrica AutomaticScalingInstanceCount relatará o número de máquinas virtuais nas quais o aplicativo está em execução, incluindo a instância pré-inicializada, se ela for implantada. Esta métrica também pode ser usada para acompanhar o número máximo de instâncias que seu aplicativo Web escalonou durante um evento de dimensionamento automático. Esta métrica está disponível apenas para os aplicativos que têm o dimensionamento automático habilitado.

Como a afinidade ARR afeta o dimensionamento automático?

O Serviço de Aplicativo do Azure usa cookies de roteamento de solicitação de aplicativo conhecidos como afinidade ARR. Os cookies de afinidade ARR restringem o dimensionamento porque enviam solicitações apenas para servidores associados ao cookie, em vez de qualquer instância disponível. Para aplicativos que armazenam o estado, é melhor escalar verticalmente (aumentar os recursos em uma única instância). Para aplicativos sem estado, o dimensionamento (adição de mais instâncias) oferece mais flexibilidade e escalabilidade. Os cookies de afinidade ARR são habilitados por padrão no Serviço de Aplicativo. Dependendo das necessidades do aplicativo, você pode optar por desabilitar os cookies de afinidade ARR ao usar o dimensionamento automático.

Para desabilitar cookies de Afinidade ARR: selecione o seu aplicativo do Serviço de Aplicativo e, em Configurações, selecione Configuração. Em seguida, selecione a guia Configurações gerais. Em Afinidade ARR, selecione Desativar e, em seguida, selecione o botão Salvar.

Mais recursos