Tech Data: dit moeten bedrijven weten over serverless computing

Serverless computing is hot. Alle grote cloudproviders hebben er inmiddels een oplossing voor. Volgens Gartner is het zelfs een van de ‘top 10-trends’ voor 2019. Maar wat is het? En wat kun je ermee? Erik Peters van Tech Data geeft antwoorden op deze en andere vragen.

Wat is serverless computing?

‘Serverless’ betekent in dit geval dat de servers voor de gebruiker onzichtbaar zijn. Zo hoeft een ontwikkelaar bij het ontwerp van een applicatie geen rekening te houden met de onderliggende IT-infrastructuur. Serverless computing (of Function-as-a-Service) onttrekt zaken als virtuele machines, besturingssystemen en zelfs containers volledig aan het zicht.

helloquence-61189-unsplash-615x410

De ontwikkelaar schrijft een ‘functie’ in bijvoorbeeld JavaScript of C# en geeft aan wanneer de cloudprovider deze microservice moet uitvoeren. De code wordt vervolgens geüpload naar een serverless architectuur zoals Azure Functions van Microsoft. Zodra de functie wordt aangeroepen, is het de verantwoordelijkheid van de cloudaanbieder om de code uit te voeren. De klant heeft verder geen omkijken naar de servers, virtuele machines of containers die daarvoor nodig zijn.

Welke problemen lost serverless computing op?

Volgens Erik Peters, technical en pre-sales manager bij Advanced Solutions bij Tech Data, moet iedere applicatie uiteindelijk landen op een fysieke of virtuele machine. “Dit betekent dat een ontwikkelaar na moet denken over de onderliggende IT-infrastructuur, ook in de cloud. Zo moet de developer rekening houden met zaken als de beschikbare verwerkingskracht, de gebruikte hypervisor- of containertechnologie en het type storage. Dat remt de snelheid van applicatieontwikkeling.”

Een ander gevolg van deze aanpak is volgens Peters dat een applicatie nog altijd – ook met virtualisatie – een koppeling heeft met de onderliggende IT-infrastructuur. “Een verandering in die infrastructuur heeft ook gevolgen voor de applicatie. Bij serverless computing is er sprake van een volledige ontkoppeling en is het aan de cloudprovider om ervoor te zorgen dat alles naar behoren functioneert.”

Wat zijn de voor de hand liggende toepassingen?

Severless computing wordt nu met name gebruikt voor kortstondige, ‘trigger-based computing’. De cloudprovider draait de code als er ‘iets’ gebeurt. Plaatst de gebruiker bijvoorbeeld een document op het cloudplatform? Dan kan dat een trigger zijn om een malwarescan of een back-up uit te voeren.

Peters: “Maar denk ook aan communicatie door een IoT-device, een wijziging in een database of een piek in het netwerkverkeer. Voor de cloudprovider kunnen dit de triggers zijn voor onder andere extra inzet van verwerkingskracht en storage of het uitvoeren van analyses, wat weer kan leiden tot het starten van specifieke acties.”

Wat zijn de voordelen van serverless computing?

Peters noemt als belangrijkste voordeel dat de ontwikkelaars van applicaties zich niet meer bezig hoeven te houden met provisioning, configuratie en beheer van (virtuele) servers. “Ze kunnen zich kortom volledig richten op de ontwikkeling van de code, zonder zich zorgen te maken over de onderliggende ‘technologiestack’.”

Die ‘ontzorging’ zorgt voor een versnelling van de applicatieontwikkeling, en in veel gevallen voor een lagere total cost of ownership (TCO). “Ook lost serverless computing de pay-per-use-belofte van de cloud pas echt in. Wordt een functie niet aangeroepen, dan valt er ook geen rekening op de mat voor het gebruik van resources”, aldus Peters.

Zijn er ook nadelen?

“Die zijn er zeker”, bevestigt Peters. “Zo is serverless computing met name geschikt voor kortstondige taken en minder voor langdurige processen. Het concept is niet geschikt voor grote, complexe applicaties. Het beslag op de resources (en het IT-budget) wordt dan te groot, en de kosten worden onvoorspelbaar. Het opknippen van grote applicaties in hapklare microservices is bovendien niet altijd eenvoudig.”

Hoe ziet de serverless computing-markt eruit?

Serverless computing kreeg voor het eerst voet aan de grond met Lambda van Amazon. De cloudprovider introduceerde dit product in november 2014 als onderdeel van zijn Web Services.

“Daarna volgde onder andere IBM met Cloud Functions, een Function-as-a-Service (FaaS)-platform gebaseerd op Apache OpenWhisk. Azure Functions van Microsoft is inmiddels toe aan versie 2.0. Eind 2018 introduceerde Oracle een ‘Functions’-oplossing gebaseerd op het Fn Project. Dit project biedt een ‘container-native serverless platform’. In 2019 zal de strijd tussen de aanbieders van serverless computing verder oplaaien.”

Hoe maken organisaties de overstap naar serverless computing?

De stap naar serverless computing vergt vooral een plan van aanpak vooraf. “Welke applicaties zijn geschikt voor een serverless architectuur? En hoe deel ik de applicaties die wel in aanmerking komen op in microservices? Welke skills zijn daarvoor nodig? Ook moeten organisaties vooraf goed nadenken over zaken als performance, monitoring en debugging zodat de controle in de cloud behouden blijft”, legt Peters uit.

“Bovendien moeten de ontwikkelaars die gewend zijn aan ‘grote’ applicaties worden overtuigd van het concept. Vanuit het perspectief van een ontwikkelaar introduceert serverless computing een compleet ander programmeerparadigma. Het is event-driven, asynchroon, reactief. Die verandering kunnen ze als een schok ervaren, al zijn inmiddels steeds meer programmeurs gewend aan deze manier van werken”, besluit Peters.