Azure VM Recommender
Recommend Azure VM sizes, VM Scale Sets (VMSS), and configurations by analyzing workload type, performance requirements, scaling needs, and budget. No Azure subscription required — data comes from public Microsoft documentation and the unauthenticated Retail Prices API.
When to Use This Skill
- User asks which Azure VM or VMSS to choose for a workload
- User wants to compare VM families, sizes, or pricing tiers
- User asks about trade-offs (cost vs performance, single VM vs scale set, orchestration modes)
- User needs a cost estimate without an Azure subscription
- User asks "Needs autoscaling?" or wants to decide between a single VM and a scale set
Workflow
Use reference files for initial filtering. Then verify with live documentation via
web_fetchbefore final recommendations. Ifweb_fetchfails, fall back to the reference files and surface the staleness warning from web-fetch-policy.md.
Step 1: Gather Requirements
Ask the user (infer when possible):
| Requirement | Examples |
|---|---|
| Workload type | Web server, relational DB, ML training, batch, dev/test |
| vCPU / RAM needs | "4 cores, 16 GB" or "lightweight" / "heavy" |
| GPU needed? | Yes → GPU families; No → general / compute / memory |
| Storage needs | High IOPS, large temp disk, premium SSD |
| Budget priority | Cost-sensitive, performance-first, balanced |
| OS | Linux or Windows (affects pricing) |
| Region | Affects availability and price |
| Instance count | Single, fixed count, or variable |
| Scaling needs | None, manual, autoscale (metrics / schedule) |
| Availability needs | Best-effort, fault-domain, cross-zone HA |
| Load balancing | None, Azure Load Balancer (L4), Application Gateway (L7) |
Step 2: Determine VM vs VMSS
Review VMSS Guide. Decision shortcut — start by asking Needs autoscaling? then walk the table:
| Signal | Pick |
|---|---|
| Autoscale on CPU, memory, or schedule | VMSS |
| Stateless web/API tier behind a load balancer | VMSS |
| Batch / parallel processing across many nodes | VMSS |
| Mixed VM sizes in one group | VMSS (Flexible) |
| Single long-lived server (jumpbox, AD DC) | VM |
| Unique per-instance config | VM |
| Stateful, tightly-coupled cluster | VM (or VMSS case-by-case) |
If recommending VMSS, verify with web_fetch per web-fetch-policy.md. When in doubt, default to a single VM.
Step 3: Select VM Family
Review VM Family Guide and pick 2–3 candidate families. Verify each candidate's specs with web_fetch against: