FaaS en Serverless architecture: de kracht van de cloud

Software ontwikkelen en exploiteren zonder zorgen over infrastructuur: zijn er nadelen?

Serverless architecture is een nieuwe en in zekere zin ietwat misleidende term. Het gaat niet om weboplossingen of systemen die zonder servers zouden kunnen draaien, maar - simpel gezegd - om een concept waarmee organisaties applicaties kunnen ontwikkelen en exploiteren zonder zorgen over het beheren van servers: FaaS ofwel Function as a Service.

De ontwikkeling van de cloud

In het pre-cloud tijdperk, meer dan tien jaar geleden, beschikten bedrijven over eigen servers om software te ontwikkelen en te draaien. Daarna kwamen de cloudoplossingen beschikbaar. Dit paradigma bracht nieuwe mogelijkheden voor het ontwikkelen, uitrollen en gebruiken van software. In de loop van de tijd werden verschillende nieuwe cloudservices ontwikkeld. En als antwoord op nieuwe behoeften van afnemers veranderden de cloudproviders ook de manieren waarop ze deze services aanboden. Over het algemeen werden deze variaties geïdentificeerd als drie verschillende modellen cloudservices: IaaS, SaaS en PaaS.


IaaS

Infrastructure as a Service was de eerste smaak uit de cloud. Met dit model levert de cloudprovider een complete infrastructuur: virtuele machines, virtuele netwerken, en alles wat daar verder bij is te bedenken. Als mensen het hebben over cloud computing, is dit wat ze meestal bedoelen.

SaaS

Software as as Service is een methode voor het leveren van software via internet. Dit gebeurt op afroep en meestal in de vorm van een abonnement. Aanbieders leveren functionaliteit inclusief diensten als databases, schijfopslag, versiebeheer, hosting et cetera. Als deze diensten ook als (web)services beschikbaar zijn, kunnen de cloudproviders bovendien zorgen voor onderhoudstaken als software-upgrades en beveiligingspatches.

PaaS

Platform as a service (PaaS) is de term voor een on-demand omgeving voor het ontwikkelen, testen, leveren en beheren van softwaretoepassingen. Dankzij PaaS kunnen ontwikkelaars gemakkelijker en sneller web- of mobiele apps maken zonder zorgen over het opzetten of beheren van de onderliggende infrastructuur: servers, opslag, netwerk en databases.

Serverless - FaaS

De meeste cloud providers omarmen sinds kort een nieuwe dienst: FaaS ofwel Function as a Service. Deze dienst is geassimileerd in wat in korte tijd bekend is geworden als Serverless architecture. Over het algemeen gaat het bij Serverless architecture om het draaien van een specifieke hoeveelheid programmacode in kortstondige containers, die volledig door een externe partij worden beheerd. Deze code is in feite een klein stukje van een complete applicatie. Op een heel basaal niveau is FaaS te zien als een manier om een beetje code (een functie) uit te voeren in het specifieke geval waarin ˈietsˈ zich voordoet. Vandaar de naam.

Er zijn veel potentiële toepassingen van functies, waarbij de ondersteuning en de implementatie per cloudprovider kunnen verschillen. Enkele veel voorkomende scenario's:

  • Geplande taken
  • Het verwerken van een web request
  • Het verwerken van queue messages
  • Het handmatig draaien van code

Natuurlijk kunnen functies ook in combinaties aaneen worden geschakeld. Zo kan een web request informatie toesturen aan een queue, die op zijn beurt wordt opgepikt door een andere functie.

Het FaaS-concept is gebaseerd op de volgende principes:

  • De servers verdwijnen volledig uit beeld bij de ontwikkelaar
  • Facturering vindt plaats op basis van verbruik en handelingen, dus niet per eenheid serverinstanties of per verzoek
  • De diensten zijn event-driven en onmiddellijk schaalbaar

Providers

Cloudproviders als Amazon, Microsoft Azure en Google bieden verschillende oplossingen voor het werken in dit nieuwe model. Ingrijpende veranderingen en verbeteringen hebben snel gestalte gekregen en het gebied is nog sterk in ontwikkeling. De belangrijkste aanbieders van serverloze oplossingen zijn op dit moment:

Kosteneffectiviteit

Het nieuwe cloudmodel (FaaS) wordt gepresenteerd als het meest kosteneffectieve tot nu toe. Dat is te verdedigen, al is FaaS niet per se goedkoop. De prijs is gebaseerd op het gebruik van de functie en dat lijkt op zijn minst interessant. De prijs ligt momenteel op $ 0,0000002 voor AWS Lambda en Azure Functions, wat op het eerste gezicht ongelooflijk goedkoop lijkt: 20 dollarcent voor een miljoen aanroepen van een specifieke functie. Maar het zal niemand verbazen dat er meer aan de hand is. Ook de resources die nodig zijn voor het uitoefenen van de functie vormen een parameter in de uiteindelijke kosten. AWS en Azure berekenen bijvoorbeeld zowel het geheugen als de verbruikte tijd per functiegebruik door in de prijs, afgerond op 100 milliseconden. Doordat AWS Lambda $ 0.00001667 per GB-seconde vraagt en Azure $ 0.000016, kunnen afhankelijk van de functie in kwestie interessante prijsverschillen ontstaan.

Al met al valt niet te ontkennen dat FaaS de kosteneffectiviteit kan verhogen: je betaalt uitsluitend wat je uiteindelijk gebruikt. Daarbij is een heel ander aspect interessant: de kwaliteit van de code in termen van performance en het verbruik van resources. Het schrijven van goede code en het waar mogelijk verbeteren van de kwaliteit wordt steeds belangrijker. Ook al merkt een individuele gebruiker er helemaal niets van, toch kan een verlaging van 100 naar 50 milliseconden voor een bepaalde routering de uiteindelijke kosten voor de afnemer van FaaS aanzienlijk verlagen.

Tweesnijdend zwaard

Function-as-a-Service en serverloze architectuur zijn sterk in opmars. Grote bedrijven zien het als een oplossing die goed past bij hun verdienmodellen en producten. Zo heeft Netflix onlangs gekozen voor AWS Lambda. Ontwikkelaars kunnen applicaties bouwen zonder dat ze worden afgeleid door infrastructuurkwesties van relatief laag niveau. De toewijzing van resources is niet langer de verantwoordelijkheid van de software-architect, maar van de cloudprovider met zijn specialistische kennis.

Deze veranderingen hebben een impact die moeilijk is te overschatten. Wij zien de ontwikkeling van FaaS en serverless architecture als een omwenteling die bedrijven in de meest uiteenlopende markten veel kosten kan schelen en veel meerwaarde kan opleveren.

Geïnteresseerd in FaaS?

Onze specialisten vertellen u graag meer.

Laat u bellen en plan een afspraak