Azure Virtual Machines provide IaaS compute that is ideal for lift-and-shift migrations of legacy applications that require full control over the operating system and middleware. To improve availability, virtual machines can be grouped into Availability Sets that spread instances across separate update and fault domains, or deployed using VM Scale Sets, which manage groups of identical, load-balanced VMs that automatically scale out or in based on demand or a schedule. Customers can also use Azure Dedicated Hosts to place VMs on physical servers reserved for a single tenant, which supports compliance requirements and license benefits such as Azure Hybrid Benefit for Windows Server and SQL Server. For very cost-sensitive workloads, Azure Spot VMs offer deep discounts on spare capacity but can be evicted with as little as thirty seconds' notice, making them suitable only for fault-tolerant batch or test jobs.
Container-based compute on Azure includes Azure Kubernetes Service (AKS), which delivers managed Kubernetes clusters for orchestrating containerized applications at scale, and Azure Container Instances (ACI), a serverless container runtime that provisions compute on demand without requiring VMs or an orchestrator. Azure Container Registry (ACR) stores and manages container images privately, integrating with AKS, ACI, and App Service, and supports geo-replication and image scanning through Microsoft Defender. For analytics and high-performance workloads, Azure Batch runs large-scale parallel and batch jobs across a managed pool of virtual machines.
Serverless compute on Azure is represented by Azure Functions, an event-driven service that runs code in response to triggers such as HTTP requests, queue messages, or timers without managing servers. Functions supports multiple languages including C#, JavaScript, Python, Java, and PowerShell, and bills only for execution time measured in gigabyte-seconds. The Consumption plan is fully serverless with cold starts, while the Premium plan eliminates cold starts, offers virtual network integration, and provides predictable performance. Durable Functions extend the platform with stateful, long-running orchestrations that survive restarts. Azure App Service complements these options as a managed platform-as-a-service for building and scaling web apps, REST APIs, and mobile backends.