Azure Compute Services offer following key workloads:
- App Service: A managed service for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes.
- 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.
It is also important to understand following hosting models:
- 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
Following chart show how best to pick candidate compute service for you:
You also need to look at aspects such as scalability, availability, security and how easily you can perform DevOps.
Ref: Microsoft Docs.