Bij veel bedrijven, it-afdelingen en ontwikkelaars valt serverless computing niet meer weg te denken. En daar zijn goede redenen voor. ‘Cloud-native-serverless-technologieën hebben de grootste impact op de snelheid waarmee we naar de markt kunnen.’
Er is een trend om alle backend-vereisten en -beheer over te dragen aan een cloudprovider, ergens ver weg. Die moet dan zorgen voor de provisioning, beveiliging, opslag en dergelijke van de infrastructuur. Ontwikkelaars hoeven zich alleen nog maar zorgen te maken over de applicatie zelf, en dat is vaak ook wat ze het liefst doen. ‘Eerst en vooral komt serverless werken ons software-product ten goede’, oppert Jonathan De Moor, cloud-architect bij In The Pocket. ‘We kunnen sneller releasen, ons meer focussen op het functionele luik en krijgen een aantal out-of-the-boxvoordelen, zoals schaalbaarheid, security, beschikbaarheid en prestatie.’
Welke nieuwe service-categorieën?
Jarenlang bestond er in de cloud een klassieke indeling: infrastructuur, platform en software. Allemaal ‘as-a-service’. Maar infrastructuur (iaas) en platform (paas) groeien steeds meer naar elkaar toe. Daarom zijn er nieuwe categorieën toegevoegd, zoals function-as-a-service (faas) en containers-as-a-service (caas).
Met die nieuwe functionaliteiten namen ook de mogelijkheden toe. En dat konden ontwikkelaars vaak ook wel appreciëren. ‘Serverless computing is een type van services dat een deel van de complexiteit van infrastructuurbeheer elimineert, wat de ervaring van de ontwikkelaar vereenvoudigt’, oppert Jonathan De Moor van In The Pocket. Toch is er vaak nog onduidelijkheid over de term serverless. Sommigen plaatsen deze rechtstreeks bij faas, anderen zien het breder, zoals De Moor. ‘Voor mij is serverless meer dan cloud functions of faas. Het is onderdeel van de cloud-native development-manier van werken waarin applicaties op een moderne en schaalbare manier gebouwd en gerund worden’, stelt de cloud-architect, en hij verwijst naar zaken en elementen als cloudfuncties, maar ook naar managed container services, schaalbare databases en managed load balancers.
Waar is serverless begonnen?
De trend is duidelijk, maar waar zat en zit de drijfveer voor serverless architectuur? De doorbraak ervan is vooral te danken aan de opkomst van de vele mobiele- en internet of things-applicaties, oppert Nico De Groote, Java-software-engineer bij ProfitPlus en ervoor bij Duo. Hij ziet serverless architectuur als een voortzetting van de microservices-architectuur, waar volgens hem microservices hierbij nog verder opgesplitst worden in kleinere functionele nanoservices. Bij het ontwikkelen focussen de programmeurs zich op een klein stuk onafhankelijke functionaliteit (code) die men in de cloud kan uitrollen. Men denkt dus in termen van services of functies die met elkaar communiceren. In elk geval neemt de serverless framework provider veel meer taken op zich in functie van het schaalbaar maken van de applicatie dan bij de traditionele paas-architectuur.
Die serverless framework providers, die kennen we intussen overigens wel: AWS Lambda, Azure Functions en Google Cloud Functions. Overigens is dit niet alleen een zaak van de klassieke cloud providers of hyperscalers zelf. Die gaan natuurlijk met de meeste aandacht lopen. Maar ook een (meer lokaal georiënteerd) hostingbedrijf zoals Combell roept op zijn website op om ‘de infrastructuur te laten verdwijnen’. Combell voegde serverless toe aan zijn aanbod. Daarnaast zijn er nog grote namen zoals IBM Cloud Functions (gebaseerd of Apache OpenWhisk) en OpenFaaS (opensource).
Nadelen van serverless?
Wat zijn om te beginnen de grote voordelen? Serverless zorgt alvast voor snelheid. ‘Cloud-native-serverless-technologieën hebben de grootste impact op de snelheid waarmee we naar de markt kunnen. Ze zorgen voor een simpelere ontwikkelervaring en dynamische up & down scaling’, stelt Jonathan De Moor van In The Pocket. Focus is, volgens hem, een ander voordeel: ontwikkelaars kunnen zich volledig focussen op de toepassing van het product en kunnen de infrastructuur betrekken in het begin van iedere productbeslissing. Hierdoor verandert het teamwork ook wel. ‘De afstand tussen backend-ontwikkelaars, devops-engineers en site reliability engineering-profielen wordt bijvoorbeeld alsmaar kleiner.’ Bij In The Pocket combineren ze daarenboven verschillende cloud-native services zoals serverless functions, containers, databases om het overzicht te bewaren. En ze gebruiken hierbij toepassingen als infrastructure-as-code (iac).
Onvermijdelijk zijn er ook nadelen. Om te beginnen was en is een serverless-architectuur niet altijd efficiënt voor langdurende operaties, waarbij je in bepaalde gevallen wel een dedicated server nodig blijft hebben. Op technisch vlak haalden ontwikkelaars ook weleens de introductie van extra overhead aan voor function of microservices calls aan als nadeel. ‘Daarnaast zijn er natuurlijk ook de strategische aandachtspunten, zoals de zogenaamde vendor lock-in, omdat er op dit ogenblik geen uniformiteit is voor faas-aanbieders’, oppert hij. Vrij vertaald: je bent dus afhankelijk van je aanbieder en veranderen naar een andere faas is niet evident. Al is dat natuurlijk een kwestie die wel vaker opduikt als aandachtspunt bij cloud computing en ontwikkeling.
Alles serverless op termijn?
Toch niet, want serverless is niet zaligmakend, erkent ook De Moor. ‘Natuurlijk zal er altijd nood zijn aan cloud-agnostische technologieën die meer voordelen hebben op het vlak van vendor lock-in, flexibiliteit en multi- en hybride cloud-oplossingen.’ Al is de trend, volgens hem, wel duidelijk: serverless brengt de infrastructuur dichter bij de code en omgekeerd. ‘Een voordeel is ook dat ontwikkelaars meer verantwoordelijkheid krijgen over het afgeleverde product in productie. Maar het is wel belangrijk om bij de start altijd de juiste architectuur te betrekken bij elke beslissing. Anders kan de complexiteit snel verhogen.’