A VM is IaaS: you manage the OS, patches and software; Azure manages the hardware. Uses: dev/test, websites, backup/DR, HPC, big data, extending a datacenter.
Checklist
- Network first: VNet, subnet, NSG (moving a VM to another VNet later is hard).
- Name: follow a convention (for example
vm-web-01). - Region: close to users, offering the sizes/services you need, within data rules; prices differ between regions.
- Pricing: compute (per second while running) + storage (disks are billed even when the VM is stopped). Models: pay-as-you-go, 1–3 year Reservations, Spot (cheap, can be evicted), Azure Hybrid Benefit.
- Size: by vCPUs, RAM, disks, network.
| Series | Optimised for |
|---|---|
| B | Burstable, low load with occasional spikes — cheap |
| D | General purpose |
| E, M | Memory optimised (M: very large RAM) |
| F | Compute optimised (high CPU) |
| L | Storage optimised |
| N | GPU |
| H | HPC |
flowchart LR N["1. Network"] --> T["2. Name"] --> R["3. Region"] --> G["4. Pricing"] --> S["5. Size (series)"]
Traps: F is compute, M is memory; N means GPU, not "network". Old series such as A and G are retired or retiring. Change size (scale up/down) with az vm resize; if the new size is not available on the current cluster, deallocate first.
| Command | Meaning |
|---|---|
az vm list-skus -l southeastasia --size Standard_B -o table |
B-family sizes in the region (list-sizes is deprecated) |
az vm resize -g rg-devops-lab -n vm-web --size Standard_B2s |
Change the size |
Reading a size name
Standard_D4ads_v5 can be decoded piece by piece:
| Part | Meaning |
|---|---|
D |
Family (general purpose) |
4 |
Number of vCPUs |
a |
AMD processor (p means Arm-based) |
d |
Has a local temporary disk |
s |
Supports Premium SSD |
v5 |
Generation of the series |
Other letters include l (lower memory per vCPU) and m (more memory). Newer generations are usually faster and cheaper for the same vCPU count.
Burstable B-series
B-series VMs earn CPU credits while running below a baseline and spend them when the load spikes. A VM that runs hot all the time drains its credits and is throttled to the baseline, so B-series suits small web servers and dev boxes, not steady batch work.
Checking availability and quota
Not every size exists in every region or zone. az vm list-skus -l southeastasia --zone --resource-type virtualMachines -o table shows sizes and their zones, and any restrictions for your subscription. vCPU quotas apply per region and per family, so a new deployment can fail even when the size exists; request an increase before a big rollout.
Getting the size right
Start from measured needs (CPU, memory, disk IOPS, network) rather than guessing high. After a few weeks, Azure Advisor flags underused VMs that can be resized or shut down. Arm-based sizes (for example Cobalt or Ampere processors) often give better price-performance for Linux workloads that run on Arm.
Special options
- Spot VMs can be evicted when Azure needs capacity; choose deallocate or delete as the eviction policy.
- Dedicated hosts give a whole physical server to one customer for compliance or licensing.
- Confidential VMs encrypt memory while in use for sensitive data.