Virtual Machines & availability
Sizing, availability sets/zones, VM Scale Sets.
Virtual Machines are the core IaaS compute in Azure, and administering them — sizing, availability, and scaling — is a central skill. The key decisions are choosing the right size and designing for availability.
Sizing and availability
A VM’s size (series and SKU — B-series burstable, D-series general, E-series memory, F-series compute, and more) determines its CPU, memory, disk, and network capacity, and matching it to the workload — right-sizing to actual utilization — is both a performance and cost decision. For availability, a single VM is a single point of failure, so Azure offers two constructs: availability sets spread VMs across fault and update domains within a datacenter to survive hardware failures and planned maintenance, while availability zones place VMs in physically separate zones within a region to survive a datacenter-level outage. Production workloads use zones (or at least sets) rather than a lone VM.
# CONSTRUCT PROTECTS AGAINST# single VM → nothing (single point of failure)# availability set → hardware failure + planned maintenance (fault/update domains)# availability zone→ a datacenter-level outage (physically separate zones)# VM Scale Set → + automatic scaling of identical VMs behind a load balancer## Size = series + SKU (e.g. Standard_D4s_v5). Right-size to real utilization.
Scaling with VM Scale Sets
When one VM is not enough and you need elasticity, a Virtual Machine Scale Set (VMSS) manages a group of identical VMs that scale out and in automatically based on metrics (CPU, schedule) behind a load balancer — giving you both capacity that follows demand and self-healing, since unhealthy instances are replaced. Combined with availability zones, a scale set delivers a highly-available, elastic compute tier. Managed disks provide the VMs’ storage (Standard HDD/SSD, Premium SSD, Ultra Disk for the highest performance), and Azure manages the underlying storage so you just pick the tier. The administrator’s job is to size correctly, choose the right availability construct for the SLA, and scale elastically so you pay for the capacity you actually use.