When you need to design compute solutions on Azure, it's essential to evaluate compute service options based on your workload requirements. This involves comparing various offerings and understanding which services align with your performance, scalability, and cost objectives.
Azure Virtual Machines (VMs) offer flexibility with different VM families and sizes. These VMs can handle varying workloads ranging from general purpose to specialized high-performance tasks. Key VM categories include general purpose VMs (suitable for balanced CPU-to-memory ratio, like the Dv2-Dsv2 series), compute optimized VMs (focus on high CPU-to-memory ratio for intensive applications, such as the FSv2 series), and GPU VMs (ideal for tasks that require enhanced graphic processing, including NC, NCv2, NCv3 series). Choose virtual machines when you need the most control over the operating system and fit applications that require specific configuration or must run continuously.
VM Scale Sets allow automatic scaling of VMs based on your application demands. They ensure high availability and increase efficiency by distributing workloads across multiple VMs. This feature is valuable for applications requiring rapid scaling during peak times. The scaling policy watches a signal such as average CPU: when demand rises above the threshold it adds servers to the pool, and when demand falls it removes them. Each VM also moves through a predictable lifecycle: it begins in a provisioning state while being created, enters a running state once it passes its health check and joins the pool, and ends in a terminating state when a scale-in event or failure removes it.
Azure Container Instances (ACI) are perfect for quickly deploying containers without managing VMs or orchestrators. ACI provides a lightweight solution for simple tasks and microservices, offering rapid provisioning and efficient scaling down. Choose containers when you want to package the application with its dependencies and need consistent deployments and faster scaling without managing full servers.
Azure Functions represents a serverless compute option where infrastructure management is handled by Azure, enabling you to focus solely on the code. Benefits include cost efficiency (pay only for execution time, making it suitable for intermittent workloads) and automatic scalability to handle real-time fluctuations in traffic. Choose serverless functions when you have short, occasional tasks that run only in response to an event, because nothing keeps running between requests.
For workloads requiring high isolation due to compliance or regulatory needs, Azure offers isolated VM sizes. These VMs ensure your workloads run on dedicated hardware, away from other tenants' workloads. Choose isolated sizes when your workload has strict compliance requirements that demand physical separation from other customers' resources.
Choosing how to run the application depends on how much control the team needs versus how much operational work they want to avoid. Virtual machines give the most control but require managing the operating system. Containers package the application with its dependencies for consistent deployments. Serverless functions run only in response to an event and fit short, occasional tasks. The right choice maps your workload patterns to performance SLAs, scalability demands, and budget constraints.
A decision tree branching on workload control, event-driven needs, and compliance to choose between Azure Virtual Machines, VM Scale Sets, Azure Container Instances, Azure Functions, and Isolated VMs.
Venture into the world of Azure Infrastructure, where design meets functionality. Harness your skills and gain mastery over complex cloud structures to ace the AZ-305 Designing Microsoft Azure Infrastructure Solutions exam!
Prepare and test your skills

Prepare and test your skills

Choose Azure Virtual Machines when you need the most control over the operating system, require specific software configurations, or run applications that must operate continuously. They provide various VM families and sizes, such as general purpose, compute optimized, and GPU series, to handle diverse workload requirements.
A virtual machine in a scale set begins in a provisioning state while it is being created, transitions to a running state once it passes its health check and joins the pool, and moves to a terminating state when removed by a scale-in event or failure. Scale sets trigger these changes automatically by watching signals like average CPU to scale out or scale in as demand shifts.
Azure Container Instances (ACI) are best when you need to package an application with its dependencies for consistent deployments and fast scaling without managing full servers or orchestrators. In contrast, Azure Functions are ideal for short, occasional tasks that run solely in response to events where no infrastructure needs to run between requests.
Isolated virtual machine sizes ensure that your workloads run on dedicated hardware physically separated from other customers' resources. They are designed specifically for workloads with strict compliance and regulatory demands that require dedicated physical infrastructure.