Blog Azure Cloud native

Containers vs Serverless in Azure

Wanneer organisaties hun applicaties willen moderniseren, moeten ze vaak veel keuzes maken. “Moet je serverless of containers gebruiken in Azure?

Dit artikel helpt je een keuze te maken tussen containers en serverless architecturen.

Of je nu vanaf nul begint of een monolith afbreekt, wij helpen je de juiste aanpak te kiezen voor jouw business vereisten.

Niels Kroeze

Auteur

Niels Kroeze

Leestijd 11 minuten Gepubliceerd: 20 juni 2025

Wat is serverless computing?

Serverless computing is een cloudmodel waarbij je je code runt zonder zelf servers te hoeven beheren. De cloudproviders – zoals Microsoft Azure – regelen de onderliggende infrastructuur voor je.

Vergelijking van cloud computing services zoals BYO servers, IaaS, PaaS en serverless modellen.

Serverless betekent niet dat er geen servers zijn. Die zijn er nog steeds. Alleen zit de complexiteit van die servers verstopt voor developers, system admins en operation teams.

Met andere woorden: jij focust op de business logic, Microsoft regelt de infrastructuur.

 

Belangrijke kenmerken van Serverless

Servers zijn weggeabstraheerd

  • De servers zijn er nog, maar jij hoeft ze niet te beheren.
  • Schalen, executie en resource allocatie worden allemaal geregeld door de cloudprovider.
  • Jij focust je op de applicatie – het schrijven van code.

Betalen per gebruik

  • Bij virtual machines betaal je een vast bedrag op basis van grootte, ook als ze niks doen.
  • Bij serverless betaal je alleen als je code draait.
  • Dat kan flink schelen in kosten, zeker bij workloads die pieken of onvoorspelbaar zijn.

Automatisch schalen

  • De serverless omgeving schaalt automatisch – er worden extra compute resources toegevoegd als dat nodig is.
  • Geen verkeer? Dan schaalt het terug naar nul (en betaal je niks).
  • Die flexibiliteit zit ingebouwd en wordt voor je beheerd.

 

Welke services in Azure zijn Serverless?

Dus welke opties heb je om ‘serverless’ te gaan in Azure? Er zijn genoeg keuzes binnen serverless computing:

  • Azure Functions: Hiermee schrijf je kleine stukjes code (functions) die reageren op specifieke events. Geen volledige app nodig – alleen de functie die je nodig hebt.
  • Azure Logic Apps: Voor het automatiseren van taken, workflows en processen. Vooral handig als je systemen, data en services met elkaar wilt koppelen.
  • Azure Event Grid: Een event routing service van Microsoft. Werkt via publish/subscribe en levert events bijna realtime. Ideaal voor event-driven architecturen.
  • Azure App Services (Consumption Plan): Handig voor webapps die je serverless wilt draaien zonder alles opnieuw te bouwen.
  • Azure Service Bus: Een enterprise message broker voor asynchrone data-overdracht en het loskoppelen van applicaties.
  • Azure Container Apps: Serverless containers voor microservices, APIs, event-driven apps en background jobs – zonder VM of orchestrator.
  • Azure SQL Database (Serverless): SQL database die automatisch pauzeert, rekent per seconde af. Je betaalt alleen wat je gebruikt. Schaalbaar op basis van load.
  • Azure Cosmos DB (Serverless): Globaal gedistribueerde NoSQL database met pay-per-operation prijzen.

 

Voordelen van Serverless

Nu steeds meer organisaties naar de cloud gaan, kiezen veel er ook voor om applicaties serverless te hosten.

De belangrijkste voordelen:

  • Event-driven en stateless van nature: Dwingt je om goede microservice patterns te gebruiken vanaf het begin.
  • Kostenbesparing via pay-per-use: Je betaalt alleen als het draait. Geen verkeer = geen kosten. En je hoeft geen resources te reserveren of betalen voor iets dat je niet gebruikt. Plus, Azure heeft een gratis maandelijkse limiet:
    • 1 miljoen function executions
    • 400.000 GB-seconden
      Dus je kunt zelfs experimenteren of prototypen zonder iets te betalen.
  • Snel ontwikkelen met bindings en integraties: Als je Azure Functions combineert met native services zoals Storage of Service Bus, bouw je razendsnel.
  • Sneller live: Je focust op business logic in plaats van infra. Dus je shipt sneller nieuwe features.
  • Minder code om te schrijven en onderhouden: Dankzij triggers, bindings en managed services hoef je minder integratiecode te schrijven.
  • Automatische schalen: Je hoeft geen VMs te dimensioneren of overprovisioning te doen. Serverless apps schalen vanzelf op en af op basis van echte vraag.

 

Use Cases voor Serverless

  • Event-driven apps: Denk aan IoT, dataverwerking of real-time analytics. Serverless kan pieken in events makkelijk aan zonder dat je servers hoeft te regelen. 
  • Sporadische workloads: Serverless past goed bij taken die geen vaste frequentie hebben, zoals scheduled tasks of batch jobs. Denk aan periodieke data clean up of rapportages die af en toe draaien.

 

Wat zijn containers?

Simpel gezegd: een manier om je app te verpakken samen met alle afhankelijkheden.

"Containers zijn op zichzelf staande software-eenheden die een applicatie met zijn afhankelijkheden, bibliotheken en configuratiebestanden inpakken."

Als je een applicatie verpakt in een container, dan kun je die overal draaien waar containers ondersteund worden – zonder dat je iets extra’s hoeft te installeren. Je app wordt dus super makkelijk verplaatsbaar. Je kunt ‘m lokaal draaien, in een on-premises datacenter of in de cloud. 

In vergelijking met traditionele virtual machines (VMs), zijn containers sneller en efficiënter.

Lees ook: Van Virtual Machines (VMs) naar Containers, een droom of een nachtmerrie?

 

Containers in Azure

Er zijn meerdere manieren om containers te draaien in Azure. Eén daarvan is door een Linux of Windows VM op te zetten met containers ingeschakeld. Je kunt ook een set virtual machines gebruiken en daar zelf Kubernetes op installeren. Alleen kost dat wel wat tijd en moeite.

Dan vraag je je misschien af: kan het ook zonder dat we zelf de servers hoeven te beheren?

Kort antwoord = ja. Met services zoals Azure Container Apps of Azure Container Instances is dat prima mogelijk.

Azure Container Instances

Azure Container Instances zijn één van de makkelijkste manieren om containers te draaien. Je geeft Azure de locatie van je container image – meestal uit een container registry – en vraagt om ‘m te draaien. Je hoeft geen VMs te beheren. Je betaalt alleen zolang de container draait. Zodra hij stopt, stopt de billing ook. Ideaal dus voor kortdurende taken (zoals batch jobs) waarbij je tijdelijk compute nodig hebt.

Azure Web App

Je kunt webapps hosten met Azure App Service zonder containers. Maar als je je app wíl containerizen, dan kan dat met Azure Web App for Containers. Daarmee kun je je eigen container images draaien én profiteren van alle standaard features zoals custom domains, autoscaling en eenvoudige configuratie.

Azure Container Apps

Wil je een makkelijkere manier om containers te draaien zonder zelf de onderliggende Kubernetes infrastructuur te beheren? Dan is Azure Container Apps iets voor jou. Het ondersteunt microservices, autoscaling en event-driven apps. Ideaal voor moderne toepassingen. Het is vooral handig als je niet de volledige complexiteit van AKS wilt, maar wél features als traffic splitting, revisions of Dapr-integratie nodig hebt. ACA draait containers direct en schaalt naar nul als er niks gebeurt – dat helpt bij het besparen op kosten bij workloads die niet constant draaien.

Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) is managed Kubernetes in Azure. Al een tijd dé manier om containers te orkestreren. AKS is makkelijk op te zetten – met een paar klikken of regels code heb je al een cluster draaiend. En je kunt je containers eenvoudig beheren.

AKS Accelerator Header

AKS Control Intercept

Met AKS Control hoef je Kubernetes of servers niet zelf te beheren. Wij zorgen voor je AKS omgeving, van set-up tot schaling, zodat jij je bedrijf kunt laten groeien.

Bekijk hoe wij AKS voor je beheren!

Voordelen van Containers

Als je weg wilt van statische, monolithische applicaties richting een cloud native aanpak, zijn containers vaak de beste keuze.

Door je app op te splitsen in een microservice architectuur – waarbij elke service in z’n eigen container draait – kun je ze apart ontwikkelen, beheren en schalen.

Maar containers hebben nog meer voordelen:

  • Ideaal voor legacy app migratie: Containers zijn perfect om legacy apps naar de cloud te brengen. Vaak kun je gewoon een Dockerfile schrijven, het containerizen en binnen no-time draaien in een Windows containeromgeving.
  • Efficiënt gebruik van resources: Je kunt meerdere geïsoleerde containers op één VM draaien, dus je kunt makkelijk verschillende lichte microservices hosten zonder conflicten of verspilde capaciteit.
  • Lagere kosten: Omdat containers resources delen, zijn ze meestal goedkoper in gebruik.
  • Geen extra overhead: Containers voegen geen extra laag toe. Geen lange opstarttijden of extra geheugenverbruik – het draait bijna alsof het direct op de host staat.
  • Makkelijk 3rd party tools gebruiken: Er is een gigantische bibliotheek aan containerized apps. Je kiest zelf welke tools je gebruikt in je microservices architectuur – je bent niet beperkt tot wat je cloudprovider aanbiedt.
  • Ondersteunt Linux én Windows: De meeste containers draaien op Linux, maar Windows containers worden ook volledig ondersteund. Handig als je nog .NET Framework apps of andere Windows-workloads hebt draaien.
  • Groot ecosysteem: Containers zijn inmiddels standaard. Ze worden ondersteund in alle grote programmeertalen en cloudplatforms. Daardoor heb je toegang tot allerlei tools voor monitoring, deployment, security en CI/CD. Integraties zijn hierdoor meestal makkelijk en consistent.

 

Use Cases voor Containers

  • Microservices architectuur: Containers zijn ideaal om grote applicaties op te splitsen in kleinere, apart deploybare services. Elke microservice draait in z’n eigen container. Teams kunnen zo sneller ontwikkelen, deployen en opschalen. Bijvoorbeeld bij een grote e-commerce platform met losse microservices voor voorraadbeheer, betalingen en user login.
  • Consistente workloads: Applicaties met voorspelbaar resourceverbruik profiteren van containerization. Denk aan een webapp die constant gebruikersverkeer afhandelt. Door elke component te containerizen krijg je consistente prestaties en resourcegebruik bij elke deployment.

Belangrijkste verschillen tussen serverless en containers

De tabel hieronder laat zien hoe serverless en containers zich tot elkaar verhouden:

Kenmerk Serverless Containers
Beheerlast Minimaal Gemiddeld
Schaalbaarheid Automatisch schalen Handmatig of automatisch schalen
Cold start Kan cold starts hebben Snellere opstarttijd
Gebruik van resources Geoptimaliseerd voor individuele function calls Afhankelijk van grootte van container
Prijsmodel Betalen per gebruik Betalen voor gereserveerde resources
Flexibiliteit Beperkte controle over runtime omgeving Meer controle over runtime omgeving

Een ander belangrijk punt is dat serverless functions draaien op gedeelde Azure infrastructuur. Die is veilig, maar in sommige sectoren voldoet zo’n gedeelde omgeving niet aan de compliance-eisen.

 

Overeenkomsten tussen Serverless en Containers

Serverless en containers maken het allebei makkelijker om apps te bouwen met een microservices architectuur.

Beide abstracten de onderliggende infrastructuur weg. Je hoeft als developer dus niet bezig te zijn met servers, alleen met code. Ze zijn ook allebei goed schaalbaar. Bij serverless gaat het automatisch op basis van events, en bij containers kun je met Kubernetes container instances automatisch schalen op basis van vraag.

Daarnaast passen zowel serverless als container-gebaseerde apps goed binnen DevOps. Ze ondersteunen CI/CD pipelines voor continue integratie en deployment.

 

Welke moet je kiezen?

De keuze tussen serverless en containers is belangrijk als je je applicatie wilt moderniseren. Dus: welk model past het best bij jou?

  • Je kunt volledig serverless gaan waarbij al je code draait als kleine Azure Functions die reageren op events, in combinatie met PaaS services voor opslag, messaging, etc.
  • Of je gaat 100% containerised: waarbij je een Kubernetes cluster draait en al je microservices gecontainerised zijn.

Je kunt zelfs verder gaan en ook je databases en message queues in containers draaien. Dat maakt je hele platform veel makkelijker te verplaatsen naar andere clouds.

Met andere woorden: je kunt je microservice app eenvoudig van Azure naar AWS of on-prem verplaatsen.

 

Waarom kiezen voor serverless

Serverless gaan in Azure – bijvoorbeeld met Azure Functions – kan in veel situaties een goede keuze zijn.

Met serverless hoef je je geen zorgen te maken over het file system, afhankelijkheden of het opzetten van Docker containers. Heb je kortdurende of onregelmatige workloads? Dan betaal je alleen als je code daadwerkelijk draait.

Over het algemeen past het goed bij event-driven workloads die kort draaien en automatisch moeten kunnen schalen. Maar vooral als je snel naar de markt wilt, is het ideaal. Je hebt een idee en je wilt snel code live zetten om omzet te genereren – dan werkt het. Ook al is het tijdelijk. Met Azure Functions ship je snel code naar productie.

Maar wat als het succesvoller wordt dan je dacht? Op een bepaald moment loop je tegen de grenzen van serverless aan.

Zolang je business logic achter een API controller zit, is migratie vaak eenvoudig. Je kunt het dan verplaatsen naar containers, overstappen op Kubernetes en serverless achter je laten.

 

Waarom kiezen voor containers

We zeiden net dat serverless goed werkt voor event-driven apps… maar dat betekent niet dat je met containers geen stateless, event-driven toepassingen kunt bouwen. Dat kan zeker.

En er zijn genoeg redenen om containers te omarmen, hier een paar:

  • Containers zijn top voor het migreren van legacy apps. Zelfs oudere .NET apps zoals .NET 4 kun je vaak vrij snel containerizen met een Dockerfile en draaien in Windows containers.
  • In tegenstelling tot serverless starten containers vaak binnen seconden en kun je ze daarna bijna overal draaien.
  • Bij serverless zit je sneller vast aan vendor lock-in. Met containers heb je die beperking niet.
  • Containers zijn niet gebonden aan één programmeertaal – je kunt elke taal gebruiken.
Cloud Design Total

Twijfel je over welke cloudarchitectuur je moet kiezen?

Laat Intercept je helpen! Ontvang een grondige beoordeling en advies over jouw bestaande cloud architectuur of bij de overgang naar de cloud.

Vraag een Cloud Design aan!

Moet je kiezen?

Je hoeft niet volledig voor containers of serverless te gaan. Een hybride architectuur kan ook – je combineert dan het beste van beide. Je draait bijvoorbeeld een monolithische app op een VM, gebruikt Azure Functions voor losse taken en containers voor andere onderdelen.

Bovendien kun je Azure Functions ook gewoon binnen een container draaien of gebruiken om containerized workloads te triggeren en beheren. Stel dat je al met containers werkt…

Je hebt een Kubernetes cluster en denkt:Dan kan ik Azure Functions niet meer gebruiken.” Think again…

Je kunt een Azure Function app containerizen en gewoon draaien in AKS, in een andere cloud of lokaal.

 

Conclusie

Uiteindelijk hangt de beste keuze voor het bouwen en beheren van moderne cloudapplicaties af van je situatie – of dat nou serverless is of gebaseerd op containers.

  • Serverless is top voor kleine, gerichte stukken business logic. Maar in de praktijk groeit je app vaak verder dan je denkt – en dan kan het snel onoverzichtelijk worden. Bij grotere, enterprise-apps loop je al snel tegen de limieten aan.
  • Containers zijn beter geschikt voor apps met een microservices architectuur en workloads die consistent zijn.
Marc Bosgoed

Heb je hulp nodig om een beslissing te nemen over je cloud architectuur?

Onze Azure-experts helpen je de juiste architectuur te kiezen, zodat je schaalbare applicaties kunt bouwen, zowel serverless als in containers.

Get in touch!