5 redenen waarom ook u naar 'serverless computing' moet kijken

Wanneer uw developers continu bezig zijn met het beheer van servers en de upgrading van operating systems, hebben ze geen tijd meer om aan uw product te werken en verliest u aan concurrentiekracht. Naast tijd biedt 'serverless computing' u nog enkele andere voordelen. 

De idee van 'serverless computing' - kortweg 'serverless' - wint snel aan populariteit sinds Amazon Web Services (AWS) in 2014 de AWS Lambda-service lanceerde. Sindsdien groeit de belangstelling in serverless gestaag en hebben alle grote cloud vendors een serverless oplossing. Zo biedt Microsoft Azure Functions aan en heeft Google Cloud Functions. Onderstaande grafiek van Google Trends toont mooi de snel stijgende interesse in serverless.

 

Wat is ‘serverless’?

Serverless slaat op een speciale software-architectuurstijl waarbij de logica van applicaties wordt uitgevoerd in een omgeving zonder zichtbare processen, operating system, servers of virtuele machines. Uiteraard zijn die er wel, maar de verantwoordelijkheid voor de provisioning en het management van deze infrastructuur ligt volledig bij de cloud provider. Developers kunnen zich in zo’n omgeving volledig concentreren op het schrijven van code. Traditioneel wordt die code verpakt in services die met elkaar en third-party services samenwerken in een gedistribueerd systeem, waarbij het team ook verantwoordelijk is voor installatie, monitoring, schalen en up-to-date houden van al die services, inclusief de servers, virtuele machines of docker-containers waarop die services geïnstalleerd worden. In een serverless wereld is het de cloud provider die al deze verantwoordelijkheid op zich neemt. 

Serverless is nieuw... of toch niet?

Serverless op zich is niet nieuw. In 2015  blogden we al over het gebruik van web services via API’s om extra functionaliteit toe te voegen aan applicaties. Lees bijvoorbeeld onze blogpost 'Standing on the shoulders of giants: six APIs for instant SaaS success' voor enkele concrete voorbeelden. Dit is ‘serverless’. Door te integreren met third-party API's voegt u functionaliteit toe aan uw applicatie, zonder dat u zelf verantwoordelijk bent voor de infrastructuur, de servers, het OS. Kortom, serverless. U kunt vandaag putten uit een hele reeks BaaS, 'Backend-as-a-Service' providers: denk maar aan analytics-as-a-service (Keen.io) of logging-as-a-service (loggly.com) of betalingen-as-a-service (stripe.com of het Belgische twikey.com). 

Nieuwer zijn weliswaar Functions-as-a-Service, kortweg FaaS. Tot voor AWS Lambda was je verplicht niet alleen je eigen applicatielogica te ontwikkelen (al dan niet ondersteund door BaaS-providers), maar er ook zelf voor te zorgen dat jouw applicatiecode schaalbaar en veilig draaide. Je was verantwoordelijk voor een hele reeks zaken die op zich niet differentiërend waren voor je business, maar wel noodzakelijk. Denk aan het opzetten en beheren van servers, virtual machines, operating systems en bijbehorende patches, je runtime-omgeving (bijv. een Python-, PHP-, Java-, Ruby-omgeving waarin je code runt). Ook het opzetten van (auto-)schaling, monitoring, load balancing, het updaten, liefst automatisch, van je eigen applicaties zonder downtime, dit alles was in jouw handen. Dankzij FaaS is het mogelijk om delen van je applicatie als individuele functies te ontwikkelen, die je vervolgens naar je cloud provider pusht. Je cloud provider doet de rest. 

5 voordelen van serverless voor uw business

  1. Kortere time-to-market: binnen het serverless paradigma houden developers zich enkel bezig met die zaken die uniek zijn voor de eigen applicatie. Al de rest (OS, servers, …) wordt overgelaten aan de cloud provider. Dit kan uw time-to-market aanzienlijk verkorten. Aangezien er weinig of geen systeemadministratie is, wordt er geen tijd verspeeld door developers die wachten op sysadmins en vice versa.

  2. Lagere operationele kost: FaaS-providers rekenen enkel de tijd aan die je functies effectief runnen. Een functie die slechts enkele keren per dag gedurende enkele seconden uitgevoerd wordt, wordt enkel voor die tijd aangerekend. In een traditionele setup dient er al gauw continu een server te draaien en wordt die dus ook voor die tijd aangerekend. Verder is er in een serverless-architectuur een pak minder systeemadministratie te doen. Ook dat spaart kosten uit.

  3. Schaalbaarheid: in een serverless-architectuur wordt schaalbaarheid verzorgd door de cloud provider. U hoeft zelf weinig te doen hiervoor. Ook dit spaart tijd en moeite uit.

  4. Agile: alle FaaS-providers bieden tooling aan (in de vorm van API’s) om je code, vaak zonder downtime, te 'deployen'. Dit laat toe om snel nieuwe zaken te releasen. Dit laatste is een van de hoekstenen binnen agile software development.

  5. Functies als glue-code: cloud providers gebruiken FaaS meer en meer als glue-code: u wilt dat er bij een binnenlopende e-mail een beetje logica wordt uitgevoerd? Stop die logica in een lambdafunctie. Wanneer een gebruiker een foto oplaadt naar een AWS S3-bucket, wilt u daar een thumbnail van maken? Stop die logica in een lambdafunctie en connecteer die met de S3 bucket. Wilt u elk kwartier een scriptje laten lopen dat een data-ETL-taak uitvoert? Stop die logica in een lambdafunctie en laat uw cloud provider die functie periodiek uitvoeren. 

Conclusie

Alle grote cloud providers zetten volop in op serverless. Serverless, de combinatie van BaaS en FaaS, geeft developers de vrijheid om volop te focussen op de ontwikkeling van functionaliteit die uniek is aan de eigen applicatie en daarbij laten ze een heleboel 'undifferentiated heavy lifting' over aan de cloud providers. Het wordt op deze manier mogelijk om applicaties te bouwen die én snel naar de markt gebracht kunnen worden, én schaalbaar zijn, én die weinig systeemadministratie vragen. Klinkt dat niet als muziek in de oren? 

In de komende weken zal ik in een aantal artikels mijn ervaringen met het bouwen van (kleine) serverlessapplicaties delen. In de tussentijd ben ik benieuwd te horen hoe u naar serverless kijkt. Vragen, opmerkingen of ervaringen die u wilt delen? Aarzel niet en neem contact met ons op!