Dimensionamento automático no Serviço de Aplicativo do Azure
Nota
O dimensionamento automático está disponível para todos os tipos de aplicativos: Windows e Linux (implantados como código e contêiner). O dimensionamento automático não é suportado para o tráfego de slots 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. É diferente do dimensionamento automático do Azure pré-existente, que permite definir regras de dimensionamento com base em agendas e recursos. Com o dimensionamento automático, você pode ajustar as configurações de dimensionamento para melhorar o desempenho do seu aplicativo e evitar problemas de inicialização a frio. A plataforma pré-aquece instâncias para atuar como um buffer ao dimensionar, garantindo transições de desempenho suaves. Você é cobrado por segundo para cada instância, incluindo instâncias pré-aquecidas.
Uma comparação de escalabilidade horizontal e dimensionamento nas opções disponíveis no Serviço de Aplicativo:
Manual | Dimensionamento Automático | Dimensionamento automático | |
---|---|---|---|
Escalões de preços disponíveis | Básico e Superior | Standard e Superior | Níveis de preços Premium V2 (P1V2, P2V2, P3V2) e Premium V3 (P0V3, P1V3, P2V3, P3V3, P1MV3, P2MV3, P3MV3, P4MV3, P5MV3) |
Dimensionamento baseado em regras | Não | Sim | Não, a plataforma gerencia o scale-out e o in com base no tráfego HTTP. |
Dimensionamento baseado em programação | Não | Sim | No |
Instâncias sempre prontas | Não, seu aplicativo Web é executado no número de instâncias dimensionadas manualmente. | Nã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 1) |
Instâncias pré-aquecidas | No | Não | Sim (padrão 1) |
Máximo por aplicação | No | No | Sim |
Como funciona o dimensionamento automático
Você habilita o dimensionamento automático para um Plano do Serviço de Aplicativo e configura uma variedade 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 expandir simultaneamente.
Aqui estão alguns cenários em que você deve expandir 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 independente uns dos outros.
- Seu aplicativo Web está conectado a um banco de dados ou sistema herdado, que pode não ser dimensionado tão rápido 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.
Ativar dimensionamento automático
A intermitência máxima é o maior número de instâncias para as quais seu Plano do Serviço de Aplicativo pode aumentar com base em solicitações HTTP de entrada. Para os planos Premium v2 & v3, você pode definir um burst máximo de até 30 instâncias. O burst máximo deve ser igual ou maior do que o número de trabalhadores 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 máximo de intermitência e selecione o botão Salvar .
Definir o número mínimo de instâncias do 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 do aplicativo Web, navegue até o menu esquerdo do aplicativo Web e selecione expansão (Plano do Serviço de Aplicativo). Atualize o valor de instâncias Sempre prontas e selecione o botão Salvar .
Definir o número máximo de instâncias do aplicativo Web
O limite máximo de escala define o número máximo de instâncias para as quais um aplicativo Web pode ser dimensionado. O limite máximo de escala ajuda quando um componente downstream, como um banco de dados, tem taxa de transferência limitada. O máximo por aplicativo pode estar entre 1 e o máximo de intermitência.
Para definir o número máximo de instâncias do 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 .
Atualizar instâncias pré-aquecidas
A configuração de instância pré-aquecida fornece instâncias aquecidas como um buffer durante eventos de ativação e escala HTTP. As instâncias pré-aquecidas continuam a armazenar em buffer até que o limite máximo de expansão seja atingido. A contagem 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ância pré-aquecida no portal, em vez disso, você deve usar a CLI do Azure.
Desativar dimensionamento automático
Para desativar 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 selecione o botão Salvar.
O dimensionamento automático dá suporte a aplicativos do Azure Function?
Atenção
O Dimensionamento Automático é desabilitado quando os aplicativos Web do Serviço de Aplicativo e os aplicativos da Função do Azure estão no mesmo Plano do Serviço de Aplicativo.
Não, você só pode ter aplicativos Web do Serviço de Aplicativo do Azure no Plano do Serviço de Aplicativo onde deseja habilitar o dimensionamento automático. Para o Functions, é recomendável usar o plano Premium do Azure Functions.
Como funciona o dimensionamento automático nos bastidores?
Os aplicativos configurados para serem dimensionados automaticamente são monitorados continuamente, com avaliações de integridade do trabalhador ocorrendo pelo menos uma vez a cada poucos segundos. Se o sistema detetar aumento de carga no aplicativo, as verificações de integridade se tornam mais frequentes. Em caso de deterioração da saúde do trabalhador e solicitação de lentidão, instâncias adicionais são solicitadas. A velocidade com que as instâncias são adicionadas varia com base no padrão de carga e no tempo de inicialização do aplicativo individual. Aplicativos com breves tempos de inicialização e explosões intermitentes de carga podem ver uma máquina virtual adicionada a cada poucos segundos a um minuto.
Assim que a carga diminuir, a plataforma inicia uma revisão para um possível dimensionamento. Este processo normalmente começa aproximadamente 5-10 minutos após a carga parar de aumentar. Durante o dimensionamento, as instâncias são removidas a uma taxa máxima de um a cada poucos segundos a um minuto.
Além disso, se vários aplicativos Web forem implantados dentro do mesmo plano de serviço de aplicativo, a plataforma se esforçará para alocar recursos entre instâncias disponíveis com base na carga de cada aplicativo Web individual.
Como faço para ser cobrado por instâncias pré-aquecidas?
Para entender como você é cobrado por instâncias pré-aquecidas, considere este cenário: Digamos que seu aplicativo Web tenha cinco instâncias que estão sempre prontas, juntamente com uma instância pré-aquecida definida como padrão.
Quando seu aplicativo Web está ocioso e não recebe nenhuma solicitação HTTP, ele é executado com as cinco instâncias sempre prontas. Durante esse tempo, você não será cobrado por uma instância pré-aquecida porque as instâncias sempre prontas não estão sendo usadas e, portanto, nenhuma instância pré-aquecida é alocada.
No entanto, assim que seu aplicativo Web começa a receber solicitações HTTP e as cinco instâncias sempre prontas ficam ativas, uma instância pré-aquecida é alocada e a cobrança por ela começa.
Se a taxa de solicitações HTTP continuar aumentando e o Serviço de Aplicativo decidir escalar além das cinco instâncias iniciais, ele começará a utilizar a instância pré-aquecida. Isso significa que, quando há seis instâncias ativas, uma sétima instância é imediatamente provisionada para preencher o buffer pré-aquecido.
Esse processo de dimensionamento e pré-aquecimento continua até que a contagem máxima de instâncias para o aplicativo seja atingida. É importante observar que nenhuma instância é pré-aquecida ou ativada além da contagem máxima de instâncias.
Por que o 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 /admin/host/ping
ponto de extremidade 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 seu aplicativo.
Se seu aplicativo Web retornar um status 5xx, esses pings de ponto de extremidade podem resultar em reinicializações intermitentes, embora isso seja incomum. No momento, estamos implementando melhorias para lidar com essas reinicializações intermitentes. Até lá, certifique-se de que seu aplicativo Web não retorne um status 5xx neste ponto de extremidade. Por favor, esteja ciente de que esses pontos de extremidade de ping não podem ser personalizados.
Como faço para controlar 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á sendo executado, incluindo a instância pré-aquecida, se for implantada. Essa métrica também pode ser usada para controlar o número máximo de instâncias que seu aplicativo Web escalou durante um evento de Dimensionamento Automático. Essa 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 ARR Affinity 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 aumentar a escala (aumentar os recursos em uma única instância). Para aplicativos sem monitoração de estado, a expansão (adicionando mais instâncias) oferece mais flexibilidade e escalabilidade. Os cookies ARR Affinity são ativados por padrão no Serviço de Aplicativo. Dependendo das necessidades da sua aplicação, pode optar por desativar os cookies de afinidade ARR ao utilizar o Dimensionamento automático.
Para desativar os cookies ARR Affinity: selecione 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 Desativado e, em seguida, selecione o botão Salvar .