100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Azure

Azure Virtual Machines

Azure Virtual Machines (VMs) provide on-demand, resizable compute as a service, letting you run Windows or Linux workloads in Microsoft's datacenters with full control over the OS.

ComputeBeginner9 min readJul 10, 2026
Analogies

What Is an Azure Virtual Machine?

An Azure Virtual Machine is an Infrastructure-as-a-Service (IaaS) offering that gives you a fully configurable virtual computer running in Microsoft's global datacenters. Unlike Platform-as-a-Service options, a VM hands you the operating system itself, so you choose the OS image (Windows Server, Ubuntu, Red Hat, etc.), install your own software stack, and manage patching, firewall rules, and runtime dependencies yourself. This makes VMs the go-to choice when you need lift-and-shift migration of an existing on-premises server, or when your application requires OS-level access that a managed PaaS service wouldn't expose.

🏏

Cricket analogy: Choosing a VM is like a franchise picking its own head coach in the IPL rather than accepting a league-appointed one — MS Dhoni's CSK sets its own training regime, batting order, and fitness drills, just as you configure the VM's OS and software stack yourself.

VM Sizes and Series

Azure organizes VM sizes into series optimized for different workloads: the B-series offers burstable, cost-effective compute for dev/test workloads with variable load; the D-series provides general-purpose balanced CPU-to-memory ratios for most production apps; the E-series is memory-optimized for databases and in-memory analytics; the F-series is compute-optimized for CPU-intensive tasks like batch processing; and the N-series adds GPUs for machine learning training or graphics rendering. Each size within a series (e.g., Standard_D4s_v5) specifies vCPU count, RAM, temp storage, and max data disks, and you can resize a VM (with a reboot) as workload needs change.

🏏

Cricket analogy: Picking a VM series is like choosing a bowler for the situation — you bring on Jasprit Bumrah's yorkers for the death overs (compute-optimized F-series) but rely on Ravindra Jadeja's economical spin (burstable B-series) to contain runs cheaply in the middle overs.

Cost Management and Availability

Azure VMs support several pricing models: Pay-As-You-Go bills per second of uptime with no commitment; Reserved Instances (1- or 3-year terms) offer up to roughly 72% savings in exchange for a capacity commitment; and Spot VMs let you bid on unused Azure capacity at steep discounts (up to 90% off), but Microsoft can evict your VM with only 30 seconds' notice when it needs the capacity back. Choosing the right model is a workload decision: Spot VMs suit fault-tolerant batch jobs or stateless workers, while Reserved Instances suit predictable, always-on production workloads like a database server.

🏏

Cricket analogy: Choosing Spot VMs is like fielding a player on a one-match contract who can be recalled by their franchise mid-tournament — cheap and useful for a fault-tolerant net session, but risky to rely on for the final.

To protect against downtime, Azure offers Availability Sets, which spread VMs across multiple fault domains (separate power/network) and update domains (separate patching groups) within a single datacenter, and Availability Zones, which spread VMs across physically separate datacenters within a region, each with independent power, cooling, and networking. Availability Zones offer a stronger SLA (99.99% for two or more VMs across zones) than Availability Sets (99.95%), because a Zone protects against an entire datacenter failure, not just a rack-level fault.

🏏

Cricket analogy: Spreading VMs across Availability Zones is like a team keeping both openers in different hotels during a tour so a single kitchen's food poisoning outbreak doesn't rule out the whole top order for the Test match.

bash
# Create a resource group and a general-purpose VM in an Availability Zone
az group create --name rg-webapp --location eastus

az vm create \
  --resource-group rg-webapp \
  --name vm-web01 \
  --image Ubuntu2204 \
  --size Standard_D2s_v5 \
  --zone 1 \
  --admin-username azureuser \
  --generate-ssh-keys

# Open port 443 for HTTPS traffic (avoid opening 22/3389 broadly)
az vm open-port --resource-group rg-webapp --name vm-web01 --port 443 --priority 900

Azure Managed Disks abstract away storage account management for VM disks — Azure handles placement, redundancy (LRS/ZRS), and scaling automatically. Prefer Premium SSD v2 or Ultra Disk for latency-sensitive database workloads, and Standard HDD only for infrequently accessed data like backups.

Never expose RDP (3389) or SSH (22) directly to the internet (0.0.0.0/0) in a Network Security Group rule. Use Azure Bastion, a VPN gateway, or just-in-time (JIT) VM access in Microsoft Defender for Cloud to restrict management ports to trusted sources only.

Deployment and Automation

Production VM deployments are rarely clicked together manually. Instead, teams use Azure Resource Manager (ARM) templates, Bicep, or Terraform to declare VM configuration as code, and the Custom Script Extension or cloud-init to bootstrap software installation at first boot. Combined with a VM Scale Set or an Azure Image Builder pipeline that bakes a golden image, this lets you reproduce an identical VM fleet on demand, roll out patched images by simply redeploying, and keep configuration drift out of production.

🏏

Cricket analogy: Using Bicep to declare a VM is like a curator preparing a pitch report with an exact recipe — grass length, moisture, roller passes — so any groundstaff crew can reproduce the same identical Chepauk pitch for the next match.

  • Azure VMs are IaaS: you manage the OS, patches, and installed software yourself.
  • VM series (B, D, E, F, N) map to workload shape: burstable, general-purpose, memory-optimized, compute-optimized, and GPU-accelerated respectively.
  • Pay-As-You-Go, Reserved Instances, and Spot VMs trade cost against commitment and eviction risk.
  • Availability Zones (99.99% SLA) protect against datacenter-level failure; Availability Sets (99.95% SLA) protect against rack-level failure.
  • Managed Disks remove storage account management overhead and support redundancy options like LRS and ZRS.
  • Never expose management ports like RDP/SSH directly to the internet — use Bastion or JIT access instead.
  • Infrastructure as code (Bicep/Terraform) plus cloud-init/Custom Script Extension makes VM deployment reproducible.

Practice what you learned

Was this page helpful?

Topics covered

#Azure#AzureFundamentalsStudyNotes#CloudComputing#AzureVirtualMachines#Virtual#Machines#Machine#Sizes#StudyNotes#SkillVeris