Azure provides four different computing options or techniques.
1. Virtual machines
2. Containers
3. App services
4. Serverless computing
Azure availability sets are logical groups of two or more Virtual Machines across different fault domains (different data center server racks)
Azure availability sets ensure that your applications, installed on the virtual machines within an availability set, are available during planned as well as unplanned maintenance.
Azure virtual machine scale sets allow you to centrally create, configure, and manage a large number of identical, load balanced virtual machines.
Azure Batch is a job scheduling platform that automatically scales up a pool of tens to thousands of VMs, in order to execute scheduled jobs. The pool is scaled down once the job executions are complete.
There are two ways to manage containers in Azure.
1. Azure Container Instances (ACI) - A PaaS component that allows you to upload docker containers to VMs, execute them, and scale automatically
2. Azure Kubernetes Services (AKS) - An orchestration service that automates and manages a large number of containers.
Azure App Service is a HTTP-based PaaS component that allows you to build, host, and execute different kinds of applications like web applications and RESTful APIs, that are developed in various programming languages such as .Net, Java, Ruby, Node.js, PHP, and Python.
Azure App Service is a managed service - i.e Azure manages the infrastructure including security, load balancing, autoscaling, OS patches, etc. so that you can focus on building your application. You will be charged based on the compute resources used by the App Service.
Azure provides two kinds of serverless compute implementations.
1. Azure Functions
2. Azure Logic Apps