Visão geral do dimensionamento automático no Azure
Este artigo descreve o recurso de dimensionamento automático no Azure Monitor e seus benefícios.
O dimensionamento automático dá suporte a muitos tipos de recursos. Para obter mais informações sobre recursos com suporte, consulte Recursos com suporte no dimensionamento automático.
Observação
Os conjuntos de disponibilidade são um recurso de dimensionamento mais antigo para máquinas virtuais com suporte limitado. Recomendamos migrar para os Conjuntos de Dimensionamento de Máquinas Virtuais do Microsoft Azure para obter um suporte mais rápido e confiável do dimensionamento automático.
O que é dimensionamento automático
O dimensionamento automático é um serviço que permite adicionar e remover recursos automaticamente de acordo com a carga em seu aplicativo.
Quando o aplicativo apresenta maior carga, o dimensionamento automático adiciona recursos para identificar o aumento da carga. Quando a carga é baixa, o dimensionamento automático reduz o número de recursos, reduzindo os custos. Você pode escalar o aplicativo com base em métricas como uso de CPU, comprimento da fila e memória disponível. Você também pode escalar com base em um agendamento. Métricas e agendamentos são configurados em regras. As regras incluem um nível mínimo de recursos necessários para executar seu aplicativo e um nível máximo de recursos que não serão excedidos.
Por exemplo, escale horizontalmente o aplicativo adicionando VMs quando o uso médio de CPU por VM estiver acima de 70%. Reduza-o verticalmente removendo as VMs quando o uso da CPU cair para 40%.
Quando as condições nas regras são atendidas, uma ou mais ações de dimensionamento automático são disparadas, adicionando ou removendo VMs. Além disso, você pode executar outras ações, como enviar notificações por email ou webhooks para disparar processos em outros sistemas.
Colocação em escala horizontal vs. vertical
O dimensionamento automático reduz e expande horizontalmente. Colocar em escala horizontalmente é um aumento ou uma diminuição do número de instâncias do recurso. Por exemplo, para um conjunto de dimensionamento de máquinas virtuais, dimensionar significa adicionar mais máquinas virtuais. A redução remove máquinas virtuais. A colocação em escala horizontal é flexível em uma situação de nuvem, pois permite que você execute um grande número de VMs para lidar com a carga.
O dimensionamento automático não dá suporte à colocação em escala vertical. Por outro lado, a colocação em escala vertical mantém o mesmo número de instâncias de recursos constante, mas dá a esses recursos mais capacidade em termos de memória, velocidade de CPU, espaço em disco e rede. O dimensionamento vertical é limitado pela disponibilidade de hardware maior, que eventualmente atinge um limite superior. A disponibilidade do tamanho do hardware varia no Azure por região. A colocação em escala vertical também pode exigir uma reinicialização da máquina virtual durante o processo de escala.
Quando as condições nas regras são atendidas, uma ou mais ações de dimensionamento automático são disparadas, adicionando ou removendo VMs. Além disso, você pode executar outras ações, como enviar notificações por email ou webhooks para disparar processos em outros sistemas.
Dimensionamento automático preditivo
O dimensionamento automático preditivo usa o machine learning para ajudar a gerenciar e escalar conjuntos de dimensionamento de máquinas virtuais com padrões de carga de trabalho cíclicas. Ele prevê a carga geral da CPU para o conjunto de dimensionamento de máquinas virtuais, com base nos padrões de uso histórico da CPU. O conjunto de dimensionamento pode ser escalado horizontalmente para atender à demanda prevista.
Configuração do dimensionamento automático
Você pode configurar o dimensionamento automático via:
- Azure portal
- PowerShell
- CLI (Interface de linha de comando) de plataforma cruzada
- API REST do Monitor do Azure
Métricas do recurso
Os recursos geram métricas usadas em regras de dimensionamento automático para disparar eventos de escala. Os conjuntos de dimensionamento de máquinas virtuais usam dados de telemetria de agentes de diagnóstico do Azure para gerar métricas. A telemetria para o recurso de Aplicativos Web de Serviço de Aplicativo do Azure e Serviços de Nuvem do Azure vem diretamente da infraestrutura do Azure. Algumas métricas usadas normalmente incluem o uso da CPU, utilização de memória, contagens de thread, comprimento da fila e uso do disco. Para obter uma lista de métricas disponíveis, consulte Métricas comuns de dimensionamento automático.
Métricas personalizadas
Use suas próprias métricas personalizadas geradas pelo aplicativo. Configure seu aplicativo para enviar métricas ao Application Insights para que você possa usar essas métricas para decidir quando escalar.
Hora
Configure regras baseadas em agendamento para disparar eventos de escala. Use regras baseadas em agendamento quando vir padrões de tempo em sua carga e quiser escalar antes que ocorra uma alteração antecipada na carga.
Regras
As regras definem as condições necessárias para disparar um evento de escala, a direção do dimensionamento e a quantidade pela qual dimensionar. Combine várias regras usando métricas diferentes, por exemplo, uso da CPU e comprimento da fila. Defina até 10 regras por perfil.
As regras podem ser:
- Baseado em métrica: gatilho com base em um valor de métrica, por exemplo, quando o uso da CPU estiver acima de 50%.
- Baseado no horário: gatilho com base em um agendamento, por exemplo, todos os sábados às 8h.
O dimensionamento automático será dimensionado se qualquer uma das regras for atendida. O dimensionamento automático expande somente se todas as regras forem atendidas. Em termos de operadores lógicos, o operador OR é usado ao escalar horizontalmente com várias regras. O operador AND é usado ao reduzir horizontalmente com várias regras.
Ações e automação
As regras podem disparar uma ou mais ações. Ações incluem:
- Escala: escalar ou reduzir horizontalmente os recursos.
- Email: envia um email para os administradores e coadministradores da assinatura, e/ou qualquer outro endereço de email.
- Webhooks: chama webhooks para disparar várias ações complexas dentro ou fora do Azure. No Azure, você pode:
- Inicie um runbook da Automação do Azure.
- Chamar uma função do Azure.
- Disparar um aplicativo lógico do Azure.
Configurações de autoescala
A configuração de dimensionamento automático inclui condições de escala que definem regras, limites, agendamentos e notificações. Defina uma ou mais condições de escala nas configurações e uma configuração de notificação.
O dimensionamento automático usa a seguinte terminologia e estrutura.
Interface do usuário | JSON/CLI | Descrição |
---|---|---|
Condições de escala | perfis | Uma coleção de regras, limites de instância e agendamentos, com base em uma métrica ou horário. Você pode definir uma ou mais condições ou perfis de escala. Defina até 20 perfis por configuração de dimensionamento automático. |
Regras | regras | Um conjunto de condições com base no horário ou nas métricas que atuam como gatilho de uma ação de escala. Você pode definir uma ou mais regras para ações de redução horizontal e ampliação horizontal. Defina um total de até 10 regras por perfil. |
Limites da instância | ALOCADA | Cada condição ou perfil de escala define o número padrão, máximo e mínimo de instâncias que podem ser executadas sob esse perfil. |
Agenda | recurrence | Indica quando o dimensionamento automático coloca essa condição de escala ou perfil em vigor. Você pode ter várias condições de escala, que permitem identificar requisitos diferentes e sobrepostos. Por exemplo, você pode ter diferentes condições de dimensionamento para diferentes horários do dia ou dias da semana. |
Notificar | notificação | Define as notificações a serem enviadas quando ocorre um evento de dimensionamento automático. O dimensionamento automático pode notificar um ou mais endereços de email ou fazer uma chamada para um ou mais webhooks. Você pode configurar vários webhooks no JSON, mas apenas um na interface do usuário. |
A lista completa de campos configuráveis e descrições está disponível na API REST do Dimensionamento Automático.
Para obter exemplos de código, consulte:
- Tutorial: Dimensionamento automático de um conjunto de dimensionamento de máquinas virtuais com a CLI do Azure
- Tutorial: Dimensionar automaticamente um conjunto de dimensionamento de máquinas virtuais com o PowerShell
Serviços com suporte para o dimensionamento automático
O dimensionamento automático dá suporte aos serviços a seguir.
Próximas etapas
Para saber mais sobre o dimensionamento automático, consulte os seguintes recursos:
- Métricas comuns de dimensionamento automático do Azure Monitor
- Usar ações de dimensionamento automático para enviar notificações de alerta por email e webhook
- Tutorial: Dimensionamento automático de um conjunto de dimensionamento de máquinas virtuais com a CLI do Azure
- Tutorial: escale automaticamente um conjunto de dimensionamento de máquinas virtuais com o Azure PowerShell
- Referência da CLI de dimensionamento automático
- Definição de recurso de modelo do ARM
- Referência do Az.Monitor do PowerShell
- Referência da API REST: configurações de dimensionamento automático