Comparison of Azure Compute services

The following table from the Azure Architecture Guide compares Azure compute services across several axes. Refer to the linked article for additional notes & updates.

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  Multiple containers per VM One role instance per VM Multiple apps per VM
Minimum number of nodes 1 No dedicated nodes  3 2
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  Supported Not supported Supported Supported Supported
Hybrid connectivity Supported Supported  Supported Not supported Supported Supported Supported
Local debugging Agnostic IIS Express, others  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  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
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  100 No defined limit, 200 maximum recommended 20 core limit by default. Contact customer service for increase.
SLA 99.95% for or all Virtual Machines that have two or more instances deployed in the same Availability Set
99.9% for any Single Instance Virtual Machine using premium storage for all Operating System Disks and Data Disks 
99.95% 
No SLA is provided for Apps under either Free or Shared tiers
Service Fabric is a free service, therefore, it does'nt have a financially backed SLA*

99.95% no financially backed SLA*   99.95%* 99.9%
Multi region failover Traffic manager Traffic manager Traffic manager, Multi-Region Cluster Not supported Traffic manager Traffic manager Not Supported
SSL Configured in VM Supported Supported Supported Configured in VM Supported Supported
RBAC Supported Supported Supported Supported Supported Not supported Supported
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

Comments