
Azure App Service vs Functions vs Container Apps
Azure App Service is de klassieke PaaS — webapps met simpele deploys (vergelijkbaar met Vercel of Heroku). Azure Functions is serverless: korte event-driven taken zonder server-management, schaalt automatisch naar nul. Container Apps is de moderne keuze voor microservices: Kubernetes-grade orchestration zonder Kubernetes-complexiteit. Voor monolithische webapps: App Service. Voor event-driven workloads: Functions. Voor microservices of polyglot stacks: Container Apps.
Azure App Service — PaaS voor klassieke webapps
App Service is Azure's longest-running PaaS-offering: je publiceert je app (Node, .NET, Python, Java, PHP) en Azure regelt OS, runtime, load-balancing en scaling. Vergelijkbaar met AWS Elastic Beanstalk of Heroku.
Sterk: simpelste deployment (Git push, ZIP upload, of via CI/CD), built-in features als Authentication, Custom Domains, SSL, Backups, Deployment Slots (blue/green). Schaalt verticaal en horizontaal met klik. Ondersteunt Linux en Windows.
Zwak: betaalt voor geheugen + CPU 24/7 (geen scale-to-zero in Basic-tier), beperkte container-controle, prijs schaalt minder gracieus dan Functions of Container Apps bij wisselende load.
Prijs: Basic B1 ~€44/maand, Standard S1 ~€69/maand, Premium V3 €175-€700/maand afhankelijk van size.
Azure Functions — serverless event-driven
Functions zijn kleine stukjes code die draaien als reactie op een event: HTTP-request, queue-message, timer, blob-upload, Cosmos DB-change. Schaalt automatisch van 0 naar duizenden instances.
Sterk: echte scale-to-zero (geen kosten als idle), pay-per-execution model (eerste 1M executies/maand gratis), perfect voor webhooks, background-jobs, scheduled tasks.
Zwak: cold-start latency (300ms-2s op Consumption-plan, 0 op Premium), 10 minuten max execution time (op Consumption), beperkte memory (1.5GB max op Consumption). Niet geschikt als enige hosting voor een grote webapp.
Prijs: Consumption: $0.20/M executies + $0.000016/GB-sec. Voor 1M HTTP-calls/maand: typisch €5-€20.
Azure Container Apps — moderne microservices
Container Apps draait Docker-containers met Kubernetes-achtige orchestratie (gebaseerd op KEDA en Dapr) zonder dat je Kubernetes hoeft te beheren. Schaalt automatisch op events, HTTP-traffic, queue-depth, etc.
Sterk: deploy elke containerized service (Node, Go, Python, .NET, custom), scale-to-zero ondersteund, built-in revision-management (blue/green, canary), service-to-service-discovery, Dapr voor sidecar-patronen, ondersteunt event-driven scaling met KEDA.
Zwak: jonger product dan App Service en Functions, minder community-content beschikbaar, complexer dan App Service voor simpele monolithische apps.
Prijs: €0.000024/vCPU-sec + €0.000003/GB-sec. Voor een typische microservice: €30-€150/maand. Schaalt elastisch met load.
Beslismatrix
- Monolithische webapp (Node, .NET, Python): App Service. Simpelste, snelste, voorspelbare kosten.
- Webhooks, API-endpoints, background-jobs: Functions. Schaalt elastisch, betaalt alleen bij gebruik.
- Microservices-architectuur (3+ losse services): Container Apps. Bouwt naar Kubernetes-niveau zonder de complexity.
- Custom runtime of polyglot stack: Container Apps. Elk language/runtime ondersteund via containers.
- Event-driven verwerking (queues, Service Bus): Functions of Container Apps. Beide schalen op queue-events.
- Mission-critical web-app met 99.99% SLA: App Service Premium V3 of Container Apps met multiple replicas + Front Door.
Hoe je ze combineert
Echte Azure-architecturen mengen vaak meerdere services:
- App Service voor het web-frontend — public-facing, voorspelbaar verkeer.
- Functions voor webhooks en async jobs — Stripe webhooks, scheduled imports, email-verwerking.
- Container Apps voor specifieke services — bv. een AI-inference-service of een PDF-generator die schaalbaar moet zijn.
Een typische MKB-app op Azure mengt App Service (€69/maand) + Functions (€10-€30/maand) + Cosmos DB + Azure AD B2C. Totaal €150-€400/maand bij beperkt gebruik.
Veelgemaakte fouten
- Functions kiezen voor een full webapp. Werkt technisch, maar cold-starts en orchestratie maken het pijnlijk. Voor een echte webapp: App Service.
- Container Apps kiezen vanwege "modern". Voor één service zonder microservices-architectuur is App Service goedkoper en simpeler.
- App Service Premium kiezen voor 1 gebruiker. Begin met Basic of Standard; upgrade als de load het rechtvaardigt.
- Geen Application Insights instellen. Zonder monitoring weet je niet wat traag is.
- Functions in een private VNet zonder Premium-plan. Consumption-tier Functions kunnen niet in een private VNet. Geen showstopper, maar plan ervoor.
Veelgestelde vragen
Kan ik mijn Node.js-app gewoon naar App Service deployen?
Ja, direct vanuit GitHub of via Azure CLI. Voor Node 18/20 ondersteuning is App Service Linux nodig (geen Windows-runtime issues). Setup duurt 30-60 minuten.
Wat is Azure Container Instances en hoe verschilt dat van Container Apps?
Container Instances is voor losse containers zonder auto-scaling of orchestratie — handig voor ad-hoc jobs. Container Apps is voor lange-draaiende services met scaling en orchestratie.
Werkt Azure Functions met Next.js?
Next.js zelf draait beter op App Service of via Azure Static Web Apps (die zelf Functions onder de motorkap gebruikt voor API-routes). Pure Functions voor Next.js-rendering is geen standaard pad.
Hoe schaalt App Service?
Verticaal: upgrade van Basic naar Standard naar Premium. Horizontaal: auto-scale rules op CPU/memory/schedule. Tot 30 instances op Premium tier.
Is Container Apps duurder dan App Service?
Bij steady-state vergelijkbaar of iets duurder. Bij variabele load (veel idle-tijd) goedkoper door scale-to-zero. Reken het door voor jouw use-case.
Wat is Azure Kubernetes Service (AKS) en wanneer is dat beter?
AKS is volledige Kubernetes. Geschikt voor grote microservices-platforms (10+ services) of team's met Kubernetes-expertise. Voor MKB: Container Apps geeft 80% van AKS-functionaliteit met 20% van de complexiteit.
Klaar om te beginnen?
Lees onze aanpak voor een Azure-app laten bouwen, of plan een korte kennismaking — we kijken vrijblijvend mee en geven een eerlijke inschatting van scope, kosten en doorlooptijd.