Application Hosting Options in Azure: Web Apps, Containers, and Virtual Machines
Slide deck comparing Azure application hosting options: Azure App Service (PaaS), Containers (ACI/AKS), and Virtual Machines (IaaS), covering control levels, shared responsibility model, and workload fit guidance.

Application Hosting Options in Azure: Web Apps, Containers, and Virtual Machines
Introduction to Azure application hosting options: Azure App Service, Containers, and Virtual Machines.
Application Hosting Options in Azure: Web Apps, Containers, and Virtual Machines
Introduction to Azure application hosting options: Azure App Service, Containers, and Virtual Machines.
Hosting = responsibility boundary
Your hosting choice decides who manages infrastructure and OS work. More control → more management effort. Less management → less OS-level control. Choose based on your app's needs.
Three common hosting options
These options mainly differ by control level and management responsibility. Azure App Service (managed web hosting). Containers (portable app plus dependencies). Azure Virtual Machines (VM) (full OS control).
Azure App Service (Platform as a Service (PaaS))
App Service hosts HTTP-based apps while Azure manages more of the platform. Hosts Hypertext Transfer Protocol (HTTP)-based apps. Commonly used for web Application Programming Interfaces (APIs). Azure manages more platform components. You focus on code, config, deployment.
Containers: portable app + dependencies
Containers make the runtime consistent across environments. Package app plus dependencies into an image. Runs consistently across environments. Shares the host Operating System (OS) kernel. Lighter than a full guest OS per workload.
Containers in Azure: ACI vs AKS
Containers don't automatically mean Kubernetes. Azure Container Instances (ACI): simple container runs. Azure Kubernetes Service (AKS): orchestration for many services. Orchestration adds power and complexity.
Virtual Machines (Infrastructure as a Service (IaaS))
VMs give maximum OS control, and you manage more. You choose and manage the guest Operating System (OS). Azure manages physical hardware. You manage patching, software, configuration. Best for legacy apps and deep customization.
Shared Responsibility Model (SRM)
Azure can manage platform parts, but you still own key security choices. You still own app security decisions. You own identity and access choices. You own secrets and configuration. You own data protection and safe coding.
Fit: App Service for fast web + API
Choose App Service when you want speed and no OS/server management. Straightforward HTTP website plus Representational State Transfer (REST) API. Quick deployment focus. No OS patching / server maintenance. Security and configuration still matter (SRM).
Fit: containers for portability
Containers make 'runs the same everywhere' much easier. Same runtime across dev/test/prod. Ship app plus dependencies together. Portable container image. Not a full OS like a VM (shares host OS kernel).
Fit: ACI for simple container runs
Use Azure Container Instances (ACI) when you don't need orchestration. Single container or small service. Avoid cluster operations overhead. Azure Container Instances (ACI) runs containers directly. Azure Kubernetes Service (AKS) is optional, not required.
Fit: VMs for OS-level requirements
Choose VMs when you must control the OS and installed software. Legacy app or strict OS version requirement. Need custom installs (agents/drivers/software). Virtual Machines (VM): maximum OS control. More management: patching, hardening, maintenance.
Pitfalls
Pick the right tool by control, portability, and responsibility. Not interchangeable: match requirements to the model. Containers do not equal VMs (shared host kernel vs guest OS). Managed doesn't remove your responsibilities (SRM).
