1. How would you choose an Azure virtual-machine size and managed-disk type for a workload?
A team must place a new workload on Azure virtual machines but has not selected compute or storage. Explain what workload evidence you would gather before choosing a VM family and size, and how vCPU, memory, temporary local storage, accelerator needs, managed-disk type, capacity, IOPS, throughput, latency, zone support, and resize or restart effects constrain the design. Include how you would validate the choice under representative load and what signals would justify resizing without assuming a particular SKU.
At a high level, the goal is to match the Azure VM and managed disk to the workload. The main challenge is balancing performance, availability, and cost without guessing a specific SKU. I would break the choice into workload evidence, compute and storage sizing, and validation. I would check CPU, memory, temporary local storage, accelerators, I/O needs, and zone support. Then I would load test the design and resize when real measurements show sustained pressure. The trade-off is paying for enough headroom without over-sizing.
The goal is to choose enough compute and storage for the workload without buying more capacity than needed. The difficult part is that CPU, memory, storage speed, temporary space, and location requirements can limit each other. I would therefore make the decision in stages. First, I would understand how the workload behaves. Next, I would match those needs to a VM family and managed disk. Finally, I would test the choice with realistic work and keep watching it after release.
- What type of workload will run on the VM?
- What CPU, memory, and storage usage do we expect?
- Is the workload sensitive to storage delay or high I/O demand?
- Does it need a GPU, FPGA, or another accelerator?
- Which availability zones or redundancy design must it support?
- What growth, cost, licensing, and maintenance limits should I consider?
I would start by understanding the workload before choosing a VM. I would check whether it is a web service, API, batch job, database, cache, analytics task, or machine-learning workload.
Then I would measure CPU demand, memory use, data size, read and write patterns, and concurrency. I would also check latency targets, IOPS, and storage throughput. IOPS means how many storage operations happen each second. Throughput means how much data storage can move over time.
I would also check network needs, temporary-data needs, accelerator requirements, availability zones, expected growth, licensing, and budget. These facts narrow the VM families that can realistically support the workload.
Next, I would match the workload to a suitable VM family. The important inputs are vCPU, memory, networking, temporary local storage, and accelerator support.
A general-purpose family can fit balanced workloads. Compute-optimized, memory-optimized, storage-optimized, or accelerator-capable families fit workloads where one resource matters more. I would then choose a size with enough capacity and reasonable headroom.
Temporary local storage is useful for scratch data or caches. It is not persistent storage. Its data can disappear during events such as deallocation, redeployment, or reimage.
I would also check per-VM limits and subscription quotas. I would not assume one SKU because the correct size depends on measured demand and available capacity.
For persistent data, I would choose a managed disk based on capacity, IOPS, throughput, latency, and support in the required zone or redundancy design.
Standard HDD fits lower-cost, lower-performance needs. Standard SSD is a cost-effective choice for general workloads. Premium SSD and Premium SSD v2 suit more performance-sensitive workloads. Ultra Disk fits very high IOPS, high throughput, and low-latency needs when its support constraints fit the design.
Capacity must allow for the operating system, application data, and expected growth. I would also confirm that the VM size can support the disk performance the workload needs.
Before production, I would run a load test with realistic data, concurrency, and burst patterns. I would watch CPU, memory, disk IOPS, throughput, latency, network use, and available headroom.
I would also confirm that the selected VM size, disk type, and required zone support work together. If the targets are not met, I would revise the VM size, disk choice, or both and test again.
After release, I would keep measuring the same signals. Sustained CPU or run-queue pressure can justify more compute. Memory pressure, paging, high disk queue depth, IOPS or throughput near limits, high latency, throttling, temporary-storage pressure, or unexpected growth can also justify a change.
A VM resize can restart the VM. If the target size is unavailable on the current cluster, deallocation may be required. Managed-disk capacity can be increased, but shrinking is not supported. Disk-type changes have disk-specific restrictions and may require maintenance. I would therefore plan resizing as an operational change, not assume it is always interruption-free.
The benefit is that this approach uses workload evidence instead of guessing a VM SKU. It helps balance performance, availability, and cost while leaving some headroom for growth. The downside is that the first choice may still need changes after testing. A larger VM or faster disk can improve performance, but it usually costs more. Temporary local storage can be fast, but its data is not persistent. VM resizing can restart the VM, and some changes may require deallocation. Disk capacity can grow, but it cannot be shrunk. Zone support, VM limits, and subscription quotas can also remove otherwise suitable choices.
The interviewer wants to see whether you can make a cloud sizing decision from evidence instead of memorizing Azure SKUs. They are testing whether you understand compute, memory, storage performance, temporary storage, accelerators, availability, and cost. They also want to see whether you validate assumptions with representative load and use production measurements to decide when resizing is actually needed.









