Choosing Azure compute platforms for container-based applications
As you have noticed after reading the previous sections, Azure is an open cloud that offers multiple choices. You can use the best fit for your needs, however, it also surfaces questions about what product/technology you should use for your containerized applications.
As a by-default recommendation, the following is the main criteria recommended in this guidance:
- Single monolithic app: Choose Azure App Service
- N-Tier app: Choose orchestrators such as Azure Kubernetes Service (AKS) or App Service if you have a single or a few back-end services
- Microservices: Choose AKS or Azure Web Apps for Containers
- Serverless functions & event handlers: Choose Azure Functions
- Large-scale Batch: Choose Azure Batch
However, this recommendation should be taken with a pinch of salt, as the product's selection will depend on your specific application's needs and characteristics. Not all applications are the same even when initially they might look similar types.
After a deeper analysis of the application's needs, the product selected could be different. But, as a starting point, it is good to have initial guidance from where you can start evaluating and testing based on certain priority.
In the following table, you can see a breakdown of different kinds of apps and their possible and recommended Azure hosting scenarios.
|Application Architecture||VMs - Azure Virtual Machines||ACI - Azure Container Instances||Azure App Service (w-w/o containers)||AKS - Azure Kubernetes Services||Azure Functions||Azure Batch|
|Web apps (Monolithic)|
|N-Tier apps (Services)|
|Batch/Jobs (Background tasks)||