Criteria for choosing an Azure compute option

The term compute refers to the hosting model for the computing resources that your applications runs on. The following tables compare Azure compute services across several axes. Refer to these tables when selecting a compute option for your application.

Hosting model

Criteria Virtual Machines App Service Service Fabric Azure Functions Azure Container Service Cloud Services Azure Batch
Application composition Agnostic Applications Services, guest executables, containers Functions Containers Roles Scheduled jobs
Density Agnostic Multiple apps per instance via app plans Multiple services per VM No dedicated instances 1 Multiple containers per VM One role instance per VM Multiple apps per VM
Minimum number of nodes 1 2 1 5 3 No dedicated nodes 1 3 2 1 4
State management Stateless or Stateful Stateless Stateless or stateful Stateless Stateless or Stateful Stateless Stateless
Web hosting Agnostic Built in Agnostic Not applicable Agnostic Built-in (IIS) No
OS Windows, Linux Windows, Linux Windows, Linux Not applicable Windows (preview), Linux Windows Windows, Linux
Can be deployed to dedicated VNet? Supported Supported 5 Supported Not supported Supported Supported 6 Supported
Hybrid connectivity Supported Supported 7 Supported Not supported Supported Supported 8 Supported

Notes

  1. If using Consumption plan. If using App Service plan, functions run on the VMs allocated for your App Service plan. See Choose the correct service plan for Azure Functions.
  2. Higher SLA with two or more instances.
  3. For production environments.
  4. Can scale down to zero after job completes.
  5. Requires App Service Environment (ASE).
  6. Classic VNet only.
  7. Requires ASE or BizTalk Hybrid Connections
  8. Classic VNet, or Resource Manager VNet via VNet peering

DevOps

Criteria Virtual Machines App Service Service Fabric Azure Functions Azure Container Service Cloud Services Azure Batch
Local debugging Agnostic IIS Express, others 1 Local node cluster Azure Functions CLI Local container runtime Local emulator Not supported
Programming model Agnostic Web application, WebJobs for background tasks Guest executable, Service model, Actor model, Containers Functions with triggers Agnostic Web role, worker role Command line application
Resource Manager Supported Supported Supported Supported Supported Limited 2 Supported
Application update No built-in support Deployment slots Rolling upgrade (per service) No built-in support Depends on orchestrator. Most support rolling updates VIP swap or rolling update Not applicable

Notes

  1. Options include IIS Express for ASP.NET or node.js (iisnode); PHP web server; Azure Toolkit for IntelliJ, Azure Toolkit for Eclipse. App Service also supports remote debugging of deployed web app.
  2. See Resource Manager providers, regions, API versions and schemas.

Scalability

Criteria Virtual Machines App Service Service Fabric Azure Functions Azure Container Service Cloud Services Azure Batch
Auto-scaling VM scale sets Built-in service VM Scale Sets Built-in service Not supported Built-in service N/A
Load balancer Azure Load Balancer Integrated Azure Load Balancer Integrated Azure Load Balancer Integrated Azure Load Balancer
Scale limit Platform image: 1000 nodes per VMSS, Custom image: 100 nodes per VMSS 20 instances, 50 with App Service Environment 100 nodes per VMSS Infinite 1 100 No defined limit, 200 maximum recommended 20 core limit by default. Contact customer service for increase.

Notes

  1. If using Consumption plan. If using App Service plan, the App Service scale limits apply. See Choose the correct service plan for Azure Functions.

Availability

Criteria Virtual Machines App Service Service Fabric Azure Functions Azure Container Service Cloud Services Azure Batch
SLA SLA for Virtual Machines SLA for App Service SLA for Service Fabric SLA for Functions SLA for Azure Container Service SLA for Cloud Services SLA for Azure Batch
Multi region failover Traffic manager Traffic manager Traffic manager, Multi-Region Cluster Not supported Traffic manager Traffic manager Not Supported

Security

Criteria Virtual Machines App Service Service Fabric Azure Functions Azure Container Service Cloud Services Azure Batch
SSL Configured in VM Supported Supported Supported Configured in VM Supported Supported
RBAC Supported Supported Supported Supported Supported Not supported Supported

Other

Criteria Virtual Machines App Service Service Fabric Azure Functions Azure Container Service Cloud Services Azure Batch
Cost Windows, Linux App Service pricing Service Fabric pricing Azure Functions pricing Azure Container Service pricing Cloud Services pricing Azure Batch pricing
Suitable architecture styles N-Tier, Big compute (HPC) Web-Queue-Worker Microservices, Event driven architecture (EDA) Microservices, EDA Microservices, EDA Web-Queue-Worker Big Compute