Computing means using CPU and Memory to get your application code running. You can use
- Virtual Machines
- App Services to run your code in a Hosted Environment (PaaS)
- Containers
- Serverless Computing
Virtual Machines
- You can choose Linux VM or Windows VM and specify things like how many drives you need, how many CPU cores, memory and more.
- Additionally there are VM images available which are preconfigured configuration bundles making it even faster to get everything set up.
- Then there is the concept of Scale Sets (based on the VM image you chose) which allow you to automatically scale your VMs up or down in case you need more or less processing power.
- You can take advantage of Availability Sets which is Azure’s way of managing the availability of your resources.
- Virtual Disks can be administrated using Managed Disks.
Azure App Services
This is all about providing a platform to run your web applications. You can choose a Web App Framework out of many supported languages including PHP, NodeJS, Java, ASP.net and more. You got flexible deployment option, such as Git repositories, Azure DevOps or even deployments via FTP. App Services are provided with scaling and availability in mind. For example, if one of the nodes on which your application is running is going down, Azure App Services takes care of transferring your code to another available node while the original node is “getting healed”. Slots help you to move from a development environment to a production environment.
Containers
Containers are a popular way to package and deploy your applications. Azure Kubernetes Service (AKS) orchestrates those container deployments including clustering and scaling. Azure Container Instances allows you to start up an instance of your container (instead of running it in a cluster) for example to use it as a Standalone container for a short amount of time or to connect it with AKS as a Virtual Node to help you scale out your containers. Azure Container Registry helps you to manage all your containers, for example catalogue them, make them available for AKS or Azure Container Instances.
Serverless Computing
Serverless Computing is a way to execute your code without having to manage particular instances of Virtual Machines or containers. Azure Functions allows you to write code in the form of a function and have it run on demand – usually triggered by some sort of external event, such as an HTTP request or message. Logic Apps is very similar, additionally it provides a workflow and orchestration of different integrations between systems. Event Grid represents a robust publish and subscribe model that you can use to respond to all kind of events such your own application events or virtual machines starting or stopping.
Overlapping solutions
Azure Container Instances can be used for AKS but also for Serverless Computing, when for example, an instance is created and used for a short time after an event was triggered. Service Fabric allows you to tie together a number of different services (Containers, executables, web apps) in a managed infrastructure. For parallel computing we you might want to take a look at the following two services: Azure Batch Service allows you to schedule jobs and tasks at scale. HDInsight is a set of tools within Azure that is built around the open source frameworks for Hadoop (big data computing).