azure-compute
npx machina-cli add skill microsoft/GitHub-Copilot-for-Azure/azure-compute --openclawAzure Compute Skill
Recommend Azure VM sizes, VM Scale Sets (VMSS), and configurations by analyzing workload type, performance requirements, scaling needs, and budget. No Azure subscription required — all 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 needs VM size recommendations for web, database, ML, batch, HPC, or other workloads
- User wants to compare VM families, sizes, or pricing tiers
- User asks about trade-offs between VM options (cost vs performance)
- User needs a cost estimate for Azure VMs without an Azure account
- User asks whether to use a single VM or a scale set
- User needs autoscaling, high availability, or load-balanced VM recommendations
- User asks about VMSS orchestration modes (Flexible vs Uniform)
Workflow
Use reference files for initial filtering
CRITICAL: then always verify with live documentation from learn.microsoft.com before making final recommendations. If
web_fetchfails, use reference files as fallback but warn the user the information may be stale.
Step 1: Gather Requirements
Ask the user for (infer when possible):
| Requirement | Examples |
|---|---|
| Workload type | Web server, relational DB, ML training, batch processing, dev/test |
| vCPU / RAM needs | "4 cores, 16 GB RAM" 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 instance, fixed count, or variable/dynamic |
| Scaling needs | None, manual scaling, autoscale based on metrics or schedule |
| Availability needs | Best-effort, fault-domain isolation, cross-zone HA |
| Load balancing | Not needed, Azure Load Balancer (L4), Application Gateway (L7) |
Step 2: Determine VM vs VMSS
Workflow:
- Review VMSS Guide to understand when VMSS vs single VM is appropriate
- Use the gathered requirements to decide which approach fits best
- REQUIRED: If recommending VMSS, fetch current documentation to verify capabilities:
web_fetch https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview web_fetch https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-autoscale-overview - If
web_fetchfails, proceed with reference file guidance but include this warning:Unable to verify against latest Azure documentation. Recommendation based on reference material that may not reflect recent updates.
Needs autoscaling?
├─ Yes → VMSS
├─ No
│ ├─ Multiple identical instances needed?
│ │ ├─ Yes → VMSS
│ │ └─ No
│ │ ├─ High availability across fault domains / zones?
│ │ │ ├─ Yes, many instances → VMSS
│ │ │ └─ Yes, 1-2 instances → VM + Availability Zone
│ │ └─ Single instance sufficient? → VM
| Signal | Recommendation | Why |
|---|---|---|
| Autoscale on CPU, memory, or schedule | VMSS | Built-in autoscale; no custom automation needed |
| Stateless web/API tier behind a load balancer | VMSS | Homogeneous fleet with automatic distribution |
| Batch / parallel processing across many nodes | VMSS | Scale out on demand, scale to zero when idle |
| Mixed VM sizes in one group | VMSS (Flexible) | Flexible orchestration supports mixed SKUs |
| Single long-lived server (jumpbox, AD DC) | VM | No scaling benefit; simpler management |
| Unique per-instance config required | VM | Scale sets assume homogeneous configuration |
| Stateful workload, tightly-coupled cluster | VM (or VMSS case-by-case) | Evaluate carefully; VMSS Flexible can work for some stateful patterns |
Warning: If the user is unsure, default to single VM for simplicity. Recommend VMSS only when scaling, HA, or fleet management is clearly needed.
Step 3: Select VM Family
Workflow:
-
Review VM Family Guide to identify 2-3 candidate VM families that match the workload requirements
-
REQUIRED: verify specifications for your chosen candidates by fetching current documentation:
web_fetch https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/<family-category>/<series-name>Examples:
- B-series:
https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/b-family - D-series:
https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/ddsv5-series - GPU:
https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/gpu-accelerated/nc-family
- B-series:
-
If considering Spot VMs, also fetch:
web_fetch https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/use-spot -
If
web_fetchfails, proceed with reference file guidance but include this warning:Unable to verify against latest Azure documentation. Recommendation based on reference material that may not reflect recent updates or limitations (e.g., Spot VM compatibility).
This step applies to both single VMs and VMSS since scale sets use the same VM SKUs.
Step 4: Look Up Pricing
Query the Azure Retail Prices API — Retail Prices API Guide
Tip: VMSS has no extra charge — pricing is per-VM instance. Use the same VM pricing from the API and multiply by the expected instance count to estimate VMSS cost. For autoscaling workloads, estimate cost at both the minimum and maximum instance count.
Step 5: Present Recommendations
Provide 2–3 options with trade-offs:
| Column | Purpose |
|---|---|
| Hosting Model | VM or VMSS (with orchestration mode if VMSS) |
| VM Size | ARM SKU name (e.g., Standard_D4s_v5) |
| vCPUs / RAM | Core specs |
| Instance Count | 1 for VM; min–max range for VMSS with autoscale |
| Estimated $/hr | Per-instance pay-as-you-go from API |
| Why | Fit for the workload |
| Trade-off | What the user gives up |
Tip: Always explain why a family fits and what the user trades off (cost vs cores, burstable vs dedicated, single VM simplicity vs VMSS scalability, etc.).
For VMSS recommendations, also mention:
- Recommended orchestration mode (Flexible for most new workloads)
- Autoscale strategy (metric-based, schedule-based, or both)
- Load balancer type (Azure Load Balancer for L4, Application Gateway for L7/TLS)
Step 6: Offer Next Steps
- Compare reservation / savings plan pricing (query API with
priceType eq 'Reservation') - Suggest Azure Pricing Calculator for full estimates
- For VMSS: suggest reviewing autoscale best practices and VMSS networking
Error Handling
| Scenario | Action |
|---|---|
| API returns empty results | Broaden filters — check armRegionName, serviceName, armSkuName spelling |
| User unsure of workload type | Ask clarifying questions; default to General Purpose D-series |
| Region not specified | Use eastus as default; note prices vary by region |
| Unclear if VM or VMSS needed | Ask about scaling and instance count; default to single VM if unsure |
| User asks VMSS pricing directly | Use same VM pricing API — VMSS has no extra charge; multiply by instance count |
References
- VM Family Guide — Family-to-workload mapping and selection
- Retail Prices API Guide — Query patterns, filters, and examples
- VMSS Guide — When to use VMSS, orchestration modes, and autoscale patterns
Source
git clone https://github.com/microsoft/GitHub-Copilot-for-Azure/blob/main/plugin/skills/azure-compute/SKILL.mdView on GitHub Overview
Recommend Azure VM sizes, VMSS, and configurations based on workload, performance, and budget. It relies on public Microsoft documentation and the Azure Retail Prices API and requires no Azure account to estimate sizes and costs. It helps users choose the right VM or scale set, compare VM families, and estimate pricing for web, database, ML, batch, or HPC workloads.
How This Skill Works
Workflow: gather requirements (workload type, vCPU/RAM, GPU needs, storage, region, scaling, and availability). Then decide between a single VM and a VMSS based on guidance from the VMSS overview. It uses live documentation via web_fetch to verify capabilities and falls back to reference files if web_fetch fails, with a warning about potential staleness. All final recommendations should be validated against current docs.
When to Use It
- Choosing between a single VM and a VMSS to meet scaling and high-availability needs.
- Getting VM size recommendations for web servers, databases, ML workloads, batch processing, or HPC.
- Comparing VM families, sizes, or pricing tiers to find best fit.
- Creating a cost estimate for Azure VMs without an Azure account.
- Deciding on VMSS orchestration mode and autoscaling with load balancing.
Quick Start
- Step 1: Gather requirements (workload type, vCPU/RAM, GPU needs, storage, region, scaling, budget).
- Step 2: Decide between VM and VMSS using the VMSS guide and requirements.
- Step 3: Verify against live docs with web_fetch and deliver the final recommendation; note if data may be stale.
Best Practices
- Map workload requirements to vCPU/RAM, GPU, and storage needs before filtering candidates.
- Cross-check pricing with public docs and the Azure Retail Prices API.
- Factor region availability, availability zones, and fault-domain requirements into recommendations.
- Note GPU, storage IOPS, memory-optimized, or confidential computing needs and verify support.
- When recommending VMSS, verify up-to-date capabilities in live docs and refresh references as docs change.
Example Use Cases
- Recommend a web app VM size with autoscale in a VMSS for fluctuating traffic.
- Suggest a GPU-enabled VM family for ML inference with scale-out configuration.
- Propose a low-cost, burstable VM for a small relational database with occasional spikes.
- Plan a batch processing cluster using VMSS to handle batch workloads at scale.
- Recommend a memory-optimized VM for HPC workloads with cross-zone availability.