May 21, 2024

Hoe werken 'Serverless Architectures' op AWS?

De vele innovaties en verbeteringen in de wereld van cloudcomputing hebben het pad geëffend voor een betrekkelijk nieuwe vorm van softwareontwikkeling: de serverloze architectuur. Een van de grote aanjagers van deze technologie is AWS, het cloudplatform van techgigant Amazon. In dit artikel leggen we uit wat een serverloze architectuur is, welke serverless-oplossingen AWS aanbiedt en wat de belangrijkste voordelen van serverless architectures op AWS zijn.

Wat is een ‘serverless architecture’?

In tegenstelling tot wat de naam doet vermoeden, is een serverloze architectuur geen technologie waar helemaal geen servers bij betrokken zijn. Serverloos verwijst in deze context naar een aanpak waarbij ontwikkelaars zich alleen richten op het coderen van de functies en diensten waaruit hun applicaties bestaan. De onderliggende infrastructuur valt onder het beheer van de cloudserviceprovider.

In een serverloze architectuur bouw je applicaties feitelijk als een reeks individuele functies. Elke functie komt overeen met een specifieke taak. Denk bijvoorbeeld aan het verwerken van invoergegevens, het uitvoeren van berekeningen of het communiceren met een database. Deze functies worden geactiveerd door gebeurtenissen, zoals een HTTP-verzoek, een bestandsupload of een planning.

Doet zich een gebeurtenis voor? Dan voorziet de cloudprovider je automatisch van de middelen die nodig zijn om de bijbehorende functie uit te voeren. Als de taak voltooid is, worden de bronnen vrijgegeven. Dit betekent dat je alleen betaalt voor de daadwerkelijke uitvoeringstijd van functies en servers dus niet continu actief houdt.

Wat zijn serverloze architecturen op AWS?

AWS Serverless, de serverloze architectuur van AWS, biedt je de mogelijkheid om diensten en applicaties te bouwen en uit te voeren zonder de (complexe) infrastructuur te hoeven beheren. Je gebruiksapplicaties draaien op servers die AWS voor je beheert.

AWS Serverless bestaat uit diverse kerndiensten die je helpen bij specifieke taken. We geven je een overzicht.

Serverloze computerdiensten

Met AWS Lambda voer je code uit zonder servers te beheren. Je betaalt uiteindelijk alleen voor de gebruikte berekeningen en rekenkracht. Met Lambda Edge is het ook mogelijk om Lambda-functies uit te voeren op AWS edge-locaties. Met serverloze computerdiensten wordt het makkelijker om de infrastructuur te beheren en schalen die je nodig hebt voor het uitvoeren van de gebruikersbox.

Serverloze opslagdiensten

AWS Serverless biedt ook oplossingen voor het opslaan van data, objecten en bestanden. Amazon S3-buckets zijn bijvoorbeeld prima geschikt voor het overzichtelijk en veilig opslaan van bestanden of afbeeldingen in de AWS-cloud. Je kunt data organiseren in submappen, nauwgezet instellen wie toegang heeft tot welke mappen en bestanden, de buckets voorzien van tags zodat je de juiste bestanden snel terugvindt en oude bestanden voor archiveringsdoeleinden opslaan in een aparte klasse S3-buckets. Amazon EFS biedt een sterk schaalbare en elastische dataopslag die zich automatisch aanpast aan de vraag van de gebruiker.

Serverloze databases

Athena en Aurora zijn serverloze databases binnen het AWS-aanbod. Met Athena creëer je zonder veel moeite een basaal datalake dat gebruikmaakt van een S3-bucket en de data organiseert in gestructureerde bestandsformaten als CSV. Aurora is een geavanceerde relationele database die helemaal geoptimaliseerd is voor de serverloze architectuur van AWS.

Applicatie-integratiediensten

In een moderne IT-omgeving is een goed geïntegreerd applicatielandschap een absolute must. Het is dan ook niet verrassend dat je in AWS Serverless diverse hoogwaardige applicatie-integratiediensten vindt. Denk bijvoorbeeld aan:

  • Amazon SNS (pub/sub-berichtenservice) en SQS (messaging) voor het ontkoppelen en schalen van microservices, gedistribueerde systemen en serverloze applicaties.
  • AWS AppSync. Deze dienst helpt je bij het beveiligen van toegang en combineert data uit meerdere gegevensbronnen voor een eenvoudigere applicatieontwikkeling.
  • Amazon EventBridge maakt het makkelijker om toegang te krijgen tot gegevens uit meerdere bronnen en verzendt deze data naar de AWS-omgeving van de gebruiker.
  • Met Amazon Gateway bouw, onderhoud, publiceer en beveilig je op elke schaal API’s en kun je duizenden gelijktijdige API-aanroepen verwerken.

Analysediensten

Datagedreven werken is ook geen probleem dankzij de analysediensten van AWS Serverless. Met Kinesis stream je veilig en soepel gegevens naar AWS en laad en analyseer je streaminggegevens. Amazon Athene is een interactieve service die het eenvoudig maakt om gegevens in Amazon S3 te analyseren met behulp van standaard SQL.

De voordelen van AWS Serverless

Een serverloze architectuur als AWS Serverless heeft legio voordelen ten opzichte van een traditionele servergerichte of cloud-based infrastructuur:

  • Je bouwt moeiteloos een serverloze applicatie met een geautomatiseerde implementatiepijplijn. In AWS doe je dit met Lambda.
  • Een serverloze architectuur geeft ontwikkelaars een grotere schaalbaarheid, snellere lancering en meer flexibiliteit. Je maakt bovendien minder kosten omdat je alleen betaalt voor de diensten die je daadwerkelijk gebruikt en niet voor inactieve middelen.
  • Een ontwikkelaar kan zich helemaal richten op zijn kernproduct en de functionaliteit en bedrijfslogica van een applicatie. Hij of zij hoeft zich geen zorgen te maken over het beheren en bedienen van servers of runtimes. Dit komt de ontwikkelsnelheid ten goede.
  • Automatisch schalen. De serverloze architectuur regelt de schaalbaarheid op basis van het actuele verkeer waardoor je kunt rekenen op consistente prestaties onder alle omstandigheden.
  • Eenvoudiger onderhoud. Updates van het besturingssysteem, beveiligingsconfiguraties en veiligheidspatches zijn de verantwoordelijkheid van de cloudprovider.
  • Snelle beschikbaarheid. Na het schrijven is de applicatie of het systeem direct beschikbaar voor gebruikers.
  • Serverloze functies hebben een modulair karakter. Dit brengt veel flexibiliteit met zich mee, vooral omdat je elke functie onafhankelijk kunt ontwikkelen, testen en implementeren.

De nadelen van AWS Serverless

  • Je hebt beperkte controle over je infrastructuur omdat deze door AWS wordt beheerd. Applicaties die specifieke vereisten hebben op het gebied van de onderliggende infrastructuur worden daardoor niet volledig ondersteund door serverless platforms.
  • Debugging en monitoring van serverless applicaties kan lastiger zijn. Het is namelijk lastiger om de oorzaak van problemen te achterhalen omdat de functionaliteit verspreid kan zijn over meerdere lambdafuncties.
  • Je wordt afhankelijker van AWS waardoor er een groter risico ontstaat op vendor lock-in. Je code wordt namelijk afhankelijk van AWS-specifieke diensten.
  • Niet altijd werkt AWS Serverless kostenbesparend, dat hangt erg af van je resourcegebruik. Let op dat hoge aantallen korte verzoeken van resources juist kunnen leiden tot hoge rekeningen.
  • Serverless ontwikkelen van applicaties kan complex zijn vanwege de noodzaak om functies modulair te maken. Dit kan leiden tot een stijle leercurve bij je ontwikkelaars.

Is jouw toekomst ook serverless?

Een serverloze architectuur als AWS Serverless biedt volop kansen om een cloudplatform te creëren dat het hele systeemlandschap bestrijkt. Serverloos biedt tijdens het ontwikkelproces on-demand schaalbaarheid, een vereenvoudigde werkwijze en kostenreductie. Echter, je dient van tevoren goed af te wegen of serverless ook voor jouw applicaties genoeg voordelen biedt. Er kleven namelijk wel degelijk nadelen aan op het gebied van weinig controle over je infrastructuur, hoge kosten en een stijle leercurve voor jouw ontwikkelaars.

Wil je aan de slag met AWS Serverless en alle voordelen van een serverloze architectuur ontdekken? Dan helpt ACC ICT je graag verder. We kennen alle ins en outs van AWS. Met Managed AWS profiteer je van optimale ontzorging en maak je gebruik van de diepgaande kennis en ruime ervaring van onze AWS-specialisten die 24/7 voor je klaarstaan. We denken graag met je mee om te bepalen of AWS Serverless voor jouw organisatie de juiste keuze is.

Deel deze post
Marijn Lergner
Marijn is Lead Engineer en tevens Partner bij ACC ICT. Marijn is vanaf 2010 werkzaam bij ACC ICT in verschillende rollen en begeleidt met veel enthousiasme en precisie zeer technische en complexe klantprojecten. Marijn schrijft graag over technische onderwerpen binnen de IT-branche.