📚
AZ-104 na prática
Artigo 7
Ver série completa →
Infra

AZ-104 na prática [7]: alta disponibilidade de VMs e Scale Sets

Alta disponibilidade no Azure não é automática. Você precisa projetar para isso, e as escolhas que faz no momento de criar a VM definem o SLA que vai conseguir.

Avalability Sets, Availability Zones, Scale Sets: cada um resolve um tipo diferente de falha. O AZ-104 testa se você sabe qual usar para cada cenário, e por que colocar duas VMs no mesmo Availability Set não é o mesmo que colocar em zonas diferentes.

Availability Sets

Protege contra falhas de hardware dentro de um datacenter. Distribui VMs em Fault Domains (racks diferentes) e Update Domains (grupos de atualização).

# Criar Availability Set
az vm availability-set create \
  --resource-group meu-rg \
  --name meu-as \
  --platform-fault-domain-count 2 \
  --platform-update-domain-count 5

# Criar VM dentro do AS
az vm create \
  --resource-group meu-rg \
  --name vm-web-01 \
  --availability-set meu-as \
  --image Win2022Datacenter \
  --size Standard_D2s_v3

SLA: 99,95% com 2+ VMs no mesmo Availability Set.

Availability Zones

Protege contra falha de datacenter inteiro. Distribui VMs em datacenters fisicamente separados na mesma região.

az vm create \
  --resource-group meu-rg \
  --name vm-web-zone1 \
  --zone 1 \
  --image Ubuntu2204 \
  --size Standard_D2s_v3

az vm create \
  --resource-group meu-rg \
  --name vm-web-zone2 \
  --zone 2 \
  --image Ubuntu2204 \
  --size Standard_D2s_v3

SLA: 99,99% com 2+ VMs em zonas diferentes.

Importante: Não é possível usar Availability Set e Availability Zone na mesma VM, são mutuamente exclusivos. Availability Zones oferecem SLA maior e são a abordagem recomendada para novos deployments.

Virtual Machine Scale Sets (VMSS)

VMSS cria e gerencia um grupo de VMs idênticas com auto-scaling:

az vmss create \
  --resource-group meu-rg \
  --name meu-vmss \
  --image Ubuntu2204 \
  --vm-sku Standard_D2s_v3 \
  --instance-count 2 \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_rsa.pub \
  --zones 1 2 3 \
  --upgrade-policy-mode automatic

# Configurar autoscaling
az monitor autoscale create \
  --resource-group meu-rg \
  --resource meu-vmss \
  --resource-type Microsoft.Compute/virtualMachineScaleSets \
  --name autoscale-cpu \
  --min-count 2 \
  --max-count 10 \
  --count 2

# Regra: escalar para cima quando CPU > 70%
az monitor autoscale rule create \
  --resource-group meu-rg \
  --autoscale-name autoscale-cpu \
  --condition "Percentage CPU > 70 avg 5m" \
  --scale out 2

# Regra: escalar para baixo quando CPU < 30%
az monitor autoscale rule create \
  --resource-group meu-rg \
  --autoscale-name autoscale-cpu \
  --condition "Percentage CPU < 30 avg 5m" \
  --scale in 1

Política de upgrade do VMSS

ModoComportamento
AutomaticAtualiza instâncias automaticamente
RollingAtualiza em lotes, mantendo capacidade
ManualVocê controla quando atualizar cada instância

Azure Dedicated Hosts

Para requisitos de isolamento de hardware (compliance, licenciamento):

az vm host group create \
  --name meu-host-group \
  --resource-group meu-rg \
  --location brazilsouth \
  --platform-fault-domain-count 2 \
  --zone 1

az vm host create \
  --name meu-host \
  --host-group meu-host-group \
  --resource-group meu-rg \
  --sku DSv3-Type1

O que cai no exame

  • Fault Domains vs Update Domains em Availability Sets
  • SLA: 99,95% (AS) vs 99,99% (AZ)
  • Que AS e AZ são mutuamente exclusivos
  • Modos de upgrade do VMSS (Automatic, Rolling, Manual)
  • Quando usar Dedicated Hosts