
Voor teams die op zoek zijn naar een efficiëntere manier om applicaties te deployen, testen en schalen zonder zelf onderliggende infrastructuur te beheren, biedt het Serverless Framework een praktische oplossing. Het framework vereenvoudigt de ontwikkeling en deployment van cloudapplicaties doordat de volledige applicatie-architectuur, zoals API’s, databases, functies en containers, kan worden vastgelegd in één configuratiebestand. Applicaties kunnen met één opdracht worden gedeployed, waardoor schaalbare en event-driven workloads op AWS en andere cloudproviders kunnen draaien zonder dat servers handmatig hoeven te worden beheerd.
Dit artikel gaat in op het Serverless Framework en Serverless Containers. Daarbij behandelen we wanneer elke aanpak geschikt is, hoe cloudomgevingen lokaal kunnen worden gerepliceerd en waarom deze frameworks steeds vaker worden gebruikt voor het bouwen van schaalbare en efficiënte cloud-native applicaties.
Belangrijkste voordelen van Serverless
Het Serverless team biedt naast het Serverless Framework ook het Serverless Containers Framework (SCF), bedoeld voor teams die containergebaseerde workloads deployen op diensten zoals AWS Lambda en AWS Fargate. Samen geven deze tools ontwikkelingsteams de flexibiliteit om per workload het meest geschikte compute-model te kiezen, of dit nu functiegebaseerd of containergebaseerd is, terwijl de ontwikkelervaring consistent blijft.
Een belangrijk voordeel van Serverless is de mogelijkheid om cloudomgevingen lokaal te repliceren. Dit verhoogt de productiviteit van ontwikkelaars en helpt de kosten voor clouddiensten tijdens het ontwikkelproces te verlagen. Daarnaast biedt het Serverless Framework meerdere functies die bijdragen aan een efficiënte en voorspelbare workflow:
- Snelheid: Complexe architecturen kunnen binnen enkele minuten worden gedeployed in plaats van binnen dagen.
- Schaalbaarheid: Resources worden automatisch aangepast op basis van de vraag.
- Kostenefficiëntie: Betaal alleen voor daadwerkelijk gebruik, zonder kosten voor inactieve servers.
- Infrastructure as Code (IaC): Sla infrastructuurconfiguraties op in version control voor meer consistentie en herhaalbaarheid.
Basisstructuur van een Serverless project
Een typisch Serverless project dat gericht is op AWS bevat de volgende onderdelen.
- Compute
– Functions: AWS Lambda-functies (of vergelijkbare functionaliteit op andere cloudplatforms) die worden geactiveerd door gebeurtenissen zoals HTTP-verzoeken, S3-uploadacties, SQS-berichten of geplande taken.
– Containers: Met het Serverless Containers Framework kunnen teams containergebaseerde workloads definiëren en deployen. Hiermee kunnen workloads als containers draaien op AWS Lambda of op AWS ECS Fargate, allemaal vastgelegd in één configuratiebestand. - Events
Events zijn de triggers die compute-componenten koppelen aan cloudresources. Dit kan bijvoorbeeld interactie omvatten met databases, opslagservices, message queues of andere eventbronnen. Events worden rechtstreeks in de projectconfiguratie gedefinieerd. - Resources
Resources zijn de cloudinfrastructuurcomponenten waar de applicatie afhankelijk van is, zoals databases, queues, opslagbuckets of netwerkonderdelen.
Hieronder staat een eenvoudig voorbeeld van een YAML-configuratiebestand voor een API binnen het Serverless Framework:

In veel gevallen hoeven resources niet expliciet te worden gedefinieerd voor het Serverless Framework om deze aan te maken. Wanneer een functie bijvoorbeeld wordt geactiveerd door een SQS-queue, kan het framework deze queue automatisch provisioneren op basis van de configuratie. Dit vermindert herhalend configuratiewerk, terwijl ontwikkelaars nog steeds de flexibiliteit behouden om resources te wijzigen of expliciet vast te leggen wanneer dat nodig is.
Het Serverless Framework maakt het mogelijk om belangrijke infrastructuurcomponenten direct binnen de projectconfiguratie te definiëren. Veelgebruikte AWS-resources die via het framework kunnen worden geprovisioneerd zijn onder andere:
- DynamoDB-tabellen voor NoSQL-datastorage
- S3-buckets voor bestands- en objectopslag
- SQS-queues voor message processing en ontkoppeling van systemen
- SNS-topics voor publish/subscribe-communicatie
- API Gateway voor het beheren van API’s
- IAM-rollen en -policies voor toegangsbeheer
- CloudWatch-alarms voor monitoring en waarschuwingen
- VPC-configuraties voor netwerk- en beveiligingsinstellingen
Cloudagnostische mogelijkheden
Met de release van Serverless Framework V4 is de officiële ondersteuning voor niet-AWS-cloudproviders beëindigd. Dit betreft onder meer eerdere integraties met providers zoals Azure en Google Cloud.
Deze wijziging kan gevolgen hebben voor teams die een bestaande multi-cloudarchitectuur gebruiken, maar markeert tegelijkertijd een verandering in de manier waarop het framework in de toekomst ondersteuning voor alternatieve cloudomgevingen wil bieden. In plaats van legacy implementaties te blijven onderhouden, richt het Serverless team zich op het opbouwen van een fundament voor een modernere, betrouwbaardere en beter schaalbare benadering van multi-cloudondersteuning. Deze nieuwe aanpak wordt in toekomstige releases verwacht.

Geavanceerde mogelijkheden voor Infrastructure as Code (IaC)
Het Serverless Framework breidt zijn Infrastructure as Code-functionaliteit uit met de volgende kenmerken:
- State management: Het framework houdt de infrastructuurstatus bij via het Serverless Dashboard of lokale state-bestanden. Dit maakt veilige, stapsgewijze updates mogelijk en verkleint de kans op ongewenste wijzigingen.
- Environment variables en secrets: Het framework biedt flexibele configuratiemogelijkheden voor verschillende omgevingen en ondersteunt veilige methoden voor het beheren van gevoelige gegevens.
- Aangepaste IAM-rollen: Teams kunnen fijnmazige permissies definiëren voor individuele functies, wat het ‘least privilege’-principe ondersteunt en de beveiliging verfijnt.
- Plug-inecosysteem: Het framework ondersteunt een breed scala aan plugins die modulaire en onderhoudbare configuraties mogelijk maken. Hierbij kan gebruik worden gemaakt van variabelen, bestandsreferenties en gedeelde componenten om duplicatie te voorkomen.
- Nested stacks: Grote applicaties kunnen worden opgesplitst in kleinere, beter beheersbare onderdelen. Dit verbetert de onderhoudbaarheid en zorgt voor een duidelijkere scheiding van verantwoordelijkheden.
Serverless Containers Framework
Hoewel het Serverless Framework primair is ontworpen voor functiegebaseerde workloads, vereisen veel moderne applicaties een containergebaseerde uitvoering. Voorbeelden hiervan zijn langdurig draaiende API’s, achtergrondprocessen of services die interne status moeten behouden.
Om deze scenario’s te ondersteunen, heeft het Serverless-team het Serverless Containers Framework (SCF) geïntroduceerd. Dit framework biedt een uniforme manier om containers te deployen op serverless-platforms zoals AWS Lambda Containers en AWS ECS Fargate. Het biedt dezelfde declaratieve, configuratiegestuurde workflow als het Serverless Framework, maar is specifiek afgestemd op containergebaseerde workloads.
Hieronder volgt een overzicht van de belangrijkste mogelijkheden van SCF:
Uniforme containerontwikkeling en -deployments
- Containers deployen naar AWS Lambda en AWS Fargate met één workflow.
- Lambda- en Fargate-computemodellen combineren binnen dezelfde API.
- Wisselen tussen platforms zonder codewijzigingen of onderbrekingen in de service.
- Automatisch provisioneren van productieklare infrastructuur, zoals VPC-instellingen, netwerkconfiguraties en Application Load Balancer-setup.
Uitgebreide ontwikkelervaring
- Lambda- en Fargate-containers efficiënt bouwen met volledige lokale emulatie.
- AWS Application Load Balancer-verkeer lokaal routeren en simuleren.
- Sneller ontwikkelen met directe hot reloading.
- Live AWS IAM-rollen injecteren in containers tijdens ontwikkeling om productieomstandigheden na te bootsen.
Productierijpe functionaliteiten
- Wijzigingen in code en configuratie detecteren voor veilige en efficiënte deployments.
- Ondersteuning voor één of meerdere custom domains binnen dezelfde API.
- Automatisch beheer van SSL-certificaten.
- Toepassing van veilige standaardinstellingen voor IAM en netwerkconfiguraties.
- Laden van environment variables uit onder andere
.env-bestanden, AWS Systems Manager Parameter Store, AWS Secrets Manager en Terraform-statebestanden. - Multi-cloudondersteuning staat gepland voor toekomstige releases.
Configuratie
Het Serverless Containers Framework (SCF) gebruikt een overzichtelijk YAML-configuratiemodel om containergebaseerde architecturen te definiëren. Deze configuratie wordt opgeslagen in het bestand serverless.containers.yml. Ook complexe applicatie-architecturen kunnen hiermee op een compacte en gestructureerde manier worden beschreven.
Hieronder volgt een eenvoudig voorbeeld van hoe een full-stack applicatie met deze configuratiemethode kan worden gedefinieerd:

In het Serverless Containers Framework (SCF) zijn er drie primaire manieren om een Docker-image aan te leveren voor een API.
- Inline Docker-definitie: Een Dockerfile kan direct in
serverless.containers.ymlworden opgenomen via dedockerFileString-property. Dit kan handig zijn voor eenvoudige scenario’s, maar wordt niet aanbevolen voor productieomgevingen vanwege de beperkte onderhoudbaarheid. - Verwijzen naar een Dockerfile in de bronmap: Een standaard Dockerfile kan worden geplaatst in de bronmap van de applicatie en worden verwezen via de
src-property in de YAML-configuratie. SCF detecteert deze Dockerfile automatisch en gebruikt deze bij het bouwen van het image. - Automatische imagegeneratie: Wanneer er geen Dockerfile aanwezig is, kan SCF automatisch een image genereren op basis van de runtime van het project. Node.js-projecten worden bijvoorbeeld herkend via
package.jsonen Python-projecten viarequirements.txt. Hierdoor kan de applicatie draaien zonder dat er handmatig een Dockerfile hoeft te worden geschreven. Automatische imagegeneratie is momenteel beperkt tot deze runtimes, maar SCF ondersteunt elke taal zolang er een geldige Dockerfile wordt meegeleverd.
Deze flexibiliteit stelt ontwikkelingsteams in staat om te kiezen tussen een volledig aangepaste containerconfiguratie of de ingebouwde runtime-images van SCF voor een versnelde ontwikkelworkflow.
Wanneer welke optie gebruiken
Afhankelijk van de aard van de workload maakt u een keuze tussen het Serverless Framework, dat gericht is op functiegebaseerde executie en het deploymentproces vereenvoudigt, en het Serverless Containers Framework (SCF), dat meer flexibiliteit biedt doordat workloads in containers kunnen worden uitgevoerd.
| Scenario | Gebruik Serverless Framework | Gebruik Serverless Containers Framework |
|---|---|---|
| Korte, event-driven functies | X | |
| Langdurig draaiende processen | X | |
| Taken met veel geheugen- of CPU-verbruik | X | |
| Combinatie van beide | X | X |
| Geleidelijke migratie van traditionele containers | X | |
| Lichtgewicht API’s of event handlers | X |
Serverless dashboard
Het Serverless dashboard biedt een gecentraliseerde omgeving voor het bouwen, beheren en monitoren van serverless-applicaties. Het is ontworpen om teams te ondersteunen bij het behouden van overzicht, governance en consistentie binnen hun serverless-workloads.
De webgebaseerde interface presenteert cloudgegevens op een gestructureerde en toegankelijke manier. Het biedt ontwikkelaars, operators en productteams een gedeelde omgeving om deployments te volgen, applicatiegedrag te monitoren, beveiligingsinstellingen te beoordelen en effectief samen te werken.
Real-time monitoring
Het dashboard biedt mogelijkheden voor real-time monitoring, waarmee teams statistieken kunnen volgen zoals function-invocations, uitvoerduur en foutpercentages. Deze inzichten zijn beschikbaar zonder dat handmatige configuratie van CloudWatch-queries nodig is.

CI/CD integraties
Het Serverless dashboard ondersteunt integraties met platforms zoals GitHub, GitLab en Bitbucket. Deze integraties maken geautomatiseerde deployments mogelijk als onderdeel van een continuous integration- en continuous delivery (CI/CD) workflow.

Secrets management
De functionaliteit voor secrets management stelt teams in staat om toegang tot gevoelige gegevens te beheren, deploymentgeschiedenis te bekijken en configuratiewijzigingen binnen een gedeelde omgeving te coördineren.

Alerts en notificaties
Alerts en notificaties helpen teams op de hoogte te blijven van fouten, prestatieproblemen en onverwachte gebruikspatronen. Dit ondersteunt een snellere analyse en reactie tijdens de operatie.

Het dashboard integreert nauw met de Serverless CLI, waardoor ontwikkelaars deployments via de terminal kunnen beheren terwijl zij via de webinterface toegang houden tot gedetailleerde monitoring- en configuratie-informatie.
Prijzen
- Pay as you go: Je betaalt alleen voor de credits die je per maand gebruikt. Er zijn geen langetermijnverplichtingen en je kunt het gebruik eenvoudig verhogen of verlagen wanneer dat nodig is.
- Gereserveerde credits: Je kunt credits vooraf inkopen tegen een gereduceerd tarief. Dit is vooral geschikt voor teams met een voorspelbaar gebruikspatroon.
Uitleg van het creditverbruik
- Service instances: Een service instance komt overeen met een
serverless.yml-bestand dat in een specifieke stage en regio meer dan tien dagen per maand wordt gedeployed. Elke service instance verbruikt 1 credit.. - Traces: Een trace staat voor één AWS Lambda-invocation die wordt vastgelegd door het Serverless Dashboard, inclusief eventuele fouten, spans en logs. Traces worden gebruikt voor troubleshooting via de Trace Explorer en Alerts. Eén credit dekt 50.000 traces.
- Metrics: Metrics geven prestatiedata weer van AWS Lambda-invocations. Elke invocation genereert vier metrics. Eén credit dekt 4 miljoen metrics.
Lokale ontwikkeling en testen
Tools voor lokale ontwikkeling spelen een belangrijke rol bij het efficiënt bouwen van serverless-applicaties. Het Serverless Framework biedt verschillende plugins waarmee je cloudservices lokaal kunt emuleren, zodat je minder afhankelijk bent van clouddeployments tijdens de ontwikkelfase. Het Serverless Containers Framework (SCF) heeft daarnaast een ingebouwde lokale emulatie voor containergebaseerde workloads.
- Serverless Offline:
serverless-offlinesimuleert AWS Lambda en API Gateway lokaal. Je kunt functies aanroepen via HTTP-verzoeken en gebruikmaken van snel testen, hot reloading en ondersteuning voor meerdere runtimes zoals Node.js, Python, Java en Go. - Serverless DynamoDB:
serverless-dynamodbbiedt een lokale DynamoDB-instantie voor ontwikkeling en tests, zonder verbinding te maken met AWS. Het ondersteunt Java- en Docker-gebaseerde setups en integreert metserverless-offlinevoor een completere lokale omgeving. - Serverless S3 Local:
serverless-s3-localemuleert S3-buckets op je lokale machine. Hiermee kun je uploads, downloads en bucketconfiguraties testen. De plugin ondersteunt onder andere CORS, HTTPS en aanpasbare serverinstellingen. - Serverless Offline SQS:
serverless-offline-sqsmaakt het mogelijk om AWS SQS-queues te simuleren met ElasticMQ. Dit ondersteunt event-driven testen van Lambda-functies die worden getriggerd door berichten in de queue, zonder dat je AWS-toegang nodig hebt. - Serverless Offline SNS:
serverless-offline-snsbiedt lokale emulatie van AWS SNS-topics. Je kunt berichten publiceren en Lambda-functies lokaal triggeren, met ondersteuning voor automatische topiccreatie en configureerbare endpoints. - Serverless LocalStack:
serverless-localstackintegreert het Serverless Framework met LocalStack, een uitgebreide lokale emulator voor AWS-diensten. Hiermee kun je lokale versies van onder andere Lambda, S3 en DynamoDB gebruiken, waardoor je een testomgeving krijgt die sterk lijkt op productie. LocalStack biedt daarnaast optimalisaties, zoals het direct mounten van lokale Lambdacode voor snellere ontwikkelrondes.
Conclusie
Het Serverless ecosysteem biedt een gestructureerde en efficiënte manier om moderne cloudapplicaties te bouwen, te testen en te deployen. Door ondersteuning voor infrastructure as code en tools voor lokale emulatie helpt het je om ontwikkeltijd te verkorten, operationele kosten te verlagen en schaalbare architecturen te implementeren zonder dat je zelf servers hoeft te beheren.
Zowel het Serverless Framework als het Serverless Containers Framework (SCF) zijn waardevolle opties, afhankelijk van de aard van je workload. Samen vormen ze een flexibele basis voor teams die serverless-principes willen toepassen, nieuwe applicaties willen bouwen of bestaande systemen willen moderniseren.