Specify Components of a Compute Solution Based on Workload Requirements
Evaluate Azure Compute Offerings
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
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
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
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.
Serverless Computing with Azure Functions
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.
Compute Isolation
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.
Summary of Selection Criteria
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.