Choose an Azure compute service - Azure Architecture Center (2024)

Azure App Service

Azure Kubernetes Service (AKS)

Azure offers many ways to host your application code. The term compute refers to the hosting model for the resources that your application runs on. This article helps choose a compute service for your application.

Choose a candidate service

Use the following flowchart to select a candidate compute service.

Download a Visio file of this decision tree.

This diagram refers to two migration strategies:

  • Lift and shift: A strategy for migrating a workload to the cloud without redesigning the application or making code changes. It's also called rehosting. For more information, see Azure migration and modernization center.
  • Cloud optimized: A strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.

The output from this flowchart is your starting point. Next, evaluate the service to see if it meets your needs.

This article includes several tables that can help you choose a service. The initial candidate from the flowchart might be unsuitable for your application or workload. In that case, expand your analysis to include other compute services.

If your application consists of multiple workloads, evaluate each workload separately. A complete solution can incorporate two or more compute services.

Understand the basic features

If you're not familiar with the Azure service selected in the previous section, see this overview documentation:

  • Azure Virtual Machines: A service where you deploy and manage virtual machines (VMs) inside an Azure virtual network.
  • Azure App Service: A managed service for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes.
  • Azure Functions: A managed function as a service.
  • Azure Kubernetes Service (AKS): A managed Kubernetes service for running containerized applications.
  • Azure Container Apps: A managed service built on Kubernetes, which simplifies the deployment of containerized applications in a serverless environment.
  • Azure Container Instances: This service is a fast and simple way to run a container in Azure. You don't have to provision any VMs or adopt a higher-level service.
  • Azure Red Hat OpenShift: A fully managed OpenShift cluster for running containers in production with Kubernetes.
  • Azure Spring Apps: A managed service designed and optimized for hosting Spring Boot apps.
  • Azure Service Fabric: A distributed systems platform that can run in many environments, including Azure or on-premises.
  • Azure Batch: A managed service for running large-scale parallel and high-performance computing (HPC) applications.

Understand the hosting models

For hosting models, cloud services fall into three categories:

  • Infrastructure as a service (IaaS): Lets you provision VMs along with the associated networking and storage components. Then you can deploy whatever software and applications you want onto those VMs. This model is the closest to a traditional on-premises environment. Microsoft manages the infrastructure. You still manage the VMs.

  • Platform as a service (PaaS): Provides a managed hosting environment where you can deploy your application without needing to manage VMs or networking resources. Azure App Service and Azure Container Apps are PaaS services.

  • Functions as a service (FaaS): Lets you deploy your code to the service, which automatically runs it. Azure Functions is a FaaS service.

    Note

    Azure Functions is an Azure serverless compute offering. To see how this service compares with other Azure serverless offerings, such as Logic Apps, which provides serverless workflows, see Choose the right integration and automation services in Azure.

There's a spectrum from IaaS to pure PaaS. For example, Azure VMs can automatically scale by using virtual machine scale sets. This capability isn't strictly a PaaS, but it's the type of management feature found in PaaS.

There's a tradeoff between control and ease of management. IaaS gives the most control, flexibility, and portability, but you have to provision, configure, and manage the VMs and network components you create. FaaS services automatically manage nearly all aspects of running an application. PaaS falls somewhere in between.

ServiceApplication compositionDensityMinimum number of nodesState managementWeb hosting
Azure Virtual MachinesAgnosticAgnostic1 2Stateless or statefulAgnostic
Azure App ServiceApplications, containersMultiple apps per instance by using App Service plan1StatelessBuilt in
Azure FunctionsFunctions, containersServerless 1Serverless 1Stateless or stateful 6Not applicable
Azure Kubernetes ServiceContainersMultiple containers per node3 3Stateless or statefulAgnostic
Azure Container AppsContainersServerlessServerlessStateless or statefulAgnostic
Azure Container InstancesContainersNo dedicated instancesNo dedicated nodesStatelessAgnostic
Azure Red Hat OpenShiftContainersMultiple containers per node6 5Stateless or statefulAgnostic
Azure Spring AppsApplications, microservicesMultiple apps per service instance2StatelessBuilt in
Azure Service FabricServices, guest executables, containersMultiple services per VM5 3Stateless or statefulAgnostic
Azure BatchScheduled jobsMultiple apps per VM1 4StatelessNo

Notes

  1. If you're using a Consumption plan. For an 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 service-level agreement (SLA) with two or more instances.
  3. Recommended for production environments.
  4. Can scale down to zero after job completes.
  5. Three for primary nodes and three for worker nodes.
  6. When using Durable Functions.

Networking

ServiceVirtual network integrationHybrid connectivity
Azure Virtual MachinesSupportedSupported
Azure App ServiceSupported 1Supported 2
Azure FunctionsSupported 1Supported 3
Azure Kubernetes ServiceSupportedSupported
Azure Container AppsSupportedSupported
Azure Container InstancesSupportedSupported
Azure Red Hat OpenShiftSupportedSupported
Azure Spring AppsSupportedSupported
Azure Service FabricSupportedSupported
Azure BatchSupportedSupported

Notes

  1. Requires App Service Environment.
  2. Use Azure App Service Hybrid Connections.
  3. Requires App Service plan or Azure Functions Premium plan.

DevOps

ServiceLocal debuggingProgramming modelApplication update
Azure Virtual MachinesAgnosticAgnosticNo built-in support
Azure App ServiceIIS Express, others 1Web and API applications, WebJobs for background tasksDeployment slots
Azure FunctionsVisual Studio or Azure Functions CLIServerless, event-drivenDeployment slots
Azure Kubernetes ServiceMinikube, Docker, othersAgnosticRolling update
Azure Container AppsLocal container runtimeAgnosticRevision management
Azure Container InstancesLocal container runtimeAgnosticNot applicable
Azure Red Hat OpenShiftMinikube, Docker, othersAgnosticRolling update
Azure Spring AppsVisual Studio Code, Intellij, EclipseSpring Boot, SteeltoeRolling upgrade, blue-green deployment
Azure Service FabricLocal node clusterGuest executable, Service model, Actor model, ContainersRolling upgrade (per service)
Azure BatchNot supportedCommand-line applicationNot applicable

Notes

  1. Options include IIS Express for ASP.NET or node.js (iisnode), PHP web server, Azure Toolkit for IntelliJ, and Azure Toolkit for Eclipse. App Service also supports remote debugging of deployed web app.

Scalability

ServiceAutoscalingLoad balancerScale limit3
Azure Virtual MachinesVirtual machine scale setsAzure Load BalancerPlatform image: 1,000 nodes per scale set, Custom image: 600 nodes per scale set
Azure App ServiceBuilt-in serviceIntegrated30 instances, 100 with App Service Environment
Azure FunctionsBuilt-in serviceIntegrated200 instances per function app
Azure Kubernetes ServicePod autoscaling1, cluster autoscaling2Azure Load Balancer or Azure Application Gateway5,000 nodes when using Uptime SLA
Azure Container AppsScaling rules4Integrated5 environments per region, 20 container apps per environment, 30 replicas per container app
Azure Container InstancesNot supportedNo built-in support20 container groups per subscription (default limit)
Azure Red Hat OpenShiftPod autoscaling, cluster autoscalingAzure Load Balancer or Azure Application Gateway60 nodes per cluster (default limit)
Azure Spring AppsBuilt-in serviceIntegrated500 app instances in Standard
Azure Service FabricVirtual machine scale setsAzure Load Balancer100 nodes per virtual machine scale set
Azure BatchNot applicableAzure Load Balancer20 core limit (default limit)

Notes

  1. See Autoscale pods.
  2. See Automatically scale a cluster to meet application demands on Azure Kubernetes Service.
  3. See Azure subscription and service limits, quotas, and constraints.
  4. See Set scaling rules in Azure Container Apps.

Availability

ServiceSLAMultiregion failover
Azure Virtual MachinesSLA for Virtual MachinesAzure Traffic Manager, Azure Front Door, and cross-region Azure Load Balancer
Azure App ServiceSLA for App ServiceAzure Traffic Manager and Azure Front Door
Azure FunctionsSLA for FunctionsAzure Traffic Manager and Azure Front Door
Azure Kubernetes ServiceSLA for AKSAzure Traffic Manager, Azure Front Door, and Multiregion Cluster
Azure Container AppsSLA for Container AppsAzure Traffic Manager and Azure Front Door
Azure Container InstancesSLA for Container InstancesAzure Traffic Manager and Azure Front Door
Azure Red Hat OpenShiftSLA for Azure Red Hat OpenShiftAzure Traffic Manager and Azure Front Door
Azure Spring AppsSLA for Azure Spring AppsAzure Traffic Manager, Azure Front Door, and Multiregion Cluster
Azure Service FabricSLA for Service FabricAzure Traffic Manager, Azure Front Door, and cross-region Azure Load Balancer
Azure BatchSLA for BatchNot applicable

For guided learning on service guarantees, see Core Cloud Services - Azure architecture and service guarantees.

Security

Review and understand the available security controls and visibility for each service:

  • Azure Windows virtual machine
  • Azure Linux virtual machine
  • Azure App Service
  • Azure Functions
  • Azure Kubernetes Service
  • Azure Container Instances
  • Azure Spring Apps
  • Azure Service Fabric
  • Azure Batch

Other criteria

ServiceTLSCostSuitable architecture styles
Azure Virtual MachinesConfigured in VMWindows, LinuxN-tier, big compute (HPC)
Azure App ServiceSupportedApp Service pricingWeb-queue-worker
Azure FunctionsSupportedFunctions pricingMicroservices, event-driven architecture
Azure Kubernetes ServiceIngress controllerAKS pricingMicroservices, event-driven architecture
Azure Container AppsIngress controllerContainer Apps pricingMicroservices, event-driven architecture
Azure Container InstancesUse sidecar containerContainer Instances pricingMicroservices, task automation, batch jobs
Azure Red Hat OpenShiftSupportedAzure Red Hat OpenShift pricingMicroservices, event-driven architecture
Azure Spring AppsSupportedAzure Spring Apps pricingSpring Boot, microservices
Azure Service FabricSupportedService Fabric pricingMicroservices, event-driven architecture
Azure BatchSupportedBatch pricingBig compute (HPC)

Consider limits and cost

Along with the previous comparison tables, do a more detailed evaluation of the following aspects of the candidate service:

  • Service limits
  • Cost
  • SLA
  • Regional availability

Contributors

This article is maintained by Microsoft. It was originally written by the following contributors:

To see nonpublic LinkedIn profiles, sign in to LinkedIn.

Next steps

Core Cloud Services - Azure compute options. This Learn module explores how compute services can solve common business needs.

  • Choose an Azure compute option for microservices
  • Lift and shift to containers with Azure App Service
  • Technology choices for Azure solutions

Feedback

Was this page helpful?

Feedback

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see: https://aka.ms/ContentUserFeedback.

Submit and view feedback for

Choose an Azure compute service - Azure Architecture Center (2024)

FAQs

Which of the following is a compute service in Azure? ›

Following are the main compute options available in Azure: Virtual Machine: It is an IaaS service, allowing us to deploy and manage VMs inside a virtual network (VNet). App Service: It is a managed PaaS offering for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes.

Which compute solution should you recommend? ›

Expert-Verified Answer

Azure Functions should be recommended as a compute solution to minimize the cost.

Which of the following is not a type of Azure Compute Service? ›

The correct answer is a. Databases. Databases are not a type of Azure compute service. Azure compute...

What is Azure architecture and services? ›

The architecture of Microsoft Azure comprises data centers housing physical servers, virtualized hardware, and a complex network infrastructure, facilitating the deployment and operation of cloud-based applications and services.

Which of the following is a compute service select? ›

Here's the best way to solve it. The compute service among the given options is Amazon EC2.

Which of the following is a compute service? ›

Answer: AWS EC2 (AWS Elastic Compute Cloud) is a web service that provides you with a server with the required OS, processor, and memory (RAM). You can do everything under this operating system and made web-scale computing easier for developers from installing the software to hosting the website.

How many categories are there of Azure compute services? ›

There are three main types of cloud computing services, sometimes called the cloud computing stack because they build on top of one another. The first cloud computing type is infrastructure-as-a-service (IaaS), which is used for Internet-based access to storage and computing power.

Which Azure compute service can you use to deploy and manage a set of identical virtual machines? ›

In Azure, virtual machine scale sets let you deploy and manage identical sets of VMs. The number of sets can autoscale. App Service autoscale lets you autoscale Azure App Service applications.

Which are Azure serverless options? ›

Azure serverless compute
  • Serverless Containerized Microservices. Deploy containerized apps without managing complex infrastructure with Azure Container Apps. ...
  • Serverless Kubernetes. ...
  • Serverless Functions. ...
  • Serverless Application Environments.

Which of the following are Azure compute IaaS options? ›

Build infrastructure solutions with Azure IaaS services and products
  • Compute. Access cloud compute capacity, virtualisation and scale on demand—and only pay for the resources you use.
  • Storage. ...
  • Networking. ...
  • Security. ...
  • Management. ...
  • Azure Virtual Desktop. ...
  • Hybrid cloud solutions. ...
  • High-performance computing (HPC)

What is Azure computing Services? ›

The Azure cloud platform is more than 200 products and cloud services designed to help you bring new solutions to life—to solve today's challenges and create the future. Build, run, and manage applications across multiple clouds, on-premises, and at the edge, with the tools and frameworks of your choice.

What compute service does Azure Functions provide? ›

Functions provides serverless compute for Azure. You can use Functions to build web APIs, respond to database changes, process IoT streams, manage message queues, and more.

What are the 4 pillars of Azure architecture? ›

The five pillars of the Azure Well-Architected Framework are reliability, cost optimization, operational excellence, performance efficiency, and security. While each pillar is important, the pillars can be prioritized based on your specific workload.

What is Azure datacenter architecture? ›

Azure Data Architecture is a set of services and tools that allow us to gather and process the data with the use of cloud computing. It consists of components for data storing (data bases, data warehouses) and components that enable data processing (e.g. Virtual Machines).

What is the role of Azure architecture? ›

Azure architects lead cloud adoption, develop strategies, and implement cloud architectures, balancing strategic goals with practical feasibility. The Azure architect path involves education, technical skills acquisition, and hands-on experience, leading to certification. Soft skills and continual learning are crucial.

What is compute in Microsoft Azure? ›

Microsoft Azure Compute services provide the infrastructure, tools, and platforms needed to create, deploy, and manage cloud computing solutions. Compute services allow you to quickly and securely deploy workloads in the cloud and provide the scalability and reliability needed for applications and services.

What are the compute types in Azure machine learning? ›

Azure Machine Learning compute (managed) Azure Machine Learning creates and manages the managed compute resources. This type of compute is optimized for machine learning workloads. Azure Machine Learning compute clusters, serverless compute, and compute instances are the only managed computes.

What compute service does Azure functions provide? ›

Functions provides serverless compute for Azure. You can use Functions to build web APIs, respond to database changes, process IoT streams, manage message queues, and more.

Top Articles
Latest Posts
Article information

Author: Horacio Brakus JD

Last Updated:

Views: 6164

Rating: 4 / 5 (51 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Horacio Brakus JD

Birthday: 1999-08-21

Address: Apt. 524 43384 Minnie Prairie, South Edda, MA 62804

Phone: +5931039998219

Job: Sales Strategist

Hobby: Sculling, Kitesurfing, Orienteering, Painting, Computer programming, Creative writing, Scuba diving

Introduction: My name is Horacio Brakus JD, I am a lively, splendid, jolly, vivacious, vast, cheerful, agreeable person who loves writing and wants to share my knowledge and understanding with you.