App Service and App Service Plans
App Service is a fully managed platform for hosting web applications, REST APIs, and mobile backends. You deploy your code in .NET, Java, Python, Node.js, PHP, or Ruby, or deploy a container image. Azure handles the underlying infrastructure. App Service scales vertically (bigger instances) or horizontally (more instances) based on rules you define, without changing your application.
App Service Plans define the compute resources (VM size and instance count) shared by the apps hosted on them. The pricing tier determines what capabilities are available. Free and Shared tiers are for development only, with no custom domains, no SLA, and shared infrastructure. Basic adds custom domains and SSL but no auto-scaling. Standard adds auto-scaling, deployment slots (up to 5), and daily backups. Premium adds more slots, more scale-out instances, and private endpoint support. Isolated (App Service Environment) runs in a dedicated virtual network with full network isolation, for regulatory or high-security requirements.
Deployment slots are live environments within the same App Service. Standard tier gives you up to 5 slots. You deploy to a staging slot, test the new version, then perform a swap. Swapping exchanges the staging and production slots instantly: no downtime, no DNS change, and the previous production version is now in the staging slot ready for immediate rollback. Auto-swap can be configured to automatically swap to production when a successful deployment completes in staging.
Azure Container Instances and AKS
Azure Container Instances (ACI) is the simplest way to run containers in Azure. You define a container image, CPU and memory requirements, and ACI starts it in seconds with no cluster to provision or manage. ACI is billed per second of compute used. It is ideal for short-lived tasks, batch jobs, event-driven workloads, and any scenario where you need a container started quickly without ongoing infrastructure management. ACI does not provide orchestration: there is no automatic scaling, health checks, or service discovery built in.
Azure Kubernetes Service (AKS) is a managed Kubernetes cluster. Azure manages the control plane (the Kubernetes API server and control components) for free. You pay for the agent nodes (the VMs running your workloads). AKS is appropriate for complex containerized applications with multiple services, when you need sophisticated networking between services, automatic scaling of pods and nodes, rolling deployments, and the full ecosystem of Kubernetes tooling. AKS integrates with Azure Container Registry for storing images, Azure Monitor for logs and metrics, and Entra ID for authentication.
The choice between App Service, ACI, and AKS comes down to complexity and control. App Service is fastest for deploying web apps without container knowledge. ACI is fastest for running isolated containers without managing infrastructure. AKS is appropriate when you need full Kubernetes capabilities, multi-container applications, or when your team already operates Kubernetes workloads.
How to choose the correct answer
App Service: PaaS for web apps, APIs, and mobile backends. No infrastructure management. Code or container deployment.
App Service Plan tiers: Free/Shared (dev only), Basic (custom domain), Standard (auto-scale, slots), Premium (private endpoint), Isolated (VNet dedicated).
Deployment slots: swap staging and production with no downtime. Rollback by swapping back. Standard tier minimum.
ACI: single container, fast startup, serverless billing, no orchestration. For short-lived or event-driven containers.
AKS: managed Kubernetes, multi-container, full orchestration, node auto-scaling. For complex containerized workloads.
Azure Container Registry (ACR): private Docker registry in Azure, integrates with ACI and AKS.
WebJobs: background tasks within an App Service app. Continuous or triggered. No separate compute needed.