Image by Thought Catalog

Post Details

  • ALIF Consulting

How to Choose an Azure compute service –

Updated: 5 days ago



About Alif : Alif empowers Microsoft MSP-CSP partners to provide exceptional IT services to their clients to ensure that the partners reduce their costs and focus on their business. We provide white-labelled managed services for technologies like Microsoft Azure, Microsoft 365, Microsoft Dynamics 365, Microsoft Security, SharePoint, Power Platform, SQL, Azure DevOps and a lot more. Our headquarter is in Pune, India whereas we work with over 50 partners across the globe that trust us with their client delivery.


Azure offers a number of ways to host your application code. The term compute refers to the hosting model for the computing resources that your application runs on. The following flowchart will help you to choose a compute service for your application.

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

The word compute here refers to the hosting model for the computing resources on which our application runs. Azure compute service can be divided broadly into three categories.

  • Infrastructure as a service

  • Platform as a service

  • Serveless services

The most fundamental building block is the Azure virtual machine. Using Azure virtual machine, we can able to deploy different services such as Windows, Linux within the Azure cloud. When we implement a virtual machine, every virtual machine will have an associated OS and data disk.

Azure Compute Options

  • 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.

  • Service Fabric: It is a platform that can run on any environment, including Azure or on-premises. It is an orchestrator of micro-services across a cluster of machine

  • Azure Kubernetes Services: It manages a hosted Kubernetes service for running containerized applications.

  • Azure Container Instances: It offers the fastest and most straightforward way to run a container in Azure without having to provision any virtual machines and without having to adopt a high-level service.

  • Azure Functions: It is a managed FaaS service.

  • Azure Batch: It is a managed service for running large-scale parallel and high-performance computing (HPC) applications.

  • Cloud Services: It is a managed service for running cloud applications. It uses a PaaS hosting model.


Choose an Azure compute service


Definitions:

· "Lift and shift" is a strategy for migrating a workload to the cloud without redesigning the application or making code changes. Also called rehosting.

· Cloud optimized is 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 a starting point for consideration. Next, perform a more detailed evaluation of the service to see if it meets your needs.

This article includes several tables which may help you to make these tradeoff decisions. Based on this analysis, you may find that the initial candidate isn't suitable for your particular application or workload. In that case, expand your analysis to include other compute services.

Understand the basic features

If you're not familiar with the Azure service selected in the previous step, read the overview documentation to understand the basics of the service.

  • App Service. A managed service for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes.

  • Azure Spring Cloud. A managed service designed and optimized for hosting Spring Boot apps.

  • Azure Kubernetes Service (AKS). A managed Kubernetes service for running containerized applications.

  • Batch. A managed service for running large-scale parallel and high-performance computing (HPC) applications

  • Container Instances. The fastest and simplest way to run a container in Azure, without having to provision any virtual machines and without having to adopt a higher-level service.

  • Functions. A managed FaaS service.

  • Service Fabric. A distributed systems platform that can run in many environments, including Azure or on premises.

  • Virtual machines. Deploy and manage VMs inside an Azure virtual network.


Understand the hosting models

Cloud services, including Azure services, generally fall into three categories: IaaS, PaaS, or FaaS. (There is also SaaS, software-as-a-service, which is out of scope for this article.) It's useful to understand the differences.

Infrastructure-as-a-Service (IaaS) lets you provision individual VMs along with the associated networking and storage components. Then you deploy whatever software and applications you want onto those VMs. This model is the closest to a traditional on-premises environment, except that Microsoft manages the infrastructure. You still manage the individual 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 is a PaaS service.

Functions-as-a-Service (FaaS) goes even further in removing the need to worry about the hosting environment. In a FaaS model, you simply deploy your code and the service automatically runs it. Azure Functions is a FaaS service.


Scalability

Criteria

Virtual Machines

App Service

Azure Spring Cloud

Service Fabric

Azure Functions

Azure Kubernetes Service

Container Instances

Azure Batch

Autoscaling

​Virtual machine scale sets

​Built-in service

​Built-in service

​Virtual machine scale sets

​Built-in service

​Pod auto-scaling1, cluster auto-scaling2

​Not supported

​N/A

​Load balancer

​Azure Load Balancer

​Integrated

​Integrated

​Azure Load Balancer

​Integrated

​Azure Load Balancer or Application Gateway

​No built-in support

​Azure Load Balancer

​Platform image: 1000 nodes per scale set, Custom image: 600 nodes per scale set

​30 instances, 100 with App Service Environment

​500 app instances in Standard

​100 nodes per scale set

​200 instances per Function app

​100 nodes per cluster (default limit)

​20 container groups per subscription (default limit).

​20 core limit (default limit).

Availability



Criteria

Virtual Machines

App Service

Azure Spring Cloud

Service Fabric

Azure Functions

Azure Kubernetes Service

Container Instances

Azure Batch

​SLA

Multi region failover

​Traffic manager

​Traffic manager

​Traffic manager, Multi-Region Cluster

​Traffic manager

​Not supported

​Not Supported

Other criteria



Criteria

Virtual Machines

App Service

App Spring Cloud

Service Fabric

Azure Functions

Azure Kubernetes Service

Container Instances

Azure Batch

​SSL

​Configured in VM

​Supported

​Supported

Supported

​Supported

​Supported

​Cost

​Windows, Linux

​Suitable architecture styles

​N-Tier, Big compute (HPC)

​Web-Queue-Worker, N-Tier

Microservices, Event-driven architecture

Microservices, Event-driven architecture

Microservices, Event-driven architecture





6 views0 comments

Recent Posts

See All