-

Serverless: mythe of werkelijkheid?

Vorige week woensdag organiseerde Amazon Web Services (AWS) de re:Invent Recap in Amsterdam: het kleinere Nederlandse stiefbroertje van het vijfdaagse re:Invent spektakel in Las Vegas. Tijdens re:Invent presenteert AWS alle nieuwe features en mogelijkheden van hun cloudplatform. In de Recap worden de belangrijkste aankondigingen samengevat en gepresenteerd in Nederland.

Het programma bevat slechts één dagdeel, dus onderwerpen moeten zorgvuldig gekozen worden. Opvallend is dat veel van de aankondigingen gaan over services die ingezet kunnen worden voor een Serverless architectuur. Er is zelfs een aparte presentatie over Lambda, een van de belangrijkste bouwblokken uit de Serverless stack. Dit geeft wel aan dat Serverless een belangrijke rol inneemt binnen cloudcomputing.

Wat is een Serverless Architectuur?

In de meeste architecturen wordt nog gebruik gemaakt van servers, soms fysiek maar vaker virtueel. Bedrijven die de stap naar de public cloud hebben gemaakt kunnen bijvoorbeeld gebruik maken van AWS EC2 instances of Microsoft Azure VM’s. Bij een dergelijke architectuur heb je nog steeds de verantwoordelijkheid voor het faciliteren, configureren en onderhouden van de servers. Cloudproviders bieden veelal een vorm van auto-scaling, maar tot op zekere hoogte moet er ook nog aan capaciteitsplanning worden gedaan om piekbelastingen op te kunnen vangen. Bij een Serverless architectuur wordt het gebruik van servers wordt getransformeerd naar het gebruik van services, zonder gebruik te maken van servers.

Serverless oplossing bij Amazon Web Services

AWS biedt een volledige technologische infrastructuur zonder servers als backend voor mobiele of webapplicaties. De drie belangrijkste services binnen deze stack:

  • API Gateway (managed RESTFul API),
  • Lambda (compute service),
  • DynamoDB (managed NoSQL database).

Met deze drie componenten kan een goed onderhoudbare en elastisch schaalbare backend worden ingericht zonder het opstarten van ook maar één server.

Deze stack kan worden uitgebreid met andere services van AWS. Door bijvoorbeeld Cognito (User Management) toe te voegen kan gebruik worden gemaakt van een totaaloplossing voor Identity Management: gebruikersregistratie, authenticatie & autorisatie en zelfs een complete oplossing voor multi-factor authentication (MFA) via SMS. Ondersteund met SDKs voor iOS, Android en Javascript kan het eenvoudig worden geïntegreerd in mobiele applicaties of web frontends.

File storage kan worden toegevoegd middels S3 en het volledige netwerk wordt ingericht middels Route53 (DNS), Cloudfront (CDN) en WAF (Firewall), zodat een volledige ‘Infrastructure as a Service’ ontstaat zonder de verantwoordelijkheden die virtuele servers met zich meebrengen.

Voor- en nadelen van Serverless

Een van de grootste voordelen van Serverless is de elastische schaalbaarheid. Je kunt beschikken over vrijwel ongelimiteerde resources op het moment dat je het nodig hebt. De kosten zijn ook variabel: zonder investeringen vooraf kun je gebruik maken van de resources die je nodig hebt en je betaalt enkel voor het gebruik (per miljoen requests voor API Gateway, per code-executie bij Lambda en voor de maximale throughput voor lees- en schrijfacties bij DynamoDB).

Daarnaast heeft het bedrijf ook niet de verantwoordelijkheid voor bijvoorbeeld upgrades, patches, security en configuratie van een serverpark, waar doorgaans veel tijd aan wordt besteed. Met de DevOps trend verdwijnt de scheidslijn tussen development en operations al, met Serverless is infrastructuur onderdeel geworden van de code. Hierdoor ontstaat een verantwoordelijkheid die reikt van ontwikkeling tot en met productie, én er is continue feedback over hoe applicaties zich gedragen in productie. Er is dus meer focus op het ontwikkelen van toegevoegde waarde voor producten en er wordt minder tijd besteed aan technisch beheer.

Door gebruik te maken van Serveless cloud-providers is men altijd onderdeel van de AWS-innovatie. Zo kondigde Amazon op de ‘Recap’ aan dat ze verwachten aan het einde van dit jaar meer dan 1000 nieuwe features hebben te hebben geïmplementeerd. Het ontstaan van legacy of ‘technical debt’ is minder aanwezig doordat men continue meegaat of zelfs mee moet gaan in de innovatie.

Uiteraard is het niet allemaal rozengeur en maneschijn in Serverless-land: doordat de technologie relatief nieuw is ontbreken soms features of zaken zijn nog niet helemaal uitgekristalliseerd. Deze features worden wel in rap tempo toegevoegd maar dit zou ervoor kunnen zorgen dat Serverless nog niet geschikt is voor specifieke toepassingen.

Er zijn ook nog relatief weinig best-practices, en er is beperkt gedetailleerde documentatie beschikbaar. De officiële documentatie volstaat voor de eerste stappen en simpele implementaties, maar zodra er complexere oplossingen worden uitgedacht is het soms zoeken naar de juiste bronnen. Er is een maar kleine community beschikbaar en zo is de informatie op fora (bijvoorbeeld Stackoverflow) nog schaars.

Serverless vraagt om een event-driven microservices-architectuur: zo klein mogelijke services voor een specifiek doel, zonder een monolitisch geheel te vormen. Dit kan er snel voor zorgen dat er tientallen van dit soort microservices zijn (met eigen endpoints en datastores). Deployment van veel microservices met eigen versies, datastores en compatabiliteit is complex. Een goede deployment-strategie en -tooling is nodig voor bij het verminderen van complexiteit bij het uitrollen. Een van de voorbeelden is het Serverless Framework.

De toekomst voor Serverless

Deze technologie is niet alleen voor proof-of-concepts, zolderkamer-startups of ‘pet projects’. Nu deze technologie tot volwassenheid komt gaan bedrijven er serieus mee aan het werk. Omdat de cloud als platform ook geaccepteerd wordt door multinationals en wordt ingezet in meer conventionele branches zoals de gezondheidszorg en de financiële dienstverlening, komt ook hier de Serverless architectuur beschikbaar. Dit biedt nieuwe spelers op deze markten de mogelijkheid om met innovatieve en disruptieve oplossingen aan te bieden.

Ook Werner Vogel – de CTO van AWS – ziet Serverless als de toekomst van cloud computing. We staan aan het begin van een nieuwe (r)evolutie op het gebied van IT-architectuur. Alle cloudproviders zetten hoog in op de verdere ontwikkeling van Serverless technologie. Het is nu slechts aan de bedrijven en ontwikkelaars om deze oplossingen te omarmen en ermee aan de slag te gaan…

Join the Serverless revolution!

Deel dit bericht

1 Reactie

Baraa

Well written! Thanks for sharing.

Plaats een reactie

Uw e-mailadres wordt niet op de site getoond